Skip to content
Desktop Accounting API

Update a sales order

Try itPOST /v1/quickbooks-desktop/sales-orders/{id}

This request changes data. It runs for real against the QuickBooks Desktop company file of the end user you choose. Use a test key (sk_test_) and a test company file.

Generated for you. Resending with the same key replays the original result instead of writing twice; a new key is generated after each response unless the API says the request is safe to retry.
Headers (3 optional)
Prefilled with the required fields only. See the request body section below for every field.
POST
/v1/quickbooks-desktop/sales-orders/{id}
curl --request POST \
--url https://api.desktopaccountingapi.com/v1/quickbooks-desktop/sales-orders/80000001-1234567890 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Daapi-End-User-Id: eu_01j9x4m6v4c8k2t7q0r5s3w1zb' \
--header 'Daapi-Queue-Ttl-Seconds: 3600' \
--header 'Daapi-Timeout-Seconds: 90' \
--header 'Idempotency-Key: 6f1c2a0e-1f7e-4c55-9a7a-0b2d2c9e3a10' \
--header 'Prefer: respond-async' \
--data '{ "revisionNumber": "example", "customerId": "80000001-1234567890", "classId": "80000001-1234567890", "documentTemplateId": "80000001-1234567890", "transactionDate": "2026-10-05", "refNumber": "example", "billingAddress": { "line1": "example", "line2": "example", "line3": "example", "line4": "example", "line5": "example", "city": "example", "state": "example", "postalCode": "example", "country": "example", "note": "example" }, "shippingAddress": { "line1": "example", "line2": "example", "line3": "example", "line4": "example", "line5": "example", "city": "example", "state": "example", "postalCode": "example", "country": "example", "note": "example" }, "purchaseOrderNumber": "example", "termsId": "80000001-1234567890", "dueDate": "2026-10-05", "salesRepresentativeId": "80000001-1234567890", "shipmentOrigin": "example", "shippingDate": "2026-10-05", "shippingMethodId": "80000001-1234567890", "salesTaxItemId": "80000001-1234567890", "isManuallyClosed": true, "memo": "example", "customerMessageId": "80000001-1234567890", "isQueuedForPrint": true, "isQueuedForEmail": true, "salesTaxCodeId": "80000001-1234567890", "otherCustomField": "example", "exchangeRate": 1, "lines": [ { "id": "80000001-1234567890", "itemId": "80000001-1234567890", "description": "example", "quantity": 1, "unitOfMeasure": "example", "overrideUnitOfMeasureSetId": "80000001-1234567890", "rate": "19.99", "ratePercent": "7.5", "priceLevelId": "80000001-1234567890", "classId": "80000001-1234567890", "amount": "1250.00", "priceRuleConflictStrategy": "zero", "inventorySiteId": "80000001-1234567890", "inventorySiteLocationId": "80000001-1234567890", "serialNumber": "example", "lotNumber": "example", "salesTaxCodeId": "80000001-1234567890", "isManuallyClosed": true, "otherCustomField1": "example", "otherCustomField2": "example" } ], "lineGroups": [ { "id": "80000001-1234567890", "itemGroupId": "80000001-1234567890", "quantity": 1, "unitOfMeasure": "example", "overrideUnitOfMeasureSetId": "80000001-1234567890", "lines": [ { "id": "80000001-1234567890", "itemId": "80000001-1234567890", "description": "example", "quantity": 1, "unitOfMeasure": "example", "overrideUnitOfMeasureSetId": "80000001-1234567890", "rate": "19.99", "ratePercent": "7.5", "priceLevelId": "80000001-1234567890", "classId": "80000001-1234567890", "amount": "1250.00", "priceRuleConflictStrategy": "zero", "inventorySiteId": "80000001-1234567890", "inventorySiteLocationId": "80000001-1234567890", "serialNumber": "example", "lotNumber": "example", "salesTaxCodeId": "80000001-1234567890", "isManuallyClosed": true, "otherCustomField1": "example", "otherCustomField2": "example" } ] } ], "salesChannelName": "blank", "salesStoreName": "example", "salesStoreType": "example" }'

Changes the fields you send on an existing sales order and leaves omitted fields unchanged. Requires the current revisionNumber. A stale revisionNumber returns 409 QBD_REVISION_NUMBER_STALE: retrieve the sales order, reapply your change and send the new revision. Sending a line array replaces all existing lines of that kind. Line arrays you omit stay unchanged: when you send only some of them, the API first reads the transaction (a separate read in the request log) and keeps the omitted lines by ID, because QuickBooks would otherwise delete them. See Updates and line items.

id
required

QuickBooks ID of the sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890

QuickBooks ID of the sales order.

Daapi-End-User-Id
required
string
/^eu_[0-9a-hjkmnp-tv-z]{26}$/

The end user whose QuickBooks company file this request uses. Conductor-End-User-Id is accepted as an alias.

Example
eu_01j9x4m6v4c8k2t7q0r5s3w1zb
Daapi-Timeout-Seconds
integer
>= 1 <= 300

How long to wait for QuickBooks, in seconds (1–300). Conductor-Timeout-Seconds is accepted as an alias. Default 90, or 60 for the health check. If the request has not been sent by then it is canceled (504 REQUEST_TIMEOUT_NOT_SENT); if it was sent it keeps running (504 QBD_REQUEST_TIMEOUT).

Example
90
Prefer
string
Allowed value: respond-async

Send respond-async to get 202 Accepted with a request resource immediately instead of waiting for QuickBooks.

Example
respond-async
Daapi-Queue-Ttl-Seconds
integer
>= 10 <= 86400

Async only: the latest time, in seconds from now (10 to 86400), the request may still be sent to QuickBooks. Default 3600.

Example
3600
Idempotency-Key
string
>= 1 characters <= 255 characters /^[\x20-\x7e]+$/

Makes a write safe to retry. Repeating a key with the same request attaches to or replays the original instead of creating a second one. 1–255 printable ASCII characters, retained 7 days. Reusing a key with a different request returns 422 IDEMPOTENCY_KEY_REUSED.

Example
6f1c2a0e-1f7e-4c55-9a7a-0b2d2c9e3a10
Media typeapplication/json

Fields for updating a sales order.

object
revisionNumber
required

Current revision of this sales order. Send it unchanged when updating; a stale value is rejected.

string
<= 16 characters
customerId

ID of the customer for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
classId

ID of the class for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
documentTemplateId

ID of the document template for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
transactionDate

Date of this sales order (YYYY-MM-DD).

string format: date
Example
2026-10-05
refNumber

Reference number of this sales order, such as an invoice or check number. Case-sensitive.

string | null
<= 11 characters
billingAddress
object
line1

First address line.

string | null
<= 41 characters
line2

Second address line.

string | null
<= 41 characters
line3

Third address line.

string | null
<= 41 characters
line4

Fourth address line.

string | null
<= 41 characters
line5

Fifth address line.

string | null
<= 41 characters
city

City or locality.

string | null
<= 31 characters
state

State, province or region.

string | null
<= 21 characters
postalCode

Postal or ZIP code.

string | null
<= 13 characters
country

Country.

string | null
<= 31 characters
note

Note for this vendor address.

string | null
<= 41 characters
shippingAddress
object
line1

First address line.

string | null
<= 41 characters
line2

Second address line.

string | null
<= 41 characters
line3

Third address line.

string | null
<= 41 characters
line4

Fourth address line.

string | null
<= 41 characters
line5

Fifth address line.

string | null
<= 41 characters
city

City or locality.

string | null
<= 31 characters
state

State, province or region.

string | null
<= 21 characters
postalCode

Postal or ZIP code.

string | null
<= 13 characters
country

Country.

string | null
<= 31 characters
note

Note for this vendor address.

string | null
<= 41 characters
purchaseOrderNumber

Purchase order number of this sales order.

string | null
<= 25 characters
termsId

ID of the terms for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
dueDate

Date payment of this sales order is due (YYYY-MM-DD).

string format: date
Example
2026-10-05
salesRepresentativeId

ID of the sales representative for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
shipmentOrigin

Shipment origin of this sales order.

string | null
<= 13 characters
shippingDate

Date the goods on this sales order were or will be shipped (YYYY-MM-DD).

string format: date
Example
2026-10-05
shippingMethodId

ID of the shipping method for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
salesTaxItemId

ID of the sales tax item for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
isManuallyClosed

Whether this sales order is manually closed.

boolean
memo

Internal memo for this sales order; shown in reports, not on printed forms.

string | null
<= 4095 characters
customerMessageId

ID of the customer message for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
isQueuedForPrint

Whether this sales order is in the queue of forms to print.

boolean
isQueuedForEmail

Whether this sales order is in the queue of forms to email.

boolean
salesTaxCodeId

ID of the sales tax code for this sales order.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
otherCustomField

Built-in “Other” text field on this sales order.

string | null
<= 29 characters
exchangeRate

Exchange rate from this sales order’s currency to the home currency.

number
lines

Line items of this sales order. When present, replaces this array: keep an existing entry by sending its id (an id alone leaves it unchanged), add one with id “-1”; existing entries you leave out are deleted. Omit the array to keep these entries unchanged, also when you send lineGroups: the API then reads the sales order first and keeps every existing entry of each omitted array by ID. An empty array deletes them all, as long as the sales order keeps at least one line.

Array<object>

Fields for updating a sales order line.

object
id
required

QuickBooks-assigned ID of this sales order line. Use “-1” to add a new line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
itemId

ID of the item for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
description

Description of this sales order line.

string | null
<= 4095 characters
quantity

Quantity of the item.

number
unitOfMeasure

Unit of measure for the quantity.

string | null
<= 31 characters
overrideUnitOfMeasureSetId

ID of the override unit of measure set for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
rate

Price per unit, as a decimal string. Cannot be combined with ratePercent, priceLevelId.

string
/^-?\d{1,10}(\.\d{1,5})?$/
Example
19.99
ratePercent

Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %. Cannot be combined with rate, priceLevelId.

string
/^-?\d{1,10}(\.\d{1,5})?$/
Example
7.5
priceLevelId

ID of the price level for this sales order line. Cannot be combined with rate, ratePercent.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
classId

ID of the class for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
amount

Amount as a decimal string.

string
/^-?\d{1,13}(\.\d{1,2})?$/
Example
1250.00
priceRuleConflictStrategy

Price rule conflict strategy of this sales order line.

string
Allowed values: zero base_price
inventorySiteId

ID of the inventory site for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
inventorySiteLocationId

ID of the inventory site location for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
serialNumber

Serial number of this sales order line. Cannot be combined with lotNumber.

string | null
<= 4095 characters
lotNumber

Lot number of this sales order line. Cannot be combined with serialNumber.

string | null
<= 40 characters
salesTaxCodeId

ID of the sales tax code for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
isManuallyClosed

Whether this sales order line is manually closed.

boolean
otherCustomField1

Built-in “Other 1” text field on this sales order line.

string | null
<= 29 characters
otherCustomField2

Built-in “Other 2” text field on this sales order line.

string | null
<= 29 characters
lineGroups

Group lines of this sales order: each expands an item group into its component lines. When present, replaces this array: keep an existing entry by sending its id (an id alone leaves it unchanged), add one with id “-1”; existing entries you leave out are deleted. Omit the array to keep these entries unchanged, also when you send lines: the API then reads the sales order first and keeps every existing entry of each omitted array by ID. An empty array deletes them all, as long as the sales order keeps at least one line.

Array<object>

Fields for updating a sales order line group.

object
id
required

QuickBooks-assigned ID of this sales order line group. Use “-1” to add a new line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
itemGroupId

ID of the item group for this sales order line group.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
quantity

Quantity of the item.

number
unitOfMeasure

Unit of measure for the quantity.

string | null
<= 31 characters
overrideUnitOfMeasureSetId

ID of the override unit of measure set for this sales order line group.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
lines

Line items of this sales order line group. Replaces every existing line when present: keep a line by sending its id, add one with id “-1”, omit the array to leave lines unchanged.

Array<object>

Fields for updating a sales order line.

object
id
required

QuickBooks-assigned ID of this sales order line. Use “-1” to add a new line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
itemId

ID of the item for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
description

Description of this sales order line.

string | null
<= 4095 characters
quantity

Quantity of the item.

number
unitOfMeasure

Unit of measure for the quantity.

string | null
<= 31 characters
overrideUnitOfMeasureSetId

ID of the override unit of measure set for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
rate

Price per unit, as a decimal string. Cannot be combined with ratePercent, priceLevelId.

string
/^-?\d{1,10}(\.\d{1,5})?$/
Example
19.99
ratePercent

Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %. Cannot be combined with rate, priceLevelId.

string
/^-?\d{1,10}(\.\d{1,5})?$/
Example
7.5
priceLevelId

ID of the price level for this sales order line. Cannot be combined with rate, ratePercent.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
classId

ID of the class for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
amount

Amount as a decimal string.

string
/^-?\d{1,13}(\.\d{1,2})?$/
Example
1250.00
priceRuleConflictStrategy

Price rule conflict strategy of this sales order line.

string
Allowed values: zero base_price
inventorySiteId

ID of the inventory site for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
inventorySiteLocationId

ID of the inventory site location for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
serialNumber

Serial number of this sales order line. Cannot be combined with lotNumber.

string | null
<= 4095 characters
lotNumber

Lot number of this sales order line. Cannot be combined with serialNumber.

string | null
<= 40 characters
salesTaxCodeId

ID of the sales tax code for this sales order line.

string
>= 1 characters <= 36 characters
Example
80000001-1234567890
isManuallyClosed

Whether this sales order line is manually closed.

boolean
otherCustomField1

Built-in “Other 1” text field on this sales order line.

string | null
<= 29 characters
otherCustomField2

Built-in “Other 2” text field on this sales order line.

string | null
<= 29 characters
salesChannelName

Sales channel name of this sales order.

string
Allowed values: blank ecommerce
salesStoreName

Sales store name of this sales order.

string | null
salesStoreType

Sales store type of this sales order.

string | null

The updated sales order.

Media typeapplication/json

Sales order as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this sales order.

string
objectType
required

Type of this object.

string
Allowed values: qbd_sales_order
createdAt
required

When this sales order was created, as an ISO 8601 date-time with the QuickBooks computer’s UTC offset.

string format: date-time
updatedAt
required

When this sales order was last changed, as an ISO 8601 date-time with the QuickBooks computer’s UTC offset.

string format: date-time
revisionNumber
required

Current revision of this sales order. Send it unchanged when updating; a stale value is rejected.

string
transactionNumber
required

Sequential transaction number QuickBooks assigns internally.

integer | null
customer
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
class
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
documentTemplate
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
transactionDate
required

Date of this sales order (YYYY-MM-DD).

string | null format: date
refNumber
required

Reference number of this sales order, such as an invoice or check number. Case-sensitive.

string | null
billingAddress
required
Any of:

Address as stored in QuickBooks Desktop.

object
line1
required

First address line.

string | null
line2
required

Second address line.

string | null
line3
required

Third address line.

string | null
line4
required

Fourth address line.

string | null
line5
required

Fifth address line.

string | null
city
required

City or locality.

string | null
state
required

State, province or region.

string | null
postalCode
required

Postal or ZIP code.

string | null
country
required

Country.

string | null
note
required

Note for this address.

string | null
shippingAddress
required
Any of:

Address as stored in QuickBooks Desktop.

object
line1
required

First address line.

string | null
line2
required

Second address line.

string | null
line3
required

Third address line.

string | null
line4
required

Fourth address line.

string | null
line5
required

Fifth address line.

string | null
city
required

City or locality.

string | null
state
required

State, province or region.

string | null
postalCode
required

Postal or ZIP code.

string | null
country
required

Country.

string | null
note
required

Note for this address.

string | null
purchaseOrderNumber
required

Purchase order number of this sales order.

string | null
terms
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
dueDate
required

Date payment of this sales order is due (YYYY-MM-DD).

string | null format: date
salesRepresentative
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
shipmentOrigin
required

Shipment origin of this sales order.

string | null
shippingDate
required

Date the goods on this sales order were or will be shipped (YYYY-MM-DD).

string | null format: date
shippingMethod
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
subtotal
required

Total of all lines before sales tax, as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
salesTaxItem
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
salesTaxPercentage
required

Sales tax rate applied, as a percentage. Percentage as a decimal string: “7.5” means 7.5 %.

string | null
salesTaxTotal
required

Total sales tax, as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
totalAmount
required

Total amount of this sales order as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
currency
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
exchangeRate
required

Exchange rate from this sales order’s currency to the home currency.

number | null
totalAmountInHomeCurrency
required

Total amount in home currency of this sales order. Decimal string with up to 2 decimal places.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
isManuallyClosed
required

Whether this sales order is manually closed.

boolean | null
isFullyInvoiced
required

Whether this sales order is fully invoiced.

boolean | null
memo
required

Internal memo for this sales order; shown in reports, not on printed forms.

string | null
customerMessage
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
isQueuedForPrint
required

Whether this sales order is in the queue of forms to print.

boolean | null
isQueuedForEmail
required

Whether this sales order is in the queue of forms to email.

boolean | null
salesTaxCode
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
otherCustomField
required

Built-in “Other” text field on this sales order.

string | null
externalId
required

Your own UUID for this sales order, stored by QuickBooks so you can match records with your system.

string | null format: uuid
linkedTransactions
required

Transactions linked to this sales order, such as payments applied to it.

Array<object>

Linked transaction as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this linked transaction.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_linked_transaction
transactionType
required

Transaction type of this linked transaction.

string | null
Allowed values: ar_refund_credit_card bill bill_payment_check bill_payment_credit_card build_assembly charge check credit_card_charge credit_card_credit credit_memo deposit estimate inventory_adjustment invoice item_receipt journal_entry liability_adjustment paycheck payroll_liability_check purchase_order receive_payment sales_order sales_receipt sales_tax_payment_check transfer vendor_credit ytd_adjustment
transactionDate
required

Date of this linked transaction (YYYY-MM-DD).

string | null format: date
refNumber
required

Reference number of this linked transaction, such as an invoice or check number. Case-sensitive.

string | null
linkType
required

Link type of this linked transaction.

string | null
Allowed values: amount quantity
amount
required

Amount as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
lines
required

Line items of this sales order.

Array<object>

Sales order line as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this sales order line.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_sales_order_line
item
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
description
required

Description of this sales order line.

string | null
quantity
required

Quantity of the item.

number | null
unitOfMeasure
required

Unit of measure for the quantity.

string | null
overrideUnitOfMeasureSet
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
rate
required

Price per unit, as a decimal string.

string | null
ratePercent
required

Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %.

string | null
class
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
amount
required

Amount as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
inventorySite
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
inventorySiteLocation
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
serialNumber
required

Serial number of this sales order line.

string | null
lotNumber
required

Lot number of this sales order line.

string | null
expirationDate
required

Expiration date of this sales order line.

string | null
salesTaxCode
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
quantityInvoiced
required

Quantity invoiced of this sales order line.

number | null
isManuallyClosed
required

Whether this sales order line is manually closed.

boolean | null
otherCustomField1
required

Built-in “Other 1” text field on this sales order line.

string | null
otherCustomField2
required

Built-in “Other 2” text field on this sales order line.

string | null
customFields
required

Custom field values QuickBooks stores on this sales order line.

Array<object>

Custom field as stored in QuickBooks Desktop.

object
ownerId
required

Owner of the custom field: “0” for public fields shown in the QuickBooks UI.

string | null
name
required

Name of this custom field, unique within its parent level.

string | null
type
required

Type.

string | null
Allowed values: amount_type date_time_type integer_type percent_type price_type quantity_type string_1024_type string_255_type
value
required

Value.

string | null
lineGroups
required

Group lines of this sales order: each expands an item group into its component lines.

Array<object>

Sales order line group as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this sales order line group.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_sales_order_line_group
itemGroup
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
description
required

Description of this sales order line group.

string | null
quantity
required

Quantity of the item.

number | null
unitOfMeasure
required

Unit of measure for the quantity.

string | null
overrideUnitOfMeasureSet
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
shouldPrintItemsInGroup
required

Whether to print items in group.

boolean | null
totalAmount
required

Total amount of this sales order line group as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
lines
required

Line items of this sales order line group.

Array<object>

Sales order line as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this sales order line.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_sales_order_line
item
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
description
required

Description of this sales order line.

string | null
quantity
required

Quantity of the item.

number | null
unitOfMeasure
required

Unit of measure for the quantity.

string | null
overrideUnitOfMeasureSet
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
rate
required

Price per unit, as a decimal string.

string | null
ratePercent
required

Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %.

string | null
class
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
amount
required

Amount as a decimal string.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
inventorySite
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
inventorySiteLocation
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
serialNumber
required

Serial number of this sales order line.

string | null
lotNumber
required

Lot number of this sales order line.

string | null
expirationDate
required

Expiration date of this sales order line.

string | null
salesTaxCode
required
Any of:

Reference to another QuickBooks object.

object
id
required

QuickBooks ID of the referenced object.

string | null
fullName
required

Full name of the referenced object at the time of the response.

string | null
quantityInvoiced
required

Quantity invoiced of this sales order line.

number | null
isManuallyClosed
required

Whether this sales order line is manually closed.

boolean | null
otherCustomField1
required

Built-in “Other 1” text field on this sales order line.

string | null
otherCustomField2
required

Built-in “Other 2” text field on this sales order line.

string | null
customFields
required

Custom field values QuickBooks stores on this sales order line.

Array<object>

Custom field as stored in QuickBooks Desktop.

object
ownerId
required

Owner of the custom field: “0” for public fields shown in the QuickBooks UI.

string | null
name
required

Name of this custom field, unique within its parent level.

string | null
type
required

Type.

string | null
Allowed values: amount_type date_time_type integer_type percent_type price_type quantity_type string_1024_type string_255_type
value
required

Value.

string | null
customFields
required

Custom field values QuickBooks stores on this sales order line group.

Array<object>

Custom field as stored in QuickBooks Desktop.

object
ownerId
required

Owner of the custom field: “0” for public fields shown in the QuickBooks UI.

string | null
name
required

Name of this custom field, unique within its parent level.

string | null
type
required

Type.

string | null
Allowed values: amount_type date_time_type integer_type percent_type price_type quantity_type string_1024_type string_255_type
value
required

Value.

string | null
customFields
required

Custom field values QuickBooks stores on this sales order.

Array<object>

Custom field as stored in QuickBooks Desktop.

object
ownerId
required

Owner of the custom field: “0” for public fields shown in the QuickBooks UI.

string | null
name
required

Name of this custom field, unique within its parent level.

string | null
type
required

Type.

string | null
Allowed values: amount_type date_time_type integer_type percent_type price_type quantity_type string_1024_type string_255_type
value
required

Value.

string | null
fulfillmentStatus
required

Fulfillment status of this sales order.

string | null
Allowed values: status_blank=-1 status_open=0 status_sent_for_pick status_partially_sent_for_pick status_pick_in_progress status_partial_pick_in_progress status_partially_picked status_picked status_partially_invoiced status_invoiced status_not_picked status_sent_for_receive=20 status_partially_sent_for_receive status_receive_in_progress status_partial_receive_in_progress status_partially_received status_received status_receipt_created status_partial_receipt_created status_not_received status_sent_for_pack=40 status_partially_sent_for_pack status_pack_in_progress status_partial_packin_progress status_partially_packed status_packed status_notpacked status_sent_for_xpack=50 status_sent_for_ship=60 status_partially_sent_for_ship status_ship_in_progress status_partial_ship_in_progress status_partially_shipped status_status_shipped status_not_shipped status_complete=100
shippingDetails
required
Any of:

Shipping details as stored in QuickBooks Desktop.

object
shippingDetailsLine
required

Shipping details line entries for this shipping details.

Array<object>

Shipping details line as stored in QuickBooks Desktop.

object
trackingId
required

ID of the tracking.

string | null
carrierName
required

Carrier name of this shipping details line.

string | null
shippingMethod
required

Shipping method of this shipping details line.

string | null
shippingCharges
required

Shipping charges of this shipping details line. Decimal string with up to 2 decimal places.

string | null
/^-?\d{1,13}(\.\d{1,2})?$/
salesChannelName
required

Sales channel name of this sales order.

string | null
Allowed values: blank ecommerce
salesStoreName
required

Sales store name of this sales order.

string | null
salesStoreType
required

Sales store type of this sales order.

string | null
Example
{
"objectType": "qbd_sales_order",
"createdAt": "2026-10-05T09:14:03-07:00",
"updatedAt": "2026-10-05T09:14:03-07:00",
"transactionDate": "2026-10-05",
"dueDate": "2026-10-05",
"shippingDate": "2026-10-05",
"subtotal": "1250.00",
"salesTaxPercentage": "7.5",
"salesTaxTotal": "1250.00",
"totalAmount": "1250.00",
"totalAmountInHomeCurrency": "1250.00",
"linkedTransactions": [
{
"objectType": "qbd_linked_transaction",
"transactionType": "ar_refund_credit_card",
"transactionDate": "2026-10-05",
"linkType": "amount",
"amount": "1250.00"
}
],
"lines": [
{
"objectType": "qbd_sales_order_line",
"rate": "19.99",
"ratePercent": "7.5",
"amount": "1250.00",
"customFields": [
{
"type": "amount_type"
}
]
}
],
"lineGroups": [
{
"objectType": "qbd_sales_order_line_group",
"totalAmount": "1250.00",
"lines": [
{
"objectType": "qbd_sales_order_line",
"rate": "19.99",
"ratePercent": "7.5",
"amount": "1250.00",
"customFields": [
{
"type": "amount_type"
}
]
}
],
"customFields": [
{
"type": "amount_type"
}
]
}
],
"customFields": [
{
"type": "amount_type"
}
],
"fulfillmentStatus": "status_blank=-1",
"shippingDetails": {
"shippingDetailsLine": [
{
"shippingCharges": "1250.00"
}
]
},
"salesChannelName": "blank"
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Accepted in async mode (Prefer: respond-async). Poll Location or wait for a webhook; the request’s result holds the success body.

Media typeapplication/json
object
id
required

Unique identifier for the request.

string
/^req_[0-9a-hjkmnp-tv-z]{26}$/
objectType
required

Always request.

string
Allowed values: request
createdAt
required

When the request was received. UTC, ISO 8601 with milliseconds.

string format: date-time
projectId
required

Unique identifier for the project.

string
/^proj_[0-9a-hjkmnp-tv-z]{26}$/
endUserId
required

Unique identifier for the end user.

string
/^eu_[0-9a-hjkmnp-tv-z]{26}$/
connectionId
required

The connection that carried the request; null when the call was rejected before the end user had a connection (no setup link created yet).

string | null
/^conn_[0-9a-hjkmnp-tv-z]{26}$/
operationId
required

The API operation, for example endUsers.passthrough or qbd.healthCheck.

string
method
required

HTTP method of the original call.

string
path
required

Path of the original call.

string
mode
required

sync when the caller waited for the result.

string
Allowed values: sync async
status
required

queued: accepted and waiting for its turn or the next Web Connector check-in. waiting_for_connection: async request waiting for an offline connection. sent: handed to QuickBooks; it can no longer be canceled. succeeded and failed are final. canceled: canceled before it was sent. outcome_unknown: a write was sent and its result could not be confirmed.

string
Allowed values: queued waiting_for_connection sent succeeded failed canceled outcome_unknown
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
sentAt
required

When the request was handed to the Web Connector. UTC, ISO 8601.

string | null
completedAt
required

When the request reached a final status. UTC, ISO 8601.

string | null
durationMs
required

Milliseconds from creation to completion.

integer | null
idempotencyKeyPresent
required

Whether the call sent an Idempotency-Key.

boolean
previousRequestId
required

An earlier request with the same Idempotency-Key that ended before reaching QuickBooks.

string | null
waitingReason
required

Why a queued request is waiting. quickbooks_not_responding: the Web Connector started a session but QuickBooks has not answered it (usually a QuickBooks dialog is open; see diagnosis). null once the request was sent.

string | null
Allowed values: awaiting_check_in behind_other_requests opening_company_file quickbooks_starting connector_offline quickbooks_unavailable quickbooks_not_responding write_recovery_pending
queuePosition
required

Position in this connection’s queue (1 = next), while queued.

integer | null
queueTtlExpiresAt
required

Async requests only: the latest time the request may still be sent. UTC, ISO 8601.

string | null
timings
required

Where the time went.

object
queuedMs
required

Milliseconds from creation until the request was sent to QuickBooks.

integer | null
quickbooksMs
required

Milliseconds from sending until QuickBooks answered.

integer | null
totalMs
required

Milliseconds from creation to completion.

integer | null
quickbooks
required

Native QuickBooks details.

object
qbxmlVersion
required

QbXML version used.

string | null
messageSetId
required

QbXML newMessageSetID sent with a write.

string | null
statusCode
required

QbXML statusCode of the first response element.

integer | null
statusSeverity
required

QbXML statusSeverity (Info, Warn or Error).

string | null
warnings
required

QuickBooks warnings (statusSeverity="Warn") and values the API read leniently from a damaged company file. The response body never drops a record for these; affected values are null.

Array<object>
object
code
required

QBD_WARNING for a QuickBooks warning status; QBD_VALUE_UNREADABLE when a value in the response was garbled and is returned as null; QBD_MARKUP_REPAIRED when malformed XML text was kept as text.

string
Allowed values: QBD_WARNING QBD_VALUE_UNREADABLE QBD_MARKUP_REPAIRED
statusCode
required

QbXML statusCode of a QuickBooks warning; null for warnings about the response data.

integer | null
message
required

What happened, including the text QuickBooks sent for unreadable values.

string
path
required

Where in result the affected value is, such as data[2].lines[0].amount; null for QuickBooks warning statuses.

string | null
recovered
required

true when an outcome_unknown write was resolved by asking QuickBooks for its stored result.

boolean
timeline
required

Lifecycle steps in order.

Array<object>
object
at
required

When the step happened. UTC, ISO 8601 with milliseconds.

string format: date-time
status
required

Step, usually a status (queued, waiting, sent, succeeded, diagnosed, …).

string
detail
required

Extra detail, for example the waiting reason or diagnosis cause.

string | null
elapsedMs
required

Milliseconds since the request was created.

integer
diagnosis
required
Any of:

Why a request is waiting, or why it timed out or expired. The server cannot see the end user’s screen; it ranks causes from Web Connector check-ins, whether QuickBooks answered, native connection errors, the company file identity and the queue.

object
at
required

When the diagnosis was made. UTC, ISO 8601 with milliseconds.

string format: date-time
summary
required

The most likely cause in one line.

string
connector
required

What the server observed about the end user’s Web Connector.

object
lastSeenAt
required

Last sign of the Web Connector (a check-in or a call inside a session). UTC, ISO 8601.

string | null
lastCheckInAt
required

Last Web Connector check-in. UTC, ISO 8601.

string | null
checkInIntervalSeconds
required

Typical interval between recent check-ins, in seconds.

integer | null
silentForSeconds
required

Seconds since lastSeenAt.

integer | null
sessionOpen
required

Whether a Web Connector session is open now.

boolean
sessionOpenedAt
required

When the open session started. UTC, ISO 8601.

string | null
quickbooksAnswered
required

Whether QuickBooks answered the open session; null without a session.

boolean | null
silentSessions
required

Recent consecutive sessions in which QuickBooks never answered.

integer
lastConnectionErrorCode
required

Error code of the latest QuickBooks connection error, while it persists.

string | null
probableCauses
required

Probable causes, most likely first.

Array<object>
object
code
required

Stable cause code. New codes may be added.

string
Allowed values: quickbooks_modal_dialog web_connector_registration_lost quickbooks_starting other_web_connector_app web_connector_closed computer_offline web_connector_schedule_changed quickbooks_closed_no_unattended_access quickbooks_unavailable wrong_company_file write_recovery_pending behind_other_requests quickbooks_processing session_interrupted same_connector_two_computers awaiting_check_in
likelihood
required

How strongly the observations point at this cause.

string
Allowed values: high medium low
summary
required

One-line description of the cause.

string
explanation
required

What the server observed and why it points at this cause.

string
fixes
required

Actions that resolve the cause, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
details
required

Cause-specific observations, for example connectionErrorCode or silentForMs.

object
key
additional properties
docsUrl
required

Troubleshooting section for this cause.

string format: uri
error
required
Any of:
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
result

The response body the original call returned (or would have returned) on success; null otherwise.

resultExpired
required

true when the result existed but is past the payload retention period (15 days, or 24 hours with payload capture off).

boolean
Example
{
"id": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"objectType": "request",
"createdAt": "2026-10-05T16:03:59.002Z",
"projectId": "proj_01j9x4m6v4c8k2t7q0r5s3w1zf",
"endUserId": "eu_01j9x4m6v4c8k2t7q0r5s3w1zb",
"connectionId": "conn_01j9x4m6v4c8k2t7q0r5s3w1zc",
"operationId": "qbd.healthCheck",
"method": "GET",
"path": "/v1/quickbooks-desktop/health-check",
"mode": "sync",
"status": "queued",
"outcome": "applied",
"waitingReason": "awaiting_check_in",
"warnings": [
{
"code": "QBD_WARNING"
}
],
"timeline": [
{
"at": "2026-10-05T16:03:59.002Z"
}
],
"diagnosis": {
"at": "2026-10-05T16:03:59.002Z",
"summary": "QuickBooks Desktop probably has a dialog window open.",
"probableCauses": [
{
"code": "quickbooks_modal_dialog",
"likelihood": "high",
"fixes": [
{
"actor": "developer"
}
]
}
]
},
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Location
string

Path of the request resource, /v1/requests/{id}.

Preference-Applied
string

respond-async when async mode was honored.

The request is invalid. Codes: UNKNOWN_HEADER, END_USER_ID_MISSING, INVALID_PARAMETER, UNKNOWN_PARAMETER, INVALID_JSON, DECIMAL_PRECISION_EXCEEDED, STRING_TOO_LONG, UNSUPPORTED_CHARACTER, FIELD_NOT_CLEARABLE, IDEMPOTENCY_KEY_INVALID.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The API key is missing or invalid. Codes: API_KEY_MISSING, API_KEY_INVALID.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

Billing blocks production data requests. Codes: BILLING_REQUIRED, PAYMENT_FAILED.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The operation is not permitted. Codes: INTEGRATION_CONNECTION_DISABLED, PERMISSION_DENIED, QBD_INSUFFICIENT_PERMISSION, API_KEY_READ_ONLY.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The object does not exist in this project. Codes: RESOURCE_MISSING, QBD_OBJECT_NOT_FOUND.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The request conflicts with the current state. Codes: INTEGRATION_CONNECTION_NOT_SET_UP, QBD_COMPANY_FILE_MISMATCH, QBD_DUPLICATE_NAME, QBD_OBJECT_IN_USE, QBD_REVISION_NUMBER_STALE.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The request body is too large. Codes: PAYLOAD_TOO_LARGE.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The request is well formed but cannot be processed. Codes: QBD_FIELD_UNSUPPORTED_BY_VERSION, QBD_REGION_UNSUPPORTED, QBD_REQUEST_ERROR, QBD_FEATURE_NOT_ENABLED, IDEMPOTENCY_KEY_REUSED, QBD_REFERENCE_NOT_FOUND.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

Too many requests. Codes: RATE_LIMITED, CONNECTION_QUEUE_FULL.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

Unexpected server error. Codes: INTERNAL_ERROR.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The result could not be confirmed. Codes: QBD_READ_INTERRUPTED, QBD_WRITE_OUTCOME_UNKNOWN.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

QuickBooks Desktop or the service is not available. Codes: SERVICE_UNAVAILABLE, INTEGRATION_CONNECTION_NOT_ACTIVE, QBD_CONNECTION_ERROR, QBD_CANNOT_START, QBD_STARTING, QBD_MODAL_DIALOG_OPEN, QBD_QUICKBOOKS_NOT_RESPONDING, QBD_WRONG_COMPANY_FILE_OPEN, QBD_COMPANY_FILE_NOT_FOUND, QBD_FILE_MODE_CONFLICT, QBD_ADMIN_REQUIRED, QBD_ACCESS_NOT_GRANTED, QBD_VERSION_UNSUPPORTED.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.

The request timed out. Codes: REQUEST_TIMEOUT_NOT_SENT, QBD_REQUEST_TIMEOUT.

Media typeapplication/json
object
error
required
object
type
required

Error category. Use it to choose between retrying, fixing the request and asking the end user to act.

string
Allowed values: INVALID_REQUEST_ERROR AUTHENTICATION_ERROR PERMISSION_ERROR BILLING_ERROR RATE_LIMIT_ERROR INTEGRATION_CONNECTION_ERROR INTEGRATION_ERROR OUTCOME_UNKNOWN_ERROR INTERNAL_ERROR
code
required

Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.

string
Allowed values: INVALID_JSON INVALID_PARAMETER UNKNOWN_PARAMETER UNKNOWN_HEADER DECIMAL_PRECISION_EXCEEDED STRING_TOO_LONG UNSUPPORTED_CHARACTER FIELD_NOT_CLEARABLE END_USER_ID_MISSING PAYLOAD_TOO_LARGE IDEMPOTENCY_KEY_INVALID IDEMPOTENCY_KEY_REUSED CURSOR_INVALID CURSOR_PARAMS_MISMATCH CURSOR_EXPIRED RESOURCE_MISSING REQUEST_NOT_CANCELABLE PASSTHROUGH_INVALID_QBXML QBD_FIELD_UNSUPPORTED_BY_VERSION QBD_REGION_UNSUPPORTED API_KEY_MISSING API_KEY_INVALID PUBLISHABLE_KEY_INVALID PUBLISHABLE_KEY_PROJECT_MISMATCH TEST_COMPANY_FILE_LIMIT_REACHED API_KEY_READ_ONLY PERMISSION_DENIED BILLING_REQUIRED PAYMENT_FAILED RATE_LIMITED CONNECTION_QUEUE_FULL WEBHOOK_ENDPOINT_LIMIT_REACHED INTEGRATION_CONNECTION_NOT_SET_UP INTEGRATION_CONNECTION_NOT_ACTIVE INTEGRATION_CONNECTION_DISABLED QBD_CONNECTION_ERROR QBD_CANNOT_START QBD_STARTING QBD_MODAL_DIALOG_OPEN QBD_QUICKBOOKS_NOT_RESPONDING QBD_WRONG_COMPANY_FILE_OPEN QBD_COMPANY_FILE_MISMATCH QBD_COMPANY_FILE_NOT_FOUND QBD_FILE_MODE_CONFLICT QBD_ADMIN_REQUIRED QBD_ACCESS_NOT_GRANTED QBD_VERSION_UNSUPPORTED QBD_REQUEST_ERROR QBD_OBJECT_NOT_FOUND QBD_REFERENCE_NOT_FOUND QBD_DUPLICATE_NAME QBD_REVISION_NUMBER_STALE QBD_OBJECT_IN_USE QBD_FEATURE_NOT_ENABLED QBD_INSUFFICIENT_PERMISSION QBD_RESPONSE_TOO_LARGE QBD_OPERATION_UNSUPPORTED QBD_RESPONSE_UNREADABLE REQUEST_TIMEOUT_NOT_SENT REQUEST_EXPIRED REQUEST_CANCELED QBD_REQUEST_TIMEOUT QBD_WRITE_OUTCOME_UNKNOWN QBD_READ_INTERRUPTED INTERNAL_ERROR SERVICE_UNAVAILABLE
message
required

Developer-facing explanation. May include IDs and field paths; never includes secrets.

string
userFacingMessage
required

A message that is safe to show to the end user.

string
httpStatusCode
required

HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).

integer | null
integrationCode
required

Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.

string | null
requestId
required

The Daapi-Request-Id of this response. Include it when contacting support.

string
cause
required

Why this error happens.

string
fixes
required

Ordered actions that resolve the error, each with the responsible actor.

Array<object>
object
actor
required

Who can apply the fix.

string
Allowed values: developer end_user support
action
required

What to do.

string
docsUrl
required

Documentation section for this code.

string format: uri
retryable
required

Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.

boolean
outcome
required

Whether a write took effect: applied (QuickBooks confirmed it), not_applied (it certainly did not happen), pending (sent, still processing), unknown (sent, result could not be confirmed) or not_applicable (a read).

string
Allowed values: applied not_applied pending unknown not_applicable
param
required

Request field, query parameter or header the error refers to, when known.

string | null
details
required

Code-specific details, documented per code in the error catalog.

object
key
additional properties
Example
{
"error": {
"type": "INVALID_REQUEST_ERROR",
"code": "INVALID_JSON",
"httpStatusCode": 503,
"integrationCode": "0x80040414",
"requestId": "req_01j9x4m6v4c8k2t7q0r5s3w1zd",
"fixes": [
{
"actor": "developer"
}
],
"docsUrl": "https://www.desktopaccountingapi.com/docs/errors/#qbd_modal_dialog_open",
"outcome": "applied",
"param": "companyName"
}
}
Daapi-Request-Id
string

Unique ID of this API call (req_...). Present on every response.

RateLimit-Limit
integer

Requests allowed per window for the project (all keys together).

RateLimit-Remaining
integer

Requests left in the current window, as counted by the edge location that served this call.

RateLimit-Reset
integer

Seconds until the current window resets.

Daapi-Should-Retry
string
Allowed values: true false

true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.

Retry-After
integer

Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.