Skip to content
Desktop Accounting API

Create an estimate

Try itPOST /v1/quickbooks-desktop/estimates

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/estimates
curl --request POST \
--url https://api.desktopaccountingapi.com/v1/quickbooks-desktop/estimates \
--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 '{ "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" }, "isActive": true, "purchaseOrderNumber": "example", "termsId": "80000001-1234567890", "dueDate": "2026-10-05", "salesRepresentativeId": "80000001-1234567890", "shipmentOrigin": "example", "salesTaxItemId": "80000001-1234567890", "memo": "example", "customerMessageId": "80000001-1234567890", "isQueuedForEmail": true, "salesTaxCodeId": "80000001-1234567890", "otherCustomField": "example", "exchangeRate": 1, "externalId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "lines": [ { "itemId": "80000001-1234567890", "description": "example", "quantity": 1, "unitOfMeasure": "example", "rate": "19.99", "ratePercent": "7.5", "classId": "80000001-1234567890", "amount": "1250.00", "priceRuleConflictStrategy": "zero", "inventorySiteId": "80000001-1234567890", "inventorySiteLocationId": "80000001-1234567890", "salesTaxCodeId": "80000001-1234567890", "markupRate": "19.99", "markupRatePercent": "7.5", "priceLevelId": "80000001-1234567890", "overrideItemAccountId": "80000001-1234567890", "otherCustomField1": "example", "otherCustomField2": "example", "customFields": [ { "ownerId": "example", "name": "example", "value": "example" } ] } ], "lineGroups": [ { "itemGroupId": "80000001-1234567890", "quantity": 1, "unitOfMeasure": "example", "inventorySiteId": "80000001-1234567890", "inventorySiteLocationId": "80000001-1234567890", "customFields": [ { "ownerId": "example", "name": "example", "value": "example" } ] } ] }'

Creates an estimate in QuickBooks Desktop and returns it. Send an Idempotency-Key header so a retry after a network error never creates a second estimate (the SDKs do this for you). See Idempotency and safe retries.

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 creating an estimate. Requires at least one of: lines or lineGroups.

object
customerId
required

ID of the customer for this estimate.

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

ID of the class for this estimate.

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

ID of the document template for this estimate.

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

Date of this estimate (YYYY-MM-DD).

string format: date
Example
2026-10-05
refNumber

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

string
<= 11 characters
billingAddress
object
line1

First address line.

string
<= 41 characters
line2

Second address line.

string
<= 41 characters
line3

Third address line.

string
<= 41 characters
line4

Fourth address line.

string
<= 41 characters
line5

Fifth address line.

string
<= 41 characters
city

City or locality.

string
<= 31 characters
state

State, province or region.

string
<= 21 characters
postalCode

Postal or ZIP code.

string
<= 13 characters
country

Country.

string
<= 31 characters
note

Note for this vendor address.

string
<= 41 characters
shippingAddress
object
line1

First address line.

string
<= 41 characters
line2

Second address line.

string
<= 41 characters
line3

Third address line.

string
<= 41 characters
line4

Fourth address line.

string
<= 41 characters
line5

Fifth address line.

string
<= 41 characters
city

City or locality.

string
<= 31 characters
state

State, province or region.

string
<= 21 characters
postalCode

Postal or ZIP code.

string
<= 13 characters
country

Country.

string
<= 31 characters
note

Note for this vendor address.

string
<= 41 characters
isActive

Whether this estimate is active. Inactive objects stay in QuickBooks but are hidden from most lists.

boolean
purchaseOrderNumber

Purchase order number of this estimate.

string
<= 25 characters
termsId

ID of the terms for this estimate.

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

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

string format: date
Example
2026-10-05
salesRepresentativeId

ID of the sales representative for this estimate.

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

Shipment origin of this estimate.

string
<= 13 characters
salesTaxItemId

ID of the sales tax item for this estimate.

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

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

string
<= 4095 characters
customerMessageId

ID of the customer message for this estimate.

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

Whether this estimate is in the queue of forms to email.

boolean
salesTaxCodeId

ID of the sales tax code for this estimate.

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

Built-in “Other” text field on this estimate.

string
<= 29 characters
exchangeRate

Exchange rate from this estimate’s currency to the home currency.

number
externalId

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

string format: uuid
lines

Line items of this estimate.

Array<object>

Fields for creating an estimate line.

object
itemId

ID of the item for this estimate line.

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

Description of this estimate line.

string
<= 4095 characters
quantity

Quantity of the item.

number
unitOfMeasure

Unit of measure for the quantity.

string
<= 31 characters
rate

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

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.

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

ID of the class for this estimate 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 estimate line.

string
Allowed values: zero base_price
inventorySiteId

ID of the inventory site for this estimate line.

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

ID of the inventory site location for this estimate line.

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

ID of the sales tax code for this estimate line.

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

Markup rate of this estimate line. Decimal string with up to 5 decimal places. Cannot be combined with markupRatePercent, priceLevelId.

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

Markup rate percent of this estimate line. Percentage as a decimal string: “7.5” means 7.5 %. Cannot be combined with markupRate, priceLevelId.

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

ID of the price level for this estimate line. Cannot be combined with markupRate, markupRatePercent.

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

ID of the override item account for this estimate line.

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

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

string
<= 29 characters
otherCustomField2

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

string
<= 29 characters
customFields

Custom field values QuickBooks stores on this estimate line.

Array<object>

Fields for creating a custom field.

object
ownerId
required

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

string
name
required

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

string
<= 31 characters
value
required

Value.

string
lineGroups

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

Array<object>

Fields for creating an estimate line group.

object
itemGroupId
required

ID of the item group for this estimate line group.

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

Quantity of the item.

number
unitOfMeasure

Unit of measure for the quantity.

string
<= 31 characters
inventorySiteId

ID of the inventory site for this estimate line group.

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

ID of the inventory site location for this estimate line group.

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

Custom field values QuickBooks stores on this estimate line group.

Array<object>

Fields for creating a custom field.

object
ownerId
required

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

string
name
required

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

string
<= 31 characters
value
required

Value.

string

The created estimate.

Media typeapplication/json

Estimate as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this estimate.

string
objectType
required

Type of this object.

string
Allowed values: qbd_estimate
createdAt
required

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

string format: date-time
updatedAt
required

When this estimate 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 estimate. 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 estimate (YYYY-MM-DD).

string | null format: date
refNumber
required

Reference number of this estimate, 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
isActive
required

Whether this estimate is active. Inactive objects stay in QuickBooks but are hidden from most lists.

boolean | null
purchaseOrderNumber
required

Purchase order number of this estimate.

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 estimate 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 estimate.

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 estimate 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 estimate’s currency to the home currency.

number | null
totalAmountInHomeCurrency
required

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

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

Internal memo for this estimate; 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
isQueuedForEmail
required

Whether this estimate 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 estimate.

string | null
externalId
required

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

string | null format: uuid
linkedTransactions
required

Transactions linked to this estimate, 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 estimate.

Array<object>

Estimate line as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this estimate line.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_estimate_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 estimate 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
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
markupRate
required

Markup rate of this estimate line. Decimal string with up to 5 decimal places.

string | null
markupRatePercent
required

Markup rate percent of this estimate line. Percentage as a decimal string: “7.5” means 7.5 %.

string | null
otherCustomField1
required

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

string | null
otherCustomField2
required

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

string | null
customFields
required

Custom field values QuickBooks stores on this estimate 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 estimate: each expands an item group into its component lines.

Array<object>

Estimate line group as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this estimate line group.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_estimate_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 estimate 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 estimate line group as a decimal string.

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

Line items of this estimate line group.

Array<object>

Estimate line as stored in QuickBooks Desktop.

object
id
required

QuickBooks-assigned ID of this estimate line.

string | null
objectType
required

Type of this object.

string
Allowed values: qbd_estimate_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 estimate 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
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
markupRate
required

Markup rate of this estimate line. Decimal string with up to 5 decimal places.

string | null
markupRatePercent
required

Markup rate percent of this estimate line. Percentage as a decimal string: “7.5” means 7.5 %.

string | null
otherCustomField1
required

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

string | null
otherCustomField2
required

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

string | null
customFields
required

Custom field values QuickBooks stores on this estimate 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 estimate 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 estimate.

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
Example
{
"objectType": "qbd_estimate",
"createdAt": "2026-10-05T09:14:03-07:00",
"updatedAt": "2026-10-05T09:14:03-07:00",
"transactionDate": "2026-10-05",
"dueDate": "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_estimate_line",
"rate": "19.99",
"ratePercent": "7.5",
"amount": "1250.00",
"markupRate": "19.99",
"markupRatePercent": "7.5",
"customFields": [
{
"type": "amount_type"
}
]
}
],
"lineGroups": [
{
"objectType": "qbd_estimate_line_group",
"totalAmount": "1250.00",
"lines": [
{
"objectType": "qbd_estimate_line",
"rate": "19.99",
"ratePercent": "7.5",
"amount": "1250.00",
"markupRate": "19.99",
"markupRatePercent": "7.5",
"customFields": [
{
"type": "amount_type"
}
]
}
],
"customFields": [
{
"type": "amount_type"
}
]
}
],
"customFields": [
{
"type": "amount_type"
}
]
}
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.

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.

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.