Create a sales receipt
Try itPOST /v1/quickbooks-desktop/sales-receipts
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.
Headers (3 optional)
const url = 'https://api.desktopaccountingapi.com/v1/quickbooks-desktop/sales-receipts';const options = { method: 'POST', headers: { 'Daapi-End-User-Id': 'eu_01j9x4m6v4c8k2t7q0r5s3w1zb', 'Daapi-Timeout-Seconds': '90', Prefer: 'respond-async', 'Daapi-Queue-Ttl-Seconds': '3600', 'Idempotency-Key': '6f1c2a0e-1f7e-4c55-9a7a-0b2d2c9e3a10', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"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"},"isPending":true,"checkNumber":"example","paymentMethodId":"80000001-1234567890","dueDate":"2026-10-05","salesRepresentativeId":"80000001-1234567890","shippingDate":"2026-10-05","shippingMethodId":"80000001-1234567890","shipmentOrigin":"example","salesTaxItemId":"80000001-1234567890","memo":"example","customerMessageId":"80000001-1234567890","isQueuedForPrint":true,"isQueuedForEmail":true,"salesTaxCodeId":"80000001-1234567890","depositToAccountId":"80000001-1234567890","creditCardTransaction":{"request":{"number":"example","expirationMonth":1,"expirationYear":1,"name":"example","address":"example","postalCode":"example","commercialCardCode":"example","transactionMode":"card_not_present","transactionType":"authorization"},"response":{"statusCode":1,"statusMessage":"example","creditCardTransactionId":"example","merchantAccountNumber":"example","authorizationCode":"example","avsStreetStatus":"pass","avsZipStatus":"pass","cardSecurityCodeMatch":"pass","reconBatchId":"example","paymentGroupingCode":1,"paymentStatus":"unknown","transactionAuthorizedAt":"2026-04-15T12:00:00Z","transactionAuthorizationStamp":1,"clientTransactionId":"example"}},"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","priceLevelId":"80000001-1234567890","classId":"80000001-1234567890","amount":"1250.00","priceRuleConflictStrategy":"zero","inventorySiteId":"80000001-1234567890","inventorySiteLocationId":"80000001-1234567890","serialNumber":"example","lotNumber":"example","serviceDate":"2026-10-05","salesTaxCodeId":"80000001-1234567890","overrideItemAccountId":"80000001-1234567890","otherCustomField1":"example","otherCustomField2":"example","creditCardTransaction":{"request":{"number":"example","expirationMonth":1,"expirationYear":1,"name":"example","address":"example","postalCode":"example","commercialCardCode":"example","transactionMode":"card_not_present","transactionType":"authorization"},"response":{"statusCode":1,"statusMessage":"example","creditCardTransactionId":"example","merchantAccountNumber":"example","authorizationCode":"example","avsStreetStatus":"pass","avsZipStatus":"pass","cardSecurityCodeMatch":"pass","reconBatchId":"example","paymentGroupingCode":1,"paymentStatus":"unknown","transactionAuthorizedAt":"2026-04-15T12:00:00Z","transactionAuthorizationStamp":1,"clientTransactionId":"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"}]}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.desktopaccountingapi.com/v1/quickbooks-desktop/sales-receipts \ --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" }, "isPending": true, "checkNumber": "example", "paymentMethodId": "80000001-1234567890", "dueDate": "2026-10-05", "salesRepresentativeId": "80000001-1234567890", "shippingDate": "2026-10-05", "shippingMethodId": "80000001-1234567890", "shipmentOrigin": "example", "salesTaxItemId": "80000001-1234567890", "memo": "example", "customerMessageId": "80000001-1234567890", "isQueuedForPrint": true, "isQueuedForEmail": true, "salesTaxCodeId": "80000001-1234567890", "depositToAccountId": "80000001-1234567890", "creditCardTransaction": { "request": { "number": "example", "expirationMonth": 1, "expirationYear": 1, "name": "example", "address": "example", "postalCode": "example", "commercialCardCode": "example", "transactionMode": "card_not_present", "transactionType": "authorization" }, "response": { "statusCode": 1, "statusMessage": "example", "creditCardTransactionId": "example", "merchantAccountNumber": "example", "authorizationCode": "example", "avsStreetStatus": "pass", "avsZipStatus": "pass", "cardSecurityCodeMatch": "pass", "reconBatchId": "example", "paymentGroupingCode": 1, "paymentStatus": "unknown", "transactionAuthorizedAt": "2026-04-15T12:00:00Z", "transactionAuthorizationStamp": 1, "clientTransactionId": "example" } }, "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", "priceLevelId": "80000001-1234567890", "classId": "80000001-1234567890", "amount": "1250.00", "priceRuleConflictStrategy": "zero", "inventorySiteId": "80000001-1234567890", "inventorySiteLocationId": "80000001-1234567890", "serialNumber": "example", "lotNumber": "example", "serviceDate": "2026-10-05", "salesTaxCodeId": "80000001-1234567890", "overrideItemAccountId": "80000001-1234567890", "otherCustomField1": "example", "otherCustomField2": "example", "creditCardTransaction": { "request": { "number": "example", "expirationMonth": 1, "expirationYear": 1, "name": "example", "address": "example", "postalCode": "example", "commercialCardCode": "example", "transactionMode": "card_not_present", "transactionType": "authorization" }, "response": { "statusCode": 1, "statusMessage": "example", "creditCardTransactionId": "example", "merchantAccountNumber": "example", "authorizationCode": "example", "avsStreetStatus": "pass", "avsZipStatus": "pass", "cardSecurityCodeMatch": "pass", "reconBatchId": "example", "paymentGroupingCode": 1, "paymentStatus": "unknown", "transactionAuthorizedAt": "2026-04-15T12:00:00Z", "transactionAuthorizationStamp": 1, "clientTransactionId": "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 a sales receipt in QuickBooks Desktop and returns it. Send an Idempotency-Key header so a retry after a network error never creates a second sales receipt (the SDKs do this for you). See Idempotency and safe retries.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”The end user whose QuickBooks company file this request uses. Conductor-End-User-Id is accepted as an alias.
Example
eu_01j9x4m6v4c8k2t7q0r5s3w1zbHow 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
90Send respond-async to get 202 Accepted with a request resource immediately instead of waiting for QuickBooks.
Example
respond-asyncAsync only: the latest time, in seconds from now (10 to 86400), the request may still be sent to QuickBooks. Default 3600.
Example
3600Makes 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-0b2d2c9e3a10Request Bodyrequired
Section titled “Request Bodyrequired”Fields for creating a sales receipt. Requires at least one of: lines or lineGroups.
object
ID of the customer for this sales receipt.
Example
80000001-1234567890ID of the class for this sales receipt.
Example
80000001-1234567890ID of the document template for this sales receipt.
Example
80000001-1234567890Date of this sales receipt (YYYY-MM-DD).
Example
2026-10-05Reference number of this sales receipt, such as an invoice or check number. Case-sensitive.
object
First address line.
Second address line.
Third address line.
Fourth address line.
Fifth address line.
City or locality.
State, province or region.
Postal or ZIP code.
Country.
Note for this vendor address.
object
First address line.
Second address line.
Third address line.
Fourth address line.
Fifth address line.
City or locality.
State, province or region.
Postal or ZIP code.
Country.
Note for this vendor address.
Whether this sales receipt is pending (not yet final) and does not post to accounts.
Check number of this sales receipt.
ID of the payment method for this sales receipt.
Example
80000001-1234567890Date payment of this sales receipt is due (YYYY-MM-DD).
Example
2026-10-05ID of the sales representative for this sales receipt.
Example
80000001-1234567890Date the goods on this sales receipt were or will be shipped (YYYY-MM-DD).
Example
2026-10-05ID of the shipping method for this sales receipt.
Example
80000001-1234567890Shipment origin of this sales receipt.
ID of the sales tax item for this sales receipt.
Example
80000001-1234567890Internal memo for this sales receipt; shown in reports, not on printed forms.
ID of the customer message for this sales receipt.
Example
80000001-1234567890Whether this sales receipt is in the queue of forms to print.
Whether this sales receipt is in the queue of forms to email.
ID of the sales tax code for this sales receipt.
Example
80000001-1234567890ID of the deposit to account for this sales receipt.
Example
80000001-1234567890object
Request details for this credit card transaction info.
object
Number of this credit card transaction input info.
Expiration month of this credit card transaction input info.
Expiration year of this credit card transaction input info.
Name of this credit card transaction input info, unique within its parent level.
Address of this credit card transaction input info.
Postal or ZIP code.
Commercial card code of this credit card transaction input info.
Transaction mode of this credit card transaction input info.
Transaction type of this credit card transaction input info.
Response details for this credit card transaction info.
object
Status code of this credit card transaction result info.
Status message of this credit card transaction result info.
Credit card transaction of this credit card transaction result info.
Merchant account number of this credit card transaction result info.
Authorization code of this credit card transaction result info.
Avs street status of this credit card transaction result info.
Avs zip status of this credit card transaction result info.
Card security code match of this credit card transaction result info.
Recon batch of this credit card transaction result info.
Payment grouping code of this credit card transaction result info.
Payment status of this credit card transaction result info.
Transaction authorized at, as an ISO 8601 date-time.
Transaction authorization stamp of this credit card transaction result info.
Client transaction of this credit card transaction result info.
Built-in “Other” text field on this sales receipt.
Exchange rate from this sales receipt’s currency to the home currency.
Your own UUID for this sales receipt, stored by QuickBooks so you can match records with your system.
Line items of this sales receipt.
Fields for creating a sales receipt line.
object
ID of the item for this sales receipt line.
Example
80000001-1234567890Description of this sales receipt line.
Quantity of the item.
Unit of measure for the quantity.
Price per unit, as a decimal string. Cannot be combined with ratePercent, priceLevelId.
Example
19.99Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %. Cannot be combined with rate, priceLevelId.
Example
7.5ID of the price level for this sales receipt line. Cannot be combined with rate, ratePercent.
Example
80000001-1234567890ID of the class for this sales receipt line.
Example
80000001-1234567890Amount as a decimal string.
Example
1250.00Price rule conflict strategy of this sales receipt line.
ID of the inventory site for this sales receipt line.
Example
80000001-1234567890ID of the inventory site location for this sales receipt line.
Example
80000001-1234567890Serial number of this sales receipt line. Cannot be combined with lotNumber.
Lot number of this sales receipt line. Cannot be combined with serialNumber.
Date the service was performed (YYYY-MM-DD).
Example
2026-10-05ID of the sales tax code for this sales receipt line.
Example
80000001-1234567890ID of the override item account for this sales receipt line.
Example
80000001-1234567890Built-in “Other 1” text field on this sales receipt line.
Built-in “Other 2” text field on this sales receipt line.
object
Request details for this credit card transaction info.
object
Number of this credit card transaction input info.
Expiration month of this credit card transaction input info.
Expiration year of this credit card transaction input info.
Name of this credit card transaction input info, unique within its parent level.
Address of this credit card transaction input info.
Postal or ZIP code.
Commercial card code of this credit card transaction input info.
Transaction mode of this credit card transaction input info.
Transaction type of this credit card transaction input info.
Response details for this credit card transaction info.
object
Status code of this credit card transaction result info.
Status message of this credit card transaction result info.
Credit card transaction of this credit card transaction result info.
Merchant account number of this credit card transaction result info.
Authorization code of this credit card transaction result info.
Avs street status of this credit card transaction result info.
Avs zip status of this credit card transaction result info.
Card security code match of this credit card transaction result info.
Recon batch of this credit card transaction result info.
Payment grouping code of this credit card transaction result info.
Payment status of this credit card transaction result info.
Transaction authorized at, as an ISO 8601 date-time.
Transaction authorization stamp of this credit card transaction result info.
Client transaction of this credit card transaction result info.
Custom field values QuickBooks stores on this sales receipt line.
Fields for creating a custom field.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Value.
Group lines of this sales receipt: each expands an item group into its component lines.
Fields for creating a sales receipt line group.
object
ID of the item group for this sales receipt line group.
Example
80000001-1234567890Quantity of the item.
Unit of measure for the quantity.
ID of the inventory site for this sales receipt line group.
Example
80000001-1234567890ID of the inventory site location for this sales receipt line group.
Example
80000001-1234567890Custom field values QuickBooks stores on this sales receipt line group.
Fields for creating a custom field.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Value.
Responses
Section titled “Responses”The created sales receipt.
Sales receipt as stored in QuickBooks Desktop.
object
QuickBooks-assigned ID of this sales receipt.
Type of this object.
When this sales receipt was created, as an ISO 8601 date-time with the QuickBooks computer’s UTC offset.
When this sales receipt was last changed, as an ISO 8601 date-time with the QuickBooks computer’s UTC offset.
Current revision of this sales receipt. Send it unchanged when updating; a stale value is rejected.
Sequential transaction number QuickBooks assigns internally.
Date of this sales receipt (YYYY-MM-DD).
Reference number of this sales receipt, such as an invoice or check number. Case-sensitive.
Address as stored in QuickBooks Desktop.
object
First address line.
Second address line.
Third address line.
Fourth address line.
Fifth address line.
City or locality.
State, province or region.
Postal or ZIP code.
Country.
Note for this address.
Address as stored in QuickBooks Desktop.
object
First address line.
Second address line.
Third address line.
Fourth address line.
Fifth address line.
City or locality.
State, province or region.
Postal or ZIP code.
Country.
Note for this address.
Whether this sales receipt is pending (not yet final) and does not post to accounts.
Check number of this sales receipt.
Date payment of this sales receipt is due (YYYY-MM-DD).
Date the goods on this sales receipt were or will be shipped (YYYY-MM-DD).
Shipment origin of this sales receipt.
Total of all lines before sales tax, as a decimal string.
Sales tax rate applied, as a percentage. Percentage as a decimal string: “7.5” means 7.5 %.
Total sales tax, as a decimal string.
Total amount of this sales receipt as a decimal string.
Exchange rate from this sales receipt’s currency to the home currency.
Total amount in home currency of this sales receipt. Decimal string with up to 2 decimal places.
Internal memo for this sales receipt; shown in reports, not on printed forms.
Whether this sales receipt is in the queue of forms to print.
Whether this sales receipt is in the queue of forms to email.
Credit card transaction info as stored in QuickBooks Desktop.
object
Credit card transaction input info as stored in QuickBooks Desktop.
object
Number of this credit card transaction input info.
Expiration month of this credit card transaction input info.
Expiration year of this credit card transaction input info.
Name of this credit card transaction input info, unique within its parent level.
Address of this credit card transaction input info.
Postal or ZIP code.
Commercial card code of this credit card transaction input info.
Transaction mode of this credit card transaction input info.
Transaction type of this credit card transaction input info.
Credit card transaction result info as stored in QuickBooks Desktop.
object
Status code of this credit card transaction result info.
Status message of this credit card transaction result info.
Credit card transaction of this credit card transaction result info.
Merchant account number of this credit card transaction result info.
Authorization code of this credit card transaction result info.
Avs street status of this credit card transaction result info.
Avs zip status of this credit card transaction result info.
Card security code match of this credit card transaction result info.
Recon batch of this credit card transaction result info.
Payment grouping code of this credit card transaction result info.
Payment status of this credit card transaction result info.
Transaction authorized at, as an ISO 8601 date-time.
Transaction authorization stamp of this credit card transaction result info.
Client transaction of this credit card transaction result info.
Built-in “Other” text field on this sales receipt.
Your own UUID for this sales receipt, stored by QuickBooks so you can match records with your system.
Line items of this sales receipt.
Sales receipt line as stored in QuickBooks Desktop.
object
QuickBooks-assigned ID of this sales receipt line.
Type of this object.
Description of this sales receipt line.
Quantity of the item.
Unit of measure for the quantity.
Price per unit, as a decimal string.
Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %.
Amount as a decimal string.
Serial number of this sales receipt line.
Lot number of this sales receipt line.
Expiration date of this sales receipt line.
Date the service was performed (YYYY-MM-DD).
Built-in “Other 1” text field on this sales receipt line.
Built-in “Other 2” text field on this sales receipt line.
Credit card transaction info as stored in QuickBooks Desktop.
object
Credit card transaction input info as stored in QuickBooks Desktop.
object
Number of this credit card transaction input info.
Expiration month of this credit card transaction input info.
Expiration year of this credit card transaction input info.
Name of this credit card transaction input info, unique within its parent level.
Address of this credit card transaction input info.
Postal or ZIP code.
Commercial card code of this credit card transaction input info.
Transaction mode of this credit card transaction input info.
Transaction type of this credit card transaction input info.
Credit card transaction result info as stored in QuickBooks Desktop.
object
Status code of this credit card transaction result info.
Status message of this credit card transaction result info.
Credit card transaction of this credit card transaction result info.
Merchant account number of this credit card transaction result info.
Authorization code of this credit card transaction result info.
Avs street status of this credit card transaction result info.
Avs zip status of this credit card transaction result info.
Card security code match of this credit card transaction result info.
Recon batch of this credit card transaction result info.
Payment grouping code of this credit card transaction result info.
Payment status of this credit card transaction result info.
Transaction authorized at, as an ISO 8601 date-time.
Transaction authorization stamp of this credit card transaction result info.
Client transaction of this credit card transaction result info.
Custom field values QuickBooks stores on this sales receipt line.
Custom field as stored in QuickBooks Desktop.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Type.
Value.
Group lines of this sales receipt: each expands an item group into its component lines.
Sales receipt line group as stored in QuickBooks Desktop.
object
QuickBooks-assigned ID of this sales receipt line group.
Type of this object.
Description of this sales receipt line group.
Quantity of the item.
Unit of measure for the quantity.
Whether to print items in group.
Total amount of this sales receipt line group as a decimal string.
Line items of this sales receipt line group.
Sales receipt line as stored in QuickBooks Desktop.
object
QuickBooks-assigned ID of this sales receipt line.
Type of this object.
Description of this sales receipt line.
Quantity of the item.
Unit of measure for the quantity.
Price per unit, as a decimal string.
Price as a percentage, for percentage-based items. Percentage as a decimal string: “7.5” means 7.5 %.
Amount as a decimal string.
Serial number of this sales receipt line.
Lot number of this sales receipt line.
Expiration date of this sales receipt line.
Date the service was performed (YYYY-MM-DD).
Built-in “Other 1” text field on this sales receipt line.
Built-in “Other 2” text field on this sales receipt line.
Credit card transaction info as stored in QuickBooks Desktop.
object
Credit card transaction input info as stored in QuickBooks Desktop.
object
Number of this credit card transaction input info.
Expiration month of this credit card transaction input info.
Expiration year of this credit card transaction input info.
Name of this credit card transaction input info, unique within its parent level.
Address of this credit card transaction input info.
Postal or ZIP code.
Commercial card code of this credit card transaction input info.
Transaction mode of this credit card transaction input info.
Transaction type of this credit card transaction input info.
Credit card transaction result info as stored in QuickBooks Desktop.
object
Status code of this credit card transaction result info.
Status message of this credit card transaction result info.
Credit card transaction of this credit card transaction result info.
Merchant account number of this credit card transaction result info.
Authorization code of this credit card transaction result info.
Avs street status of this credit card transaction result info.
Avs zip status of this credit card transaction result info.
Card security code match of this credit card transaction result info.
Recon batch of this credit card transaction result info.
Payment grouping code of this credit card transaction result info.
Payment status of this credit card transaction result info.
Transaction authorized at, as an ISO 8601 date-time.
Transaction authorization stamp of this credit card transaction result info.
Client transaction of this credit card transaction result info.
Custom field values QuickBooks stores on this sales receipt line.
Custom field as stored in QuickBooks Desktop.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Type.
Value.
Custom field values QuickBooks stores on this sales receipt line group.
Custom field as stored in QuickBooks Desktop.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Type.
Value.
Custom field values QuickBooks stores on this sales receipt.
Custom field as stored in QuickBooks Desktop.
object
Owner of the custom field: “0” for public fields shown in the QuickBooks UI.
Name of this custom field, unique within its parent level.
Type.
Value.
Example
{ "objectType": "qbd_sales_receipt", "createdAt": "2026-10-05T09:14:03-07:00", "updatedAt": "2026-10-05T09:14:03-07:00", "transactionDate": "2026-10-05", "dueDate": "2026-10-05", "shippingDate": "2026-10-05", "subtotal": "1250.00", "salesTaxPercentage": "7.5", "salesTaxTotal": "1250.00", "totalAmount": "1250.00", "totalAmountInHomeCurrency": "1250.00", "creditCardTransaction": { "request": { "transactionMode": "card_not_present", "transactionType": "authorization" }, "response": { "avsStreetStatus": "pass", "avsZipStatus": "pass", "cardSecurityCodeMatch": "pass", "paymentStatus": "unknown", "transactionAuthorizedAt": "2026-10-05T09:14:03-07:00" } }, "lines": [ { "objectType": "qbd_sales_receipt_line", "rate": "19.99", "ratePercent": "7.5", "amount": "1250.00", "serviceDate": "2026-10-05", "creditCardTransaction": { "request": { "transactionMode": "card_not_present", "transactionType": "authorization" }, "response": { "avsStreetStatus": "pass", "avsZipStatus": "pass", "cardSecurityCodeMatch": "pass", "paymentStatus": "unknown", "transactionAuthorizedAt": "2026-10-05T09:14:03-07:00" } }, "customFields": [ { "type": "amount_type" } ] } ], "lineGroups": [ { "objectType": "qbd_sales_receipt_line_group", "totalAmount": "1250.00", "lines": [ { "objectType": "qbd_sales_receipt_line", "rate": "19.99", "ratePercent": "7.5", "amount": "1250.00", "serviceDate": "2026-10-05", "creditCardTransaction": { "request": { "transactionMode": "card_not_present", "transactionType": "authorization" }, "response": { "avsStreetStatus": "pass", "avsZipStatus": "pass", "cardSecurityCodeMatch": "pass", "paymentStatus": "unknown", "transactionAuthorizedAt": "2026-10-05T09:14:03-07:00" } }, "customFields": [ { "type": "amount_type" } ] } ], "customFields": [ { "type": "amount_type" } ] } ], "customFields": [ { "type": "amount_type" } ]}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
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.
object
Unique identifier for the request.
Always request.
When the request was received. UTC, ISO 8601 with milliseconds.
Unique identifier for the project.
Unique identifier for the end user.
The connection that carried the request; null when the call was rejected before the end user had a connection (no setup link created yet).
The API operation, for example endUsers.passthrough or qbd.healthCheck.
HTTP method of the original call.
Path of the original call.
sync when the caller waited for the result.
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.
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).
When the request was handed to the Web Connector. UTC, ISO 8601.
When the request reached a final status. UTC, ISO 8601.
Milliseconds from creation to completion.
Whether the call sent an Idempotency-Key.
An earlier request with the same Idempotency-Key that ended before reaching QuickBooks.
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.
Position in this connection’s queue (1 = next), while queued.
Async requests only: the latest time the request may still be sent. UTC, ISO 8601.
Where the time went.
object
Milliseconds from creation until the request was sent to QuickBooks.
Milliseconds from sending until QuickBooks answered.
Milliseconds from creation to completion.
Native QuickBooks details.
object
QbXML version used.
QbXML newMessageSetID sent with a write.
QbXML statusCode of the first response element.
QbXML statusSeverity (Info, Warn or Error).
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.
object
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.
QbXML statusCode of a QuickBooks warning; null for warnings about the response data.
What happened, including the text QuickBooks sent for unreadable values.
Where in result the affected value is, such as data[2].lines[0].amount; null for QuickBooks warning statuses.
true when an outcome_unknown write was resolved by asking QuickBooks for its stored result.
Lifecycle steps in order.
object
When the step happened. UTC, ISO 8601 with milliseconds.
Step, usually a status (queued, waiting, sent, succeeded, diagnosed, …).
Extra detail, for example the waiting reason or diagnosis cause.
Milliseconds since the request was created.
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
When the diagnosis was made. UTC, ISO 8601 with milliseconds.
The most likely cause in one line.
What the server observed about the end user’s Web Connector.
object
Last sign of the Web Connector (a check-in or a call inside a session). UTC, ISO 8601.
Last Web Connector check-in. UTC, ISO 8601.
Typical interval between recent check-ins, in seconds.
Seconds since lastSeenAt.
Whether a Web Connector session is open now.
When the open session started. UTC, ISO 8601.
Whether QuickBooks answered the open session; null without a session.
Recent consecutive sessions in which QuickBooks never answered.
Error code of the latest QuickBooks connection error, while it persists.
Probable causes, most likely first.
object
Stable cause code. New codes may be added.
How strongly the observations point at this cause.
One-line description of the cause.
What the server observed and why it points at this cause.
Actions that resolve the cause, each with the responsible actor.
object
Who can apply the fix.
What to do.
Cause-specific observations, for example connectionErrorCode or silentForMs.
object
Troubleshooting section for this cause.
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
The response body the original call returned (or would have returned) on success; null otherwise.
true when the result existed but is past the payload retention period (15 days, or 24 hours with payload capture off).
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
Path of the request resource, /v1/requests/{id}.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.
Unexpected server error. Codes: INTERNAL_ERROR.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
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.
object
object
Error category. Use it to choose between retrying, fixing the request and asking the end user to act.
Stable error code from the error catalog. New codes may be added; a code’s meaning never changes.
Developer-facing explanation. May include IDs and field paths; never includes secrets.
A message that is safe to show to the end user.
HTTP status of the response. null for codes that appear only on a request resource (REQUEST_EXPIRED, REQUEST_CANCELED).
Native QuickBooks code when one exists: a qbXML statusCode ("3200"), an HRESULT ("0x80040414") or a Web Connector code.
The Daapi-Request-Id of this response. Include it when contacting support.
Why this error happens.
Ordered actions that resolve the error, each with the responsible actor.
object
Who can apply the fix.
What to do.
Documentation section for this code.
Repeating the identical request (with the same Idempotency-Key for writes) can succeed without changes. Also sent as the Daapi-Should-Retry header.
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).
Request field, query parameter or header the error refers to, when known.
Code-specific details, documented per code in the error catalog.
object
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" }}Headers
Section titled “Headers”Unique ID of this API call (req_...). Present on every response.
Requests allowed per window for the project (all keys together).
Requests left in the current window, as counted by the edge location that served this call.
Seconds until the current window resets.
true when repeating the identical request can succeed. SDKs follow it instead of status-code heuristics.
Seconds to wait before retrying, on 429 and on retryable 503 responses when a wait is known.