{
"errors": {
"detail": "Sandbox access is paused for this organization because the sandbox period expired and the organization does not currently have both active billing and a recent production connection. Please request an extension if you're still working on your integration or contact support if you have questions."
}
}
{
"errors": {
"detail": "Not Found"
}
}
{
"errors": {
"webhook_url": [
"may not contain a username or password"
]
}
}
Sales Receipts
Update sales receipt
qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted.
Modifies an existing Sales receipt.
Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale.
{
"errors": {
"detail": "Sandbox access is paused for this organization because the sandbox period expired and the organization does not currently have both active billing and a recent production connection. Please request an extension if you're still working on your integration or contact support if you have questions."
}
}
{
"errors": {
"detail": "Not Found"
}
}
{
"errors": {
"webhook_url": [
"may not contain a username or password"
]
}
}
Makes a retry safe when you never got the answer to a call: a timeout, a dropped connection, a worker that crashed. Send a new key (a UUID, say) with each request you mean to make once, and the same key when you send that request again. A repeat with the key and the same method, path, query and body answers 201 with what the first call created, as it is now, marked Idempotent-Replayed: true, and queues nothing. The same key with a different request is a 422. A key belongs to your app (sandbox and production apps never share one), lasts as long as what it created, and is 1 to 255 printable ASCII characters.
Where QuBe Sync POSTs the answered request (this same document with response_json filled in), signed with X-QUBE-Signature. Send one with every request: it is how answers are delivered. Optional only so a script can queue and look up links.self by hand. It must be an absolute http or https URL. It may not contain a username or password, and in production it may not point at localhost or a private, loopback or link-local address. A qube listen URL must be one of this app's.
edit_sequence is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current edit_sequence. If your value is stale, the update is rejected to prevent overwriting newer changes.
txn_id is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. txn_id values are transaction-specific and should not be reused across unrelated transaction types.
This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/postal_code/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in ship_address_block or bill_address_block.
Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A class_ref points to one class; if both full_name and list_id are provided, full_name is ignored. In InvoiceAdd, a header-level class_ref is applied to line items unless you override or clear it on individual lines.
A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A customer_msg_ref aggregate refers to one of the messages on the CustomerMsg list. In a request, if a customer_msg_ref aggregate includes both full_name and list_id, full_name will be ignored.
customer_ref identifies a customer or customer job. If both full_name and list_id are provided, full_name is ignored. In SalesReceipt and ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the time can be billed to and is required in TimeTrackingAdd when IsBillable is true.
Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a customer_sales_tax_code_ref aggregate includes both full_name and list_id, full_name will be ignored.
Refers to the account where these funds will be (or have been) deposited. In a ReceivePaymentAdd request, the default is Undeposited Funds if this isn’t included in the request. In a request, if a deposit_to_account_ref aggregate includes both full_name and list_id, full_name will be ignored.
A sales receipt doesn’t ordinarily include a due date, because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase.
exchange_rate is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.
If is_pending is set to true, the sales receipt hasn’t been completed. Pending sales might include unpaid orders, estimates, tracked hours that haven’t yet been billed, or sales of back-ordered items.
If is_to_be_printed is true, QuickBooks queues the form for later printing. It does not print immediately; printing is still a user action in QuickBooks.
An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both full_name and list_id are provided for item_sales_tax_ref, list_id is used.
Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
payment_method_ref identifies how a payment is made (for example, cash, check, or card type). If both full_name and list_id are provided, full_name is ignored.
ref_number is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate ref_number when omitted, based on QuickBooks preferences and numbering state.
Your own label for the request, sent to QuickBooks as its qbXML requestID and echoed in the raw answer (response_xml); optional, since the answer's webhook already carries the request's id.
Represents a previously defined group of lines in the sales receipt. Compare with SalesReceiptLine, which represents just one line in the sales receipt.
sales_receipt_line_mod and sales_receipt_line_group_mod combine: any number of each. QuickBooks receives them in that order: every sales_receipt_line_mod, then every sales_receipt_line_group_mod.
One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.
sales_receipt_line_mod and sales_receipt_line_group_mod combine: any number of each. QuickBooks receives them in that order: every sales_receipt_line_mod, then every sales_receipt_line_group_mod.
A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A sales_rep_ref refers to a person on the SalesRep list. In a request, if a sales_rep_ref aggregate includes both full_name and list_id, full_name will be ignored.
This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/postal_code/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in ship_address_block or bill_address_block.
A shipping method, for example, standard mail or overnight delivery. A ship_method_ref aggregate refers to an item on the ShipMethod list. In a request, if a ship_method_ref aggregate includes both full_name and list_id, full_name will be ignored.
QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A template_ref element refers to one of these templates.
The date of the sales receipt. In some cases, if you leave txn_date out of an -Add message, QuickBooks will prefill txn_date with the date of the last-saved transaction of the same type.
Callbacks
POST
{$request.query.webhook_url}answered
Body
application/json
POSTed to webhook_url as JSON, signed with X-QUBE-Signature (t=<timestamp>,v1=<hex HMAC-SHA256 of "<timestamp>.<raw body>" with your app's webhook secret>).
Set when state is error, retryable, timed_out or discarded. error_type says where it failed: for a timed_out request it is timed_out, and for a discarded one discarded, unless the request was retryable when your app discarded it, which keeps the connection error that held it up. user_message is safe to show an end user; error_code is QuickBooks' own status code for a business error, hresult the Web Connector's for a connection/XML error; debug_message is for you.
QuBe Sync's summary of QuickBooks' answer. Only an Error severity from QuickBooks is status: "error" (and makes the request's stateerror), so a query that matched nothing is still success. A Warn severity is a success with warning beside it.
response_received: QuickBooks accepted it; read response_json. error: it is over and QuBe Sync won't try again -- see error, and response_json.error for a QuickBooks business error; with error_typeoutcome_unknown a write may still have been applied, so look before sending it again. retryable: QuickBooks could not be reached and QuBe Sync keeps trying; show the customer error.user_message so they can fix it. timed_out: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, mid-request. QuickBooks may still have applied it, so look before sending it again. discarded: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. Both carry an error.
continue: more pages will follow, each its own webhook. done: this was the last page. max_sandbox_iterations_reached: a sandbox app's page limit stopped the iteration.
QuickBooks' raw qbXML answer. response_json is the same, summarized. One answer can be at most 4 MB as the Web Connector sends it, about 3 MB of qbXML; QuickBooks' answer over that isn't kept: this is null and error.error_type is response_too_large. A webhook whose body would be over 1 MB is sent without it: null, with response_xml_omitted true; fetch it from links.self.
Present, and true, only when response_xml was left out to keep the body under 1 MB. response_json is still here; GET links.self for response_xml.
Response
2XX
Received. Anything else is retried with backoff for about 8 hours.
Response
Queued for the connection's Web Connector. Pass webhook_url and QuBe Sync POSTs the answer to it once QuickBooks has answered (see the answered callback: its own payload, not this document). links.self returns this document on demand, with response_json filled in.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"QuBe Sync","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/qubesync/gN_APnIajnQKnywV/logo/full-light.png?fit=max\u0026auto=format\u0026n=gN_APnIajnQKnywV\u0026q=85\u0026s=0690db6248367802891c15bad08ae9e9","dark":"https://mintcdn.com/qubesync/gN_APnIajnQKnywV/logo/full-dark.png?fit=max\u0026auto=format\u0026n=gN_APnIajnQKnywV\u0026q=85\u0026s=49fb7c4ae5cb86868e1d029c62580428"},"favicon":{"light":"https://mintcdn.com/qubesync/gN_APnIajnQKnywV/favicon.ico?fit=max\u0026auto=format\u0026n=gN_APnIajnQKnywV\u0026q=85\u0026s=ecfae754138bc13cdcb4d589ad584c71","dark":"https://mintcdn.com/qubesync/gN_APnIajnQKnywV/favicon.ico?fit=max\u0026auto=format\u0026n=gN_APnIajnQKnywV\u0026q=85\u0026s=ecfae754138bc13cdcb4d589ad584c71"},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://qubesync.com/app"}},"footer":{"socials":{"github":"https://github.com/qubeintegrations","linkedin":"https://linkedin.com/company/qube-integrations"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"QuBe Sync Slack","icon":"slack","href":"https://qubeintegrations.slack.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qubesync","hasAudioNarration":false,"actualSubdomain":"qubesync","customDomains":["docs.qubesync.com"],"gitSource":{"type":"github","owner":"qubeintegrations","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aad80a0e000b4e10f39085c","collectionId":"83ff748c-8826-40c7-94e2-9b020f7a143e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aad80a0e000b4e10f39085c"},"entitlements":{},"buildId":"6ae8b8241795b614d9d71d8a","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":332},{"language":"default","tag":"API v2","count":308},{"language":"default","tag":"Workflows","count":30},{"language":"default","tag":"API v1 (legacy)","count":23},{"language":"default","tag":"Guides","count":20},{"language":"default","tag":"Connections","count":19},{"language":"default","tag":"Pre-built Queries","count":12},{"language":"default","tag":"Queued Requests","count":9},{"language":"default","tag":"Build your integration","count":7},{"language":"default","tag":"Data Ext Defs","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"[data-badge=true]{white-space:nowrap}[data-badge=true] code{background:0 0;border:0;border-radius:0;padding:0}.qube-request{--qr-frame:rgb(243 247 245);--qr-border:rgb(10 15 12 / 0.1);--qr-panel:#fff;--qr-title:rgb(63 67 64);--qr-button:rgb(112 116 114);--qr-button-hover:rgb(63 67 64);--qr-hover:rgb(229 231 235 / 0.5);--qr-focus:rgb(var(--primary));--qr-ink:#1f2328;--qr-method:#0550ae;--qr-muted:#6e7781;--qr-param:#8250df;--qr-key:#116329;--qr-string:#0a3069;--qr-number:#0550ae;--qr-literal:#0550ae;--qr-mono:paperMono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;min-width:0;max-width:100%;margin:1.25rem 0 2rem;padding:2px;border:1px solid var(--qr-border);border-radius:1rem;background:var(--qr-frame)}.dark .qube-request{--qr-frame:rgb(255 255 255 / 0.05);--qr-border:rgb(255 255 255 / 0.1);--qr-panel:rgb(11 12 14);--qr-title:rgb(206 211 208);--qr-button:rgb(159 163 160);--qr-button-hover:rgb(206 211 208);--qr-hover:rgb(55 65 81 / 0.7);--qr-focus:rgb(var(--primary-light));--qr-ink:#d4d4d4;--qr-method:#569cd6;--qr-muted:#808080;--qr-param:#c586c0;--qr-key:#9cdcfe;--qr-string:#ce9178;--qr-number:#b5cea8;--qr-literal:#569cd6}.qube-request-head{display:flex;align-items:center;gap:.5rem;padding:.25rem .625rem .25rem 1rem;font-size:.75rem;font-weight:500;line-height:1.5rem}.qube-request-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--qr-title)}.qube-request-copy{display:inline-flex;flex:none;align-items:center;gap:.375rem;height:1.625rem;padding:0 .375rem;border:0;border-radius:.5rem;background:0 0;font:inherit;color:var(--qr-button);cursor:pointer}.qube-request-copy:hover{background:var(--qr-hover);color:var(--qr-button-hover)}.qube-request-copy:focus-visible{outline:1px solid var(--qr-focus);outline-offset:0}.qube-request-code{margin:0;padding:.875rem 1rem;overflow-x:auto;border-radius:14px;background:var(--qr-panel);font-family:var(--qr-mono);font-size:.875rem;line-height:1.5rem;color:var(--qr-ink)}.qube-request-code code{display:block;padding:0;background:0 0;font:inherit;color:inherit;white-space:pre}.qube-request-method{font-weight:600;color:var(--qr-method)}.qube-request-prefix{color:var(--qr-muted)}.qube-request-param{color:var(--qr-param)}.qube-request-key{color:var(--qr-key)}.qube-request-string{color:var(--qr-string)}.qube-request-number{color:var(--qr-number)}.qube-request-literal{color:var(--qr-literal)}.qube-points{margin:.5rem 0 1.5rem}.qube-point{display:flex;gap:1rem;padding:1.125rem 0;border-bottom:1px solid rgb(10 15 12/.1)}.qube-point:last-child{border-bottom:0}.dark .qube-point{border-color:rgb(255 255 255/.1)}.qube-point>svg{flex:none;margin-top:.25rem}.qube-point>div{min-width:0}.qube-point [data-as=p]{display:block;margin:0}.qube-point [data-as=p]+[data-as=p]{margin-top:.125rem}"}],"page":{"pagePath":"api-reference/v2/sales-receipts/update-sales-receipt","slug":"/api-reference/v2/sales-receipts/update-sales-receipt","pageMetadata":{"title":"Update sales receipt","description":"qbXML: `SalesReceiptModRq`, from qbXML 5.0. The `sales_receipt_mod` wrapper from qbXML is also accepted.\n\nModifies an existing Sales receipt.\n\n**Important:** In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale.\n\nIntuit's reference: [SalesReceiptMod](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptmod).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-receipts","href":"/api-reference/v2/sales-receipts/update-sales-receipt","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"qbXML: \", _jsx(_components.code, {\n children: \"SalesReceiptModRq\"\n }), \", from qbXML 5.0. The \", _jsx(_components.code, {\n children: \"sales_receipt_mod\"\n }), \" wrapper from qbXML is also accepted.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Modifies an existing Sales receipt.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Important:\"\n }), \" In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Intuit’s reference: \", _jsx(_components.a, {\n href: \"https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptmod\",\n children: \"SalesReceiptMod\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update sales receipt","description":"qbXML: `SalesReceiptModRq`, from qbXML 5.0. The `sales_receipt_mod` wrapper from qbXML is also accepted.\n\nModifies an existing Sales receipt.\n\n**Important:** In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale.\n\nIntuit's reference: [SalesReceiptMod](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptmod).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-receipts","href":"/api-reference/v2/sales-receipts/update-sales-receipt","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"callbacks":{"answered":"b715beb6-98b8-4455-ab0b-dd3510e0a366"},"description":"qbXML: `SalesReceiptModRq`, from qbXML 5.0. The `sales_receipt_mod` wrapper from qbXML is also accepted.\n\nModifies an existing Sales receipt.\n\n**Important:** In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale.\n\nIntuit's reference: [SalesReceiptMod](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptmod).","operationId":"updateSalesReceipt","parameters":["ca9a78ac-8916-4f23-8b4f-49792d053227","ab169381-645b-46e8-b887-f236039b378e","28524b46-a5e7-4f44-bf2e-7bed784a1fba"],"requestBody":"3a4b1311-0439-4650-8669-3e00701d839c","responses":{"201":"a34bd28e-dc3f-47ce-b6dc-7ba026c780ff","400":"481a3bf4-e9f1-481a-84cb-b7781c46c0d9","401":"5bbbf6b9-1147-4fd0-8868-744e8f414754","403":"e869ecaf-05c7-4455-af11-32bb3a0fffba","404":"5ba72edf-7c6a-4f43-9dc5-32622ec444ca","422":"c150e568-17f1-4664-b0c5-f5e25b2be889"},"summary":"Update sales receipt","tags":["Sales Receipts"],"method":"put","type":"path","servers":["acf84d29-d14b-4dd6-933f-31aa602dd68b","b8836037-80c3-4a92-9378-766448db35bb"],"security":["27e4ec77-558c-4616-ae6f-0159a16aa482"],"path":"/connections/{connection_id}/sales-receipts","baseUrlOptions":["https://qubesync.com/api/v2","https://dev.qubesync.com/api/v2"],"title":"Update sales receipt","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"ca9a78ac-8916-4f23-8b4f-49792d053227":{"description":"The connection (a customer's QuickBooks company file) this request is queued for.","in":"path","name":"connection_id","required":true,"schema":{"format":"uuid","type":"string","isRequired":true,"description":"The connection (a customer's QuickBooks company file) this request is queued for.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"ab169381-645b-46e8-b887-f236039b378e":{"description":"Where QuBe Sync POSTs the answered request (this same document with `response_json` filled in), signed with `X-QUBE-Signature`. Send one with every request: it is how answers are delivered. Optional only so a script can queue and look up `links.self` by hand. It must be an absolute http or https URL. It may not contain a username or password, and in production it may not point at localhost or a private, loopback or link-local address. A `qube listen` URL must be one of this app's.","in":"query","name":"webhook_url","required":false,"schema":{"format":"uri","maxLength":2048,"type":"string","isRequired":false,"description":"Where QuBe Sync POSTs the answered request (this same document with `response_json` filled in), signed with `X-QUBE-Signature`. Send one with every request: it is how answers are delivered. Optional only so a script can queue and look up `links.self` by hand. It must be an absolute http or https URL. It may not contain a username or password, and in production it may not point at localhost or a private, loopback or link-local address. A `qube listen` URL must be one of this app's.","uniqueKey":"","typeLabel":"string\u003curi>"}},"28524b46-a5e7-4f44-bf2e-7bed784a1fba":{"description":"Makes a retry safe when you never got the answer to a call: a timeout, a dropped connection, a worker that crashed. Send a new key (a UUID, say) with each request you mean to make once, and the same key when you send that request again. A repeat with the key and the same method, path, query and body answers `201` with what the first call created, as it is now, marked `Idempotent-Replayed: true`, and queues nothing. The same key with a different request is a `422`. A key belongs to your app (sandbox and production apps never share one), lasts as long as what it created, and is 1 to 255 printable ASCII characters.","example":"9b2f6c1e-0d4a-4f7e-8a7b-2a1c3d4e5f60","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"pattern":"^[\\x20-\\x7E]+$","type":"string","isRequired":false,"description":"Makes a retry safe when you never got the answer to a call: a timeout, a dropped connection, a worker that crashed. Send a new key (a UUID, say) with each request you mean to make once, and the same key when you send that request again. A repeat with the key and the same method, path, query and body answers `201` with what the first call created, as it is now, marked `Idempotent-Replayed: true`, and queues nothing. The same key with a different request is a `422`. A key belongs to your app (sandbox and production apps never share one), lasts as long as what it created, and is 1 to 255 printable ASCII characters.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"example":{"bill_address":{"addr1":"123 Main St","city":"Springfield","postal_code":"62701","state":"IL"},"customer_ref":{"full_name":"Acme Corp"},"edit_sequence":"1700000000","memo":"Monthly service","ref_number":"1001","txn_date":"2026-01-15","txn_id":"1A2B-1700000000"},"schema":{"properties":{"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","isRequired":true,"uniqueKey":"edit_sequence","typeLabel":"string"},"txn_id":{"description":"`txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.","type":"string","isRequired":true,"uniqueKey":"txn_id","typeLabel":"string"},"bill_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"bill_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"bill_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"bill_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"bill_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"bill_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"bill_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"bill_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"bill_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"bill_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"bill_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"bill_address","typeLabel":"object"},"check_number":{"description":"The check number of a check that a QuickBooks user writes or receives from someone else.","type":"string","uniqueKey":"check_number","typeLabel":"string"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"class_ref","typeLabel":"object"},"customer_msg_ref":{"description":"A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `customer_msg_ref` aggregate refers to one of the messages on the CustomerMsg list. In a request, if a `customer_msg_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"customer_msg_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"customer_msg_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"customer_msg_ref","typeLabel":"object"},"customer_ref":{"description":"`customer_ref` identifies a customer or customer job. If both `full_name` and `list_id` are provided, `full_name` is ignored. In SalesReceipt and ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the time can be billed to and is required in TimeTrackingAdd when IsBillable is true.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"customer_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"customer_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"customer_ref","typeLabel":"object"},"customer_sales_tax_code_ref":{"description":"Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `customer_sales_tax_code_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"customer_sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"customer_sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"customer_sales_tax_code_ref","typeLabel":"object"},"deposit_to_account_ref":{"description":"Refers to the account where these funds will be (or have been) deposited. In a ReceivePaymentAdd request, the default is Undeposited Funds if this isn’t included in the request. In a request, if a `deposit_to_account_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"deposit_to_account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"deposit_to_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"deposit_to_account_ref","typeLabel":"object"},"due_date":{"description":"A sales receipt doesn’t ordinarily include a due date, because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase.","format":"date","type":"string","uniqueKey":"due_date","typeLabel":"string\u003cdate>"},"exchange_rate":{"description":"`exchange_rate` is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.","type":"number","uniqueKey":"exchange_rate","typeLabel":"number"},"fob":{"description":"QuickBooks uses the term FOB, “freight on board,” to indicate the place from which the product is shipped. The FOB has no accounting implications.","type":"string","uniqueKey":"fob","typeLabel":"string"},"include_ret_element":{"items":{"enum":["BillAddress","BillAddressBlock","CheckNumber","ClassRef","CreditCardTxnInfo","CurrencyRef","CustomerMsgRef","CustomerRef","CustomerSalesTaxCodeRef","DataExtRet","DepositToAccountRef","DiscountLineRet","DueDate","EditSequence","ExchangeRate","ExternalGUID","FOB","IsPending","IsTaxIncluded","IsToBeEmailed","IsToBePrinted","ItemSalesTaxRef","ListID","Memo","Other","OwnerID","PaymentMethodRef","RefNumber","SalesReceiptLineGroupRet","SalesReceiptLineRet","SalesRepRef","SalesTaxLineRet","SalesTaxPercentage","SalesTaxTotal","ShipAddress","ShipAddressBlock","ShipDate","ShipMethodRef","ShippingLineRet","Subtotal","TemplateRef","TimeCreated","TimeModified","TotalAmount","TotalAmountInHomeCurrency","TxnDate","TxnID","TxnNumber"],"type":"string","uniqueKey":"include_ret_element.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","uniqueKey":"include_ret_element","typeLabel":"enum\u003cstring>[]"},"is_pending":{"description":"If `is_pending` is set to true, the sales receipt hasn’t been completed. Pending sales might include unpaid orders, estimates, tracked hours that haven’t yet been billed, or sales of back-ordered items.","type":"boolean","uniqueKey":"is_pending","typeLabel":"boolean"},"is_tax_included":{"description":"For future use with international versions of QuickBooks.","type":"boolean","uniqueKey":"is_tax_included","typeLabel":"boolean"},"is_to_be_emailed":{"description":"When enabled, QuickBooks validates the customer email at runtime before sending. If no valid email is available, the request fails.","type":"boolean","uniqueKey":"is_to_be_emailed","typeLabel":"boolean"},"is_to_be_printed":{"description":"If `is_to_be_printed` is true, QuickBooks queues the form for later printing. It does not print immediately; printing is still a user action in QuickBooks.","type":"boolean","uniqueKey":"is_to_be_printed","typeLabel":"boolean"},"item_sales_tax_ref":{"description":"An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided for `item_sales_tax_ref`, `list_id` is used.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"item_sales_tax_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"item_sales_tax_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"item_sales_tax_ref","typeLabel":"object"},"memo":{"description":"Message that appears in reports, but not on the sales receipt.","type":"string","uniqueKey":"memo","typeLabel":"string"},"other":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"other","typeLabel":"string"},"payment_method_ref":{"description":"`payment_method_ref` identifies how a payment is made (for example, cash, check, or card type). If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"payment_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"payment_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"payment_method_ref","typeLabel":"object"},"ref_number":{"description":"`ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.","type":"string","uniqueKey":"ref_number","typeLabel":"string"},"request_id":{"description":"Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.","type":"string","uniqueKey":"request_id","typeLabel":"string"},"sales_receipt_line_group_mod":{"description":"Represents a previously defined group of lines in the sales receipt. Compare with SalesReceiptLine, which represents just one line in the sales receipt.\n\n`sales_receipt_line_mod` and `sales_receipt_line_group_mod` combine: any number of each. QuickBooks receives them in that order: every `sales_receipt_line_mod`, then every `sales_receipt_line_group_mod`.","items":{"properties":{"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","isRequired":true,"uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].txn_line_id","typeLabel":"string"},"item_group_ref":{"description":"ItemGroup objects represent items that are grouped together for fast entry, and an `item_group_ref` aggregate refers to one of these item groups. In a request, if an `item_group_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored. You can use an ItemGroupQuery request to get information about all the item groups that are set up in the QuickBooks file.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].item_group_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].item_group_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].item_group_ref","typeLabel":"object"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].quantity","typeLabel":"number"},"sales_receipt_line_mod":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["rate","price_level_ref"]},{"required":["rate_percent","price_level_ref"]},{"required":["serial_number","lot_number"]}]},"properties":{"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","isRequired":true,"uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].txn_line_id","typeLabel":"string"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].class_ref","typeLabel":"object"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].inventory_site_ref","typeLabel":"object"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].lot_number","typeLabel":"string"},"option_for_price_rule_conflict":{"description":"Flag to override price rule conflict.","enum":["BasePrice","Zero"],"type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].option_for_price_rule_conflict","typeLabel":"enum\u003cstring>"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].other2","typeLabel":"string"},"override_item_account_ref":{"description":"Refers to a QuickBooks account. If an `override_item_account_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_item_account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_item_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_item_account_ref","typeLabel":"object"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"price_level_ref":{"description":"Price levels let you apply custom pricing rules for selected customers. Once assigned, QuickBooks uses those prices automatically on supported sales forms unless explicitly overridden.\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].price_level_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].price_level_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].price_level_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].tax_amount","typeLabel":"number"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX].unit_of_measure","typeLabel":"string"}},"required":["txn_line_id"],"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].sales_receipt_line_mod","typeLabel":"object[]"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX].unit_of_measure","typeLabel":"string"}},"required":["txn_line_id"],"type":"object","uniqueKey":"sales_receipt_line_group_mod.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"sales_receipt_line_group_mod","typeLabel":"object[]"},"sales_receipt_line_mod":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.\n\n`sales_receipt_line_mod` and `sales_receipt_line_group_mod` combine: any number of each. QuickBooks receives them in that order: every `sales_receipt_line_mod`, then every `sales_receipt_line_group_mod`.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["rate","price_level_ref"]},{"required":["rate_percent","price_level_ref"]},{"required":["serial_number","lot_number"]}]},"properties":{"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","isRequired":true,"uniqueKey":"sales_receipt_line_mod.items.[INDEX].txn_line_id","typeLabel":"string"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"sales_receipt_line_mod.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].class_ref","typeLabel":"object"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].inventory_site_ref","typeLabel":"object"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].lot_number","typeLabel":"string"},"option_for_price_rule_conflict":{"description":"Flag to override price rule conflict.","enum":["BasePrice","Zero"],"type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].option_for_price_rule_conflict","typeLabel":"enum\u003cstring>"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].other2","typeLabel":"string"},"override_item_account_ref":{"description":"Refers to a QuickBooks account. If an `override_item_account_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_item_account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_item_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_item_account_ref","typeLabel":"object"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"price_level_ref":{"description":"Price levels let you apply custom pricing rules for selected customers. Once assigned, QuickBooks uses those prices automatically on supported sales forms unless explicitly overridden.\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].price_level_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].price_level_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].price_level_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"sales_receipt_line_mod.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","type":"number","uniqueKey":"sales_receipt_line_mod.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`, or `price_level_ref`.","type":"number","uniqueKey":"sales_receipt_line_mod.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"sales_receipt_line_mod.items.[INDEX].tax_amount","typeLabel":"number"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"sales_receipt_line_mod.items.[INDEX].unit_of_measure","typeLabel":"string"}},"required":["txn_line_id"],"type":"object","uniqueKey":"sales_receipt_line_mod.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"sales_receipt_line_mod","typeLabel":"object[]"},"sales_rep_ref":{"description":"A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `sales_rep_ref` refers to a person on the SalesRep list. In a request, if a `sales_rep_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"sales_rep_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"sales_rep_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"sales_rep_ref","typeLabel":"object"},"ship_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"ship_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"ship_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"ship_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"ship_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"ship_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"ship_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"ship_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"ship_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"ship_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"ship_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"ship_address","typeLabel":"object"},"ship_date":{"description":"The date when the product was, or will be, shipped.","format":"date","type":"string","uniqueKey":"ship_date","typeLabel":"string\u003cdate>"},"ship_method_ref":{"description":"A shipping method, for example, standard mail or overnight delivery. A `ship_method_ref` aggregate refers to an item on the ShipMethod list. In a request, if a `ship_method_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"ship_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"ship_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"ship_method_ref","typeLabel":"object"},"template_ref":{"description":"QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `template_ref` element refers to one of these templates.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"template_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"template_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"template_ref","typeLabel":"object"},"txn_date":{"description":"The date of the sales receipt. In some cases, if you leave `txn_date` out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved transaction of the same type.","format":"date","type":"string","uniqueKey":"txn_date","typeLabel":"string\u003cdate>"}},"required":["edit_sequence","txn_id"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"bill_address":{"addr1":"123 Main St","city":"Springfield","postal_code":"62701","state":"IL"},"customer_ref":{"full_name":"Acme Corp"},"edit_sequence":"1700000000","memo":"Monthly service","ref_number":"1001","txn_date":"2026-01-15","txn_id":"1A2B-1700000000"}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"a34bd28e-dc3f-47ce-b6dc-7ba026c780ff":{"content":{"application/json":{"schema":{"properties":{"data":{"type":"object","required":["id","state","request_xml","links"],"properties":{"id":{"description":"Unique identifier for the queued request","format":"uuid","type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"links":{"properties":{"connection_ui":{"format":"uri","type":"string","isRequired":true,"uniqueKey":"data.links.connection_ui","typeLabel":"string\u003curi>"},"pages":{"description":"The pages of a multi-page (iterated) response answered so far, oldest first, a page of them at a time (`page`, `page_size`), each with its own `iteration_state`. Each page is also delivered to `webhook_url` as it is answered.","format":"uri","type":"string","isRequired":true,"uniqueKey":"data.links.pages","typeLabel":"string\u003curi>"},"self":{"description":"This request, on demand (a dashboard link, a retry). The answer itself arrives at `webhook_url`.","format":"uri","type":"string","isRequired":true,"uniqueKey":"data.links.self","typeLabel":"string\u003curi>"},"ui":{"description":"The request in the QuBe Sync dashboard.","format":"uri","type":"string","isRequired":true,"uniqueKey":"data.links.ui","typeLabel":"string\u003curi>"}},"required":["self","ui","connection_ui","pages"],"type":"object","isRequired":true,"uniqueKey":"data.links","typeLabel":"object"},"request_xml":{"description":"The qbXML sent to QuickBooks: compiled from the operation and its parameters, or as written for `POST /connections/{connection_id}/queued-requests`. A character above ASCII reaches QuickBooks as a character reference (`\u0026#xE9;`).","type":"string","isRequired":true,"uniqueKey":"data.request_xml","typeLabel":"string"},"state":{"description":"`waiting`/`retryable`/`ticketed`/`sent` while the Web Connector is on its way; `response_received` once QuickBooks answered successfully (read `response_json.data`, and `response_json.warning` when QuickBooks warned about something it did); `error` when it did not -- the Web Connector could not reach QuickBooks, the qbXML was rejected, or QuickBooks answered with a business error such as 3100 (then `error.error_type` is `quickbooks_business_error` and `response_json` still carries QuickBooks' own `{status: \"error\", error: {code, type, message}}`); `timed_out` when no answer came back (QuickBooks may still have applied it, so look before sending it again) and `discarded` when your app discarded it before the Web Connector picked it up. Both carry an `error`.","enum":["waiting","retryable","ticketed","sent","response_received","error","timed_out","discarded"],"type":"string","isRequired":true,"uniqueKey":"data.state","typeLabel":"enum\u003cstring>"},"error":{"oneOf":[{"description":"Set when `state` is `error`, `retryable`, `timed_out` or `discarded`. `error_type` says where it failed: for a `timed_out` request it is `timed_out`, and for a `discarded` one `discarded`, unless the request was `retryable` when your app discarded it, which keeps the connection error that held it up. `user_message` is safe to show an end user; `error_code` is QuickBooks' own status code for a business error, `hresult` the Web Connector's for a connection/XML error; `debug_message` is for you.","properties":{"debug_message":{"oneOf":[{"description":"Which element of the request the value came from, when known.","type":"string","uniqueKey":"data.error.oneOf.0.debug_message.oneOf.0","typeLabel":"string"},{"description":"Which element of the request the value came from, when known.","type":"null","uniqueKey":"data.error.oneOf.0.debug_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.error.oneOf.0.debug_message","typeLabel":"string | null"},"error_code":{"oneOf":[{"description":"QuickBooks' statusCode, for a business error.","type":"integer","uniqueKey":"data.error.oneOf.0.error_code.oneOf.0","typeLabel":"integer"},{"description":"QuickBooks' statusCode, for a business error.","type":"null","uniqueKey":"data.error.oneOf.0.error_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.error.oneOf.0.error_code","typeLabel":"integer | null"},"error_type":{"description":"`quickbooks_business_error`: QuickBooks refused the request -- `response_json.error` has its code. `quickbooks_connection_error`: the Web Connector ran on the customer's PC but could not get the request into QuickBooks, so nothing was applied -- QuickBooks was not running, the company file was not open or not the one this connection belongs to, or a window or message box open in QuickBooks was in the way. Only the customer can fix that, and `user_message` tells them how. `xml_error`: QuickBooks could not parse the qbXML; sent again as-is, it fails again. `outcome_unknown`: a write the Web Connector answered with an error in place of QuickBooks' answer, so whether QuickBooks applied it is not known: look in QuickBooks before sending it again. `unexpected_error`: anything else; for a query, which changes nothing, sending it again is safe.\n\n`timed_out`: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, while QuickBooks had the request. QuickBooks may still have applied it, so look before sending it again. `discarded`: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. `response_too_large`: QuickBooks answered, but with more than QuBe Sync accepts for one answer (4 MB as the Web Connector sends it, about 3 MB of qbXML), so the answer wasn't kept and `response_json` is null. QuickBooks ran the request. Page the query (`iterator` and a smaller `max_returned`), or narrow it when QuickBooks doesn't page it; for a write, look before sending it again.\n\nWeb Connector problems on the customer's PC (its password, log file, the .QWC file) never reach QuBe Sync as an error: the Web Connector just stops calling in, and requests wait. Intuit's guide for those: https://quickbooks.intuit.com/learn-support/en-us/help-article/open-programs/fix-common-web-connector-errors-quickbooks-desktop/L9slolvg0_US_en_US","enum":["xml_error","quickbooks_connection_error","quickbooks_business_error","unexpected_error","response_too_large","outcome_unknown","timed_out","discarded"],"type":"string","uniqueKey":"data.error.oneOf.0.error_type","typeLabel":"enum\u003cstring>"},"hresult":{"oneOf":[{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"string","uniqueKey":"data.error.oneOf.0.hresult.oneOf.0","typeLabel":"string"},{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"null","uniqueKey":"data.error.oneOf.0.hresult.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.error.oneOf.0.hresult","typeLabel":"string | null"},"message":{"description":"The raw message from QuickBooks or the Web Connector; for `timed_out` and `discarded`, which neither sent, QuBe Sync's own.","type":"string","uniqueKey":"data.error.oneOf.0.message","typeLabel":"string"},"user_message":{"description":"A friendly message for the end user.","type":"string","uniqueKey":"data.error.oneOf.0.user_message","typeLabel":"string"}},"type":"object","uniqueKey":"data.error.oneOf.0","typeLabel":"object"},{"description":"Set when `state` is `error`, `retryable`, `timed_out` or `discarded`. `error_type` says where it failed: for a `timed_out` request it is `timed_out`, and for a `discarded` one `discarded`, unless the request was `retryable` when your app discarded it, which keeps the connection error that held it up. `user_message` is safe to show an end user; `error_code` is QuickBooks' own status code for a business error, `hresult` the Web Connector's for a connection/XML error; `debug_message` is for you.","properties":{"debug_message":{"oneOf":[{"description":"Which element of the request the value came from, when known.","type":"string"},{"description":"Which element of the request the value came from, when known.","type":"null"}]},"error_code":{"oneOf":[{"description":"QuickBooks' statusCode, for a business error.","type":"integer"},{"description":"QuickBooks' statusCode, for a business error.","type":"null"}]},"error_type":{"description":"`quickbooks_business_error`: QuickBooks refused the request -- `response_json.error` has its code. `quickbooks_connection_error`: the Web Connector ran on the customer's PC but could not get the request into QuickBooks, so nothing was applied -- QuickBooks was not running, the company file was not open or not the one this connection belongs to, or a window or message box open in QuickBooks was in the way. Only the customer can fix that, and `user_message` tells them how. `xml_error`: QuickBooks could not parse the qbXML; sent again as-is, it fails again. `outcome_unknown`: a write the Web Connector answered with an error in place of QuickBooks' answer, so whether QuickBooks applied it is not known: look in QuickBooks before sending it again. `unexpected_error`: anything else; for a query, which changes nothing, sending it again is safe.\n\n`timed_out`: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, while QuickBooks had the request. QuickBooks may still have applied it, so look before sending it again. `discarded`: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. `response_too_large`: QuickBooks answered, but with more than QuBe Sync accepts for one answer (4 MB as the Web Connector sends it, about 3 MB of qbXML), so the answer wasn't kept and `response_json` is null. QuickBooks ran the request. Page the query (`iterator` and a smaller `max_returned`), or narrow it when QuickBooks doesn't page it; for a write, look before sending it again.\n\nWeb Connector problems on the customer's PC (its password, log file, the .QWC file) never reach QuBe Sync as an error: the Web Connector just stops calling in, and requests wait. Intuit's guide for those: https://quickbooks.intuit.com/learn-support/en-us/help-article/open-programs/fix-common-web-connector-errors-quickbooks-desktop/L9slolvg0_US_en_US","enum":["xml_error","quickbooks_connection_error","quickbooks_business_error","unexpected_error","response_too_large","outcome_unknown","timed_out","discarded"],"type":"string"},"hresult":{"oneOf":[{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"string"},{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"null"}]},"message":{"description":"The raw message from QuickBooks or the Web Connector; for `timed_out` and `discarded`, which neither sent, QuBe Sync's own.","type":"string"},"user_message":{"description":"A friendly message for the end user.","type":"string"}},"type":"null","uniqueKey":"data.error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.error","typeLabel":"object | null"},"inserted_at":{"description":"When the request was queued","format":"date-time","type":"string","uniqueKey":"data.inserted_at","typeLabel":"string\u003cdate-time>"},"iteration_state":{"description":"Whether this response is part of an ongoing iteration, and if so, whether more pages remain. Use this (not `state`) to tell whether a multi-page response is complete.","enum":["not_applicable","continue","done","max_sandbox_iterations_reached"],"type":"string","uniqueKey":"data.iteration_state","typeLabel":"enum\u003cstring>"},"original_request_id":{"description":"The id of the first page of this request's iteration. Equal to `id` on the first page itself.","format":"uuid","type":"string","uniqueKey":"data.original_request_id","typeLabel":"string\u003cuuid>"},"page":{"oneOf":[{"description":"The page number, for a multi-page (iterated) response","type":"integer","uniqueKey":"data.page.oneOf.0","typeLabel":"integer"},{"description":"The page number, for a multi-page (iterated) response","type":"null","uniqueKey":"data.page.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.page","typeLabel":"integer | null"},"request_types":{"description":"The qbXML request type(s) compiled into this request","items":{"type":"string","uniqueKey":"data.request_types.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"data.request_types","typeLabel":"string[]"},"response_json":{"oneOf":[{"type":"object","title":"Success","description":"`null` until answered.","required":["status"],"properties":{"status":{"const":"success","isRequired":true,"uniqueKey":"data.response_json.oneOf.0.status","typeLabel":"any"},"data":{"oneOf":[{"type":"object","title":"SalesReceiptRet","properties":{"discount_line_ret":{"not":{"anyOf":[{"required":["amount","rate_percent"]}]},"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.amount","typeLabel":"number"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.is_taxable","typeLabel":"boolean"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.discount_line_ret","typeLabel":"object"},"ship_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address","typeLabel":"object"},"fob":{"description":"QuickBooks uses the term FOB, “freight on board,” to indicate the place from which the product is shipped. The FOB has no accounting implications.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.fob","typeLabel":"string"},"bill_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address","typeLabel":"object"},"sales_receipt_line_ret":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.\n\n`sales_receipt_line_ret` and `sales_receipt_line_group_ret` combine: any number of each.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["serial_number","lot_number"]}]},"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].is_taxable","typeLabel":"boolean"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].lot_number","typeLabel":"string"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].other2","typeLabel":"string"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].tax_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret","typeLabel":"object[]"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.txn_number","typeLabel":"integer"},"sales_tax_percentage":{"description":"The percentage charged for sales tax.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_percentage","typeLabel":"number"},"total_amount_in_home_currency":{"description":"Total amount of money paid or received in the home currency.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.total_amount_in_home_currency","typeLabel":"number"},"other":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.other","typeLabel":"string"},"sales_receipt_line_group_ret":{"description":"Represents a previously defined group of lines in the sales receipt. Compare with SalesReceiptLine, which represents just one line in the sales receipt.\n\n`sales_receipt_line_ret` and `sales_receipt_line_group_ret` combine: any number of each.","items":{"properties":{"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].desc","typeLabel":"string"},"is_print_items_in_group":{"description":"If true, a list of this group’s individual items their amounts will appear on printed forms.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].is_print_items_in_group","typeLabel":"boolean"},"item_group_ref":{"description":"ItemGroup objects represent items that are grouped together for fast entry, and an `item_group_ref` aggregate refers to one of these item groups. In a request, if an `item_group_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored. You can use an ItemGroupQuery request to get information about all the item groups that are set up in the QuickBooks file.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref","typeLabel":"object"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].quantity","typeLabel":"number"},"sales_receipt_line_ret":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["serial_number","lot_number"]}]},"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].is_taxable","typeLabel":"boolean"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].lot_number","typeLabel":"string"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].other2","typeLabel":"string"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].tax_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret","typeLabel":"object[]"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"total_amount":{"description":"Subtotal plus `sales_tax_total`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].total_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret","typeLabel":"object[]"},"ship_address_block":{"description":"The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_address_block","typeLabel":"object"},"time_modified":{"description":"Time the object was last modified.","format":"date-time","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.time_modified","typeLabel":"string\u003cdate-time>"},"is_tax_included":{"description":"For future use with international versions of QuickBooks.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.is_tax_included","typeLabel":"boolean"},"customer_sales_tax_code_ref":{"description":"Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `customer_sales_tax_code_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref","typeLabel":"object"},"is_to_be_printed":{"description":"If `is_to_be_printed` is true, QuickBooks queues the form for later printing. It does not print immediately; printing is still a user action in QuickBooks.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.is_to_be_printed","typeLabel":"boolean"},"is_pending":{"description":"If `is_pending` is set to true, the sales receipt hasn’t been completed. Pending sales might include unpaid orders, estimates, tracked hours that haven’t yet been billed, or sales of back-ordered items.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.is_pending","typeLabel":"boolean"},"ref_number":{"description":"`ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ref_number","typeLabel":"string"},"txn_id":{"description":"`txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.txn_id","typeLabel":"string"},"deposit_to_account_ref":{"description":"Refers to the account where these funds will be (or have been) deposited. In a ReceivePaymentAdd request, the default is Undeposited Funds if this isn’t included in the request. In a request, if a `deposit_to_account_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.credit_card_txn_info","typeLabel":"object"},"check_number":{"description":"The check number of a check that a QuickBooks user writes or receives from someone else.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.check_number","typeLabel":"string"},"customer_msg_ref":{"description":"A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `customer_msg_ref` aggregate refers to one of the messages on the CustomerMsg list. In a request, if a `customer_msg_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_msg_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_msg_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_msg_ref","typeLabel":"object"},"bill_address_block":{"description":"The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.bill_address_block","typeLabel":"object"},"customer_ref":{"description":"`customer_ref` identifies a customer or customer job. If both `full_name` and `list_id` are provided, `full_name` is ignored. In SalesReceipt and ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the time can be billed to and is required in TimeTrackingAdd when IsBillable is true.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.customer_ref","typeLabel":"object"},"due_date":{"description":"A sales receipt doesn’t ordinarily include a due date, because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.due_date","typeLabel":"string\u003cdate>"},"subtotal":{"description":"The total of all the sales-receipt lines before taxes are applied. (By contrast, a subtotal item (an ItemSubtotal object) gives only the total of the amounts in the lines that appear above it.)","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.subtotal","typeLabel":"number"},"sales_tax_total":{"description":"The total amount of sales tax charged.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_total","typeLabel":"number"},"time_created":{"description":"Time the object was created.","format":"date-time","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.time_created","typeLabel":"string\u003cdate-time>"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.edit_sequence","typeLabel":"string"},"sales_rep_ref":{"description":"A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `sales_rep_ref` refers to a person on the SalesRep list. In a request, if a `sales_rep_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_rep_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_rep_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_rep_ref","typeLabel":"object"},"sales_tax_line_ret":{"not":{"anyOf":[{"required":["amount","rate_percent"]}]},"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.amount","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret","typeLabel":"object"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.class_ref","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.data_ext_ret","typeLabel":"object[]"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.external_guid","typeLabel":"string"},"ship_method_ref":{"description":"A shipping method, for example, standard mail or overnight delivery. A `ship_method_ref` aggregate refers to an item on the ShipMethod list. In a request, if a `ship_method_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_method_ref","typeLabel":"object"},"shipping_line_ret":{"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.shipping_line_ret.amount","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.shipping_line_ret","typeLabel":"object"},"memo":{"description":"Message that appears in reports, but not on the sales receipt.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.memo","typeLabel":"string"},"currency_ref":{"description":"A currency record defines how QuickBooks stores and displays a currency. Built-in currency name/code values are fixed; formatting and active status can vary by settings and workflow.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.currency_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.currency_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.currency_ref","typeLabel":"object"},"txn_date":{"description":"The date of the sales receipt. In some cases, if you leave `txn_date` out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved transaction of the same type.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.txn_date","typeLabel":"string\u003cdate>"},"item_sales_tax_ref":{"description":"An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided for `item_sales_tax_ref`, `list_id` is used.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref","typeLabel":"object"},"is_to_be_emailed":{"description":"When enabled, QuickBooks validates the customer email at runtime before sending. If no valid email is available, the request fails.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.is_to_be_emailed","typeLabel":"boolean"},"template_ref":{"description":"QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `template_ref` element refers to one of these templates.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.template_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.template_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.template_ref","typeLabel":"object"},"exchange_rate":{"description":"`exchange_rate` is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.exchange_rate","typeLabel":"number"},"total_amount":{"description":"Subtotal plus `sales_tax_total`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.total_amount","typeLabel":"number"},"ship_date":{"description":"The date when the product was, or will be, shipped.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.ship_date","typeLabel":"string\u003cdate>"},"payment_method_ref":{"description":"`payment_method_ref` identifies how a payment is made (for example, cash, check, or card type). If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.payment_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.payment_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.oneOf.0.payment_method_ref","typeLabel":"object"}},"uniqueKey":"data.response_json.oneOf.0.data.oneOf.0","typeLabel":"SalesReceiptRet · object"},{"type":"object","title":"ErrorRecovery","required":["list_id"],"properties":{"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","isRequired":true,"uniqueKey":"data.response_json.oneOf.0.data.oneOf.1.list_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.1.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.1.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.1.txn_number","typeLabel":"integer"}},"uniqueKey":"data.response_json.oneOf.0.data.oneOf.1","typeLabel":"ErrorRecovery · object"},{"type":"object","title":"ErrorRecovery","required":["owner_id"],"properties":{"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","isRequired":true,"uniqueKey":"data.response_json.oneOf.0.data.oneOf.2.owner_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.2.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.2.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.2.txn_number","typeLabel":"integer"}},"uniqueKey":"data.response_json.oneOf.0.data.oneOf.2","typeLabel":"ErrorRecovery · object"},{"type":"object","title":"ErrorRecovery","required":["txn_id"],"properties":{"txn_id":{"description":"`txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.","type":"string","isRequired":true,"uniqueKey":"data.response_json.oneOf.0.data.oneOf.3.txn_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.3.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.oneOf.3.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.oneOf.3.txn_number","typeLabel":"integer"}},"uniqueKey":"data.response_json.oneOf.0.data.oneOf.3","typeLabel":"ErrorRecovery · object"}],"uniqueKey":"data.response_json.oneOf.0.data","typeLabel":"SalesReceiptRet · object · ErrorRecovery · object · ErrorRecovery · object · ErrorRecovery · object"},"message":{"description":"QuickBooks' own status message, carried through when there is no data to show for an otherwise successful request (a query that matched nothing, say).","type":"string","uniqueKey":"data.response_json.oneOf.0.message","typeLabel":"string"},"warning":{"description":"Present only when QuickBooks answered with a `Warn` severity: it carried the request out, and `data` is what it saved or found, but it has something to say about it. For example code `530` with the message `The field \"Memo\" is not supported by this implementation.` means the record was saved without that field, so an add or update that comes back with a `warning` may not have saved everything it sent. Absent on a plain success and on an error.","properties":{"code":{"description":"QuickBooks' own statusCode. The stable thing to branch on.","type":"integer","isRequired":true,"uniqueKey":"data.response_json.oneOf.0.warning.code","typeLabel":"integer"},"message":{"description":"QuickBooks' own statusMessage, such as which field it did not support.","type":"string","uniqueKey":"data.response_json.oneOf.0.warning.message","typeLabel":"string"}},"required":["code"],"type":"object","uniqueKey":"data.response_json.oneOf.0.warning","typeLabel":"object"}},"uniqueKey":"data.response_json.oneOf.0","typeLabel":"Success · object"},{"type":"object","title":"Error","description":"`null` until answered.","required":["status","error"],"properties":{"error":{"properties":{"code":{"oneOf":[{"description":"QuickBooks' own statusCode. The stable thing to branch on.","examples":[1030,3000,3040,3070,3120,3140,3150,3170,3171,3175,3176,3200,3210,3220,3250,3260,3263],"type":"integer","uniqueKey":"data.response_json.oneOf.1.error.code.oneOf.0","typeLabel":"integer"},{"description":"QuickBooks' own statusCode. The stable thing to branch on.","examples":[1030,3000,3040,3070,3120,3140,3150,3170,3171,3175,3176,3200,3210,3220,3250,3260,3263],"type":"null","uniqueKey":"data.response_json.oneOf.1.error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.response_json.oneOf.1.error.code","typeLabel":"integer | null"},"current":{"description":"The record as it stands in QuickBooks, shaped as a success's `data`, when QuickBooks sent it with the refusal, as it does with `stale_edit_sequence` (3200). Nothing was changed, and `current.edit_sequence` is the record's current one: re-apply your change and send it again with that `edit_sequence`. Absent when QuickBooks sent no record; then query the record first.","type":"object","uniqueKey":"data.response_json.oneOf.1.error.current","typeLabel":"object"},"message":{"description":"QuickBooks' own statusMessage.","type":"string","uniqueKey":"data.response_json.oneOf.1.error.message","typeLabel":"string"},"type":{"description":"A stable name for `code`, when QuBeSync recognises it. Absent otherwise: coverage widens over time, so treat this as a hint and branch on `code` if you need certainty.\n\n* `unsupported_request` (1030): The QuickBooks this connection talks to does not support this request.\n* `invalid_object_id` (3000): A ListID or TxnID in the request is not a valid id at all; the message names the field.\n* `invalid_amount` (3040): QuickBooks couldn't read an amount: it was written without its two decimals, such as 40 for 40.00, which the qbXML schema allows and QuickBooks doesn't. The message names the value and the field.\n* `string_too_long` (3070): A text value is longer than QuickBooks allows for that field; the message names the field.\n* `object_not_found` (3120): The request named a record by its ListID or TxnID, and the company file has no such record.\n* `invalid_reference` (3140): A reference names a record the company file does not have; the message says which list (Account, Item, Customer...).\n* `missing_element` (3150): QuickBooks requires an element the request left out; the message names it.\n* `cannot_modify` (3170): QuickBooks refused to save the change to an existing record.\n* `closing_date_modify` (3171): The transaction is dated on or before the company's closing date, which is password-protected.\n* `in_use` (3175): The record is in use, so it cannot be added, changed or deleted right now.\n* `locked` (3176): Someone has the record open in QuickBooks, or QuickBooks is in a single-user mode (such as the Adjust Quantity/Value on Hand window) that blocks changes.\n* `stale_edit_sequence` (3200): The edit_sequence sent is not the record's current one: it changed in QuickBooks after you read it.\n* `invalid_value` (3210): A field's value is not one QuickBooks accepts; the message names the field and the value.\n* `not_authorized` (3220): QuickBooks refused the request: no permission for it, or the feature is turned off in this company file.\n* `feature_not_enabled` (3250): The feature is turned off in this company file, or this edition of QuickBooks does not have it.\n* `insufficient_permission` (3260): The permission level QuickBooks granted does not allow this action.\n* `read_only_access` (3263): The application has read-only access to this company file, so it cannot add or change records.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","enum":["unsupported_request","invalid_object_id","invalid_amount","string_too_long","object_not_found","invalid_reference","missing_element","cannot_modify","closing_date_modify","in_use","locked","stale_edit_sequence","invalid_value","not_authorized","feature_not_enabled","insufficient_permission","read_only_access"],"type":"string","uniqueKey":"data.response_json.oneOf.1.error.type","typeLabel":"enum\u003cstring>"}},"type":"object","isRequired":true,"uniqueKey":"data.response_json.oneOf.1.error","typeLabel":"object"},"status":{"const":"error","isRequired":true,"uniqueKey":"data.response_json.oneOf.1.status","typeLabel":"any"}},"uniqueKey":"data.response_json.oneOf.1","typeLabel":"Error · object"},{"type":"null","description":"`null` until answered.","uniqueKey":"data.response_json.oneOf.2","typeLabel":"null"}],"uniqueKey":"data.response_json","typeLabel":"Success · object | Error · object | null"},"response_xml":{"oneOf":[{"description":"The qbXML response from QuickBooks. One answer can be at most 4 MB as the Web Connector sends it, about 3 MB of qbXML; QuickBooks' answer over that isn't kept: this is null and `error.error_type` is `response_too_large`.","type":"string","uniqueKey":"data.response_xml.oneOf.0","typeLabel":"string"},{"description":"The qbXML response from QuickBooks. One answer can be at most 4 MB as the Web Connector sends it, about 3 MB of qbXML; QuickBooks' answer over that isn't kept: this is null and `error.error_type` is `response_too_large`.","type":"null","uniqueKey":"data.response_xml.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.response_xml","typeLabel":"string | null"},"webhook_attempts":{"items":{"type":"object","uniqueKey":"data.webhook_attempts.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.webhook_attempts","typeLabel":"object[]"},"webhook_error":{"oneOf":[{"type":"string","uniqueKey":"data.webhook_error.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.webhook_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhook_error","typeLabel":"string | null"},"webhook_state":{"enum":["not_applicable","pending","succeeded","failed"],"type":"string","uniqueKey":"data.webhook_state","typeLabel":"enum\u003cstring>"},"webhook_url":{"oneOf":[{"format":"uri","type":"string","uniqueKey":"data.webhook_url.oneOf.0","typeLabel":"string\u003curi>"},{"format":"uri","type":"null","uniqueKey":"data.webhook_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhook_url","typeLabel":"string\u003curi> | null"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","links":{"connection_ui":"\u003cstring>","pages":"\u003cstring>","self":"\u003cstring>","ui":"\u003cstring>"},"request_xml":"\u003cstring>","state":"waiting","error":{"debug_message":"\u003cstring>","error_code":123,"error_type":"xml_error","hresult":"\u003cstring>","message":"\u003cstring>","user_message":"\u003cstring>"},"inserted_at":"2023-11-07T05:31:56Z","iteration_state":"not_applicable","original_request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","page":123,"request_types":["\u003cstring>"],"response_json":{"status":"success","data":{"discount_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123,"is_taxable":true,"rate_percent":123},"ship_address":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>","city":"\u003cstring>","country":"\u003cstring>","note":"\u003cstring>","postal_code":"\u003cstring>","state":"\u003cstring>"},"fob":"\u003cstring>","bill_address":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>","city":"\u003cstring>","country":"\u003cstring>","note":"\u003cstring>","postal_code":"\u003cstring>","state":"\u003cstring>"},"sales_receipt_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","credit_card_txn_type":"Authorization","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>","transaction_mode":"CardNotPresent"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","avs_street":"Fail","avs_zip":"Fail","card_security_code_match":"Fail","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"payment_status":"Completed","recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_type":"AMTTYPE","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","inventory_site_location_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"inventory_site_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_taxable":true,"item_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"lot_number":"\u003cstring>","other1":"\u003cstring>","other2":"\u003cstring>","override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"rate":123,"rate_percent":123,"sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"serial_number":"\u003cstring>","service_date":"2023-12-25","tax_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"txn_number":123,"sales_tax_percentage":123,"total_amount_in_home_currency":123,"other":"\u003cstring>","sales_receipt_line_group_ret":[{"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_type":"AMTTYPE","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","is_print_items_in_group":true,"item_group_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"sales_receipt_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","credit_card_txn_type":"Authorization","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>","transaction_mode":"CardNotPresent"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","avs_street":"Fail","avs_zip":"Fail","card_security_code_match":"Fail","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"payment_status":"Completed","recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_type":"AMTTYPE","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","inventory_site_location_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"inventory_site_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_taxable":true,"item_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"lot_number":"\u003cstring>","other1":"\u003cstring>","other2":"\u003cstring>","override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"rate":123,"rate_percent":123,"sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"serial_number":"\u003cstring>","service_date":"2023-12-25","tax_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"service_date":"2023-12-25","total_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"ship_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"time_modified":"2023-11-07T05:31:56Z","is_tax_included":true,"customer_sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_to_be_printed":true,"is_pending":true,"ref_number":"\u003cstring>","txn_id":"\u003cstring>","deposit_to_account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","credit_card_txn_type":"Authorization","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>","transaction_mode":"CardNotPresent"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","avs_street":"Fail","avs_zip":"Fail","card_security_code_match":"Fail","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"payment_status":"Completed","recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"check_number":"\u003cstring>","customer_msg_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"bill_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"customer_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"due_date":"2023-12-25","subtotal":123,"sales_tax_total":123,"time_created":"2023-11-07T05:31:56Z","edit_sequence":"\u003cstring>","sales_rep_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"sales_tax_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123,"rate_percent":123},"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_type":"AMTTYPE","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"external_guid":"\u003cstring>","ship_method_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"shipping_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123},"memo":"\u003cstring>","currency_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"txn_date":"2023-12-25","item_sales_tax_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_to_be_emailed":true,"template_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"exchange_rate":123,"total_amount":123,"ship_date":"2023-12-25","payment_method_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"}},"message":"\u003cstring>","warning":{"code":123,"message":"\u003cstring>"}},"response_xml":"\u003cstring>","webhook_attempts":[{}],"webhook_error":"\u003cstring>","webhook_state":"not_applicable","webhook_url":"\u003cstring>"}}}},"exampleType":"generated"}},"description":"Queued for the connection's Web Connector. Pass `webhook_url` and QuBe Sync POSTs the answer to it once QuickBooks has answered (see the `answered` callback: its own payload, not this document). `links.self` returns this document on demand, with `response_json` filled in.","headers":{"Idempotent-Replayed":{"description":"`true` when the call repeated an earlier call's `Idempotency-Key`: this is what that call created, as it is now, and nothing new was queued. Absent otherwise.","schema":{"enum":["true"],"type":"string"}}},"exampleType":"generated"},"481a3bf4-e9f1-481a-84cb-b7781c46c0d9":{"content":{"application/json":{"example":{"errors":"unknown parameter: \"emial\""},"schema":{"description":"What a refused request answers with. The one key is errors, and its shape says what went wrong: a sentence when the endpoint explains the refusal in words (a parameter the operation does not take, a key already taken, a run that has already ended); an object with detail, and a code when there is one, when the request named nothing that exists or may not do what it asked (402, 403, 404, and a CLI session's 401), or an answer to a run's question was refused (the decisions endpoint's 400, 409 and 422, which always carry a code to branch on); an object of fields, each a list of messages, when a record failed validation and nothing was saved; a list of {path, message} problems when a submitted document or input fails validation. A request without a usable API key gets a 401 Basic challenge with the plain-text body Unauthorized, not JSON.","properties":{"errors":{"oneOf":[{"type":"string","title":"A sentence","example":"unknown parameter: \"emial\"","isRequired":true,"uniqueKey":"errors.oneOf.0","typeLabel":"string"},{"type":"object","title":"Detail and code","required":["detail"],"properties":{"detail":{"example":"Not Found","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.1.detail","typeLabel":"string"},"code":{"example":"read_only_session","type":"string","uniqueKey":"errors.oneOf.1.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.oneOf.1","typeLabel":"Detail and code · object"},{"type":"object","title":"Field by field","example":{"webhook_url":["may not contain a username or password"]},"additionalProperties":{"items":{"type":"string","uniqueKey":"errors.oneOf.2.additionalProperties.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"errors.oneOf.2.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"errors.oneOf.2","typeLabel":"Field by field · object"},{"type":"array","items":{"properties":{"message":{"example":"is required","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].message","typeLabel":"string"},"path":{"example":"input.customer","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].path","typeLabel":"string"}},"required":["path","message"],"type":"object","uniqueKey":"errors.oneOf.3.items.[INDEX]","typeLabel":"object"},"title":"Located problems","isRequired":true,"uniqueKey":"errors.oneOf.3","typeLabel":"Located problems · object[]"}],"isRequired":true,"uniqueKey":"errors","typeLabel":"string | Detail and code · object | Field by field · object | Located problems · object[]"}},"required":["errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":"unknown parameter: \"emial\""}}},"exampleType":"examples"}},"description":"A parameter the operation does not take, or a value it cannot use. Nothing was queued.","exampleType":"examples"},"5bbbf6b9-1147-4fd0-8868-744e8f414754":{"content":{"text/plain":{"example":"Unauthorized","schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"Unauthorized"}},"exampleType":"examples"}},"description":"No usable API key. The key is Basic auth, so the answer is the challenge, with the plain-text body Unauthorized rather than JSON.","headers":{"WWW-Authenticate":{"schema":{"example":"Basic realm=\"Application\"","type":"string"}}},"exampleType":"examples"},"e869ecaf-05c7-4455-af11-32bb3a0fffba":{"content":{"application/json":{"example":{"errors":{"detail":"Sandbox access is paused for this organization because the sandbox period expired and the organization does not currently have both active billing and a recent production connection. Please request an extension if you're still working on your integration or contact support if you have questions."}},"schema":{"description":"What a refused request answers with. The one key is errors, and its shape says what went wrong: a sentence when the endpoint explains the refusal in words (a parameter the operation does not take, a key already taken, a run that has already ended); an object with detail, and a code when there is one, when the request named nothing that exists or may not do what it asked (402, 403, 404, and a CLI session's 401), or an answer to a run's question was refused (the decisions endpoint's 400, 409 and 422, which always carry a code to branch on); an object of fields, each a list of messages, when a record failed validation and nothing was saved; a list of {path, message} problems when a submitted document or input fails validation. A request without a usable API key gets a 401 Basic challenge with the plain-text body Unauthorized, not JSON.","properties":{"errors":{"oneOf":[{"type":"string","title":"A sentence","example":"unknown parameter: \"emial\"","isRequired":true,"uniqueKey":"errors.oneOf.0","typeLabel":"string"},{"type":"object","title":"Detail and code","required":["detail"],"properties":{"detail":{"example":"Not Found","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.1.detail","typeLabel":"string"},"code":{"example":"read_only_session","type":"string","uniqueKey":"errors.oneOf.1.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.oneOf.1","typeLabel":"Detail and code · object"},{"type":"object","title":"Field by field","example":{"webhook_url":["may not contain a username or password"]},"additionalProperties":{"items":{"type":"string","uniqueKey":"errors.oneOf.2.additionalProperties.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"errors.oneOf.2.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"errors.oneOf.2","typeLabel":"Field by field · object"},{"type":"array","items":{"properties":{"message":{"example":"is required","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].message","typeLabel":"string"},"path":{"example":"input.customer","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].path","typeLabel":"string"}},"required":["path","message"],"type":"object","uniqueKey":"errors.oneOf.3.items.[INDEX]","typeLabel":"object"},"title":"Located problems","isRequired":true,"uniqueKey":"errors.oneOf.3","typeLabel":"Located problems · object[]"}],"isRequired":true,"uniqueKey":"errors","typeLabel":"string | Detail and code · object | Field by field · object | Located problems · object[]"}},"required":["errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":{"detail":"Sandbox access is paused for this organization because the sandbox period expired and the organization does not currently have both active billing and a recent production connection. Please request an extension if you're still working on your integration or contact support if you have questions."}}}},"exampleType":"examples"}},"description":"A sandbox app whose organization's sandbox access is paused. Nothing was queued.","exampleType":"examples"},"5ba72edf-7c6a-4f43-9dc5-32622ec444ca":{"content":{"application/json":{"example":{"errors":{"detail":"Not Found"}},"schema":{"description":"What a refused request answers with. The one key is errors, and its shape says what went wrong: a sentence when the endpoint explains the refusal in words (a parameter the operation does not take, a key already taken, a run that has already ended); an object with detail, and a code when there is one, when the request named nothing that exists or may not do what it asked (402, 403, 404, and a CLI session's 401), or an answer to a run's question was refused (the decisions endpoint's 400, 409 and 422, which always carry a code to branch on); an object of fields, each a list of messages, when a record failed validation and nothing was saved; a list of {path, message} problems when a submitted document or input fails validation. A request without a usable API key gets a 401 Basic challenge with the plain-text body Unauthorized, not JSON.","properties":{"errors":{"oneOf":[{"type":"string","title":"A sentence","example":"unknown parameter: \"emial\"","isRequired":true,"uniqueKey":"errors.oneOf.0","typeLabel":"string"},{"type":"object","title":"Detail and code","required":["detail"],"properties":{"detail":{"example":"Not Found","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.1.detail","typeLabel":"string"},"code":{"example":"read_only_session","type":"string","uniqueKey":"errors.oneOf.1.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.oneOf.1","typeLabel":"Detail and code · object"},{"type":"object","title":"Field by field","example":{"webhook_url":["may not contain a username or password"]},"additionalProperties":{"items":{"type":"string","uniqueKey":"errors.oneOf.2.additionalProperties.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"errors.oneOf.2.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"errors.oneOf.2","typeLabel":"Field by field · object"},{"type":"array","items":{"properties":{"message":{"example":"is required","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].message","typeLabel":"string"},"path":{"example":"input.customer","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].path","typeLabel":"string"}},"required":["path","message"],"type":"object","uniqueKey":"errors.oneOf.3.items.[INDEX]","typeLabel":"object"},"title":"Located problems","isRequired":true,"uniqueKey":"errors.oneOf.3","typeLabel":"Located problems · object[]"}],"isRequired":true,"uniqueKey":"errors","typeLabel":"string | Detail and code · object | Field by field · object | Located problems · object[]"}},"required":["errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":{"detail":"Not Found"}}}},"exampleType":"examples"}},"description":"Nothing by that id, or it belongs to another app.","exampleType":"examples"},"c150e568-17f1-4664-b0c5-f5e25b2be889":{"content":{"application/json":{"example":{"errors":{"webhook_url":["may not contain a username or password"]}},"schema":{"description":"What a refused request answers with. The one key is errors, and its shape says what went wrong: a sentence when the endpoint explains the refusal in words (a parameter the operation does not take, a key already taken, a run that has already ended); an object with detail, and a code when there is one, when the request named nothing that exists or may not do what it asked (402, 403, 404, and a CLI session's 401), or an answer to a run's question was refused (the decisions endpoint's 400, 409 and 422, which always carry a code to branch on); an object of fields, each a list of messages, when a record failed validation and nothing was saved; a list of {path, message} problems when a submitted document or input fails validation. A request without a usable API key gets a 401 Basic challenge with the plain-text body Unauthorized, not JSON.","properties":{"errors":{"oneOf":[{"type":"string","title":"A sentence","example":"unknown parameter: \"emial\"","isRequired":true,"uniqueKey":"errors.oneOf.0","typeLabel":"string"},{"type":"object","title":"Detail and code","required":["detail"],"properties":{"detail":{"example":"Not Found","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.1.detail","typeLabel":"string"},"code":{"example":"read_only_session","type":"string","uniqueKey":"errors.oneOf.1.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"errors.oneOf.1","typeLabel":"Detail and code · object"},{"type":"object","title":"Field by field","example":{"webhook_url":["may not contain a username or password"]},"additionalProperties":{"items":{"type":"string","uniqueKey":"errors.oneOf.2.additionalProperties.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"errors.oneOf.2.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"errors.oneOf.2","typeLabel":"Field by field · object"},{"type":"array","items":{"properties":{"message":{"example":"is required","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].message","typeLabel":"string"},"path":{"example":"input.customer","type":"string","isRequired":true,"uniqueKey":"errors.oneOf.3.items.[INDEX].path","typeLabel":"string"}},"required":["path","message"],"type":"object","uniqueKey":"errors.oneOf.3.items.[INDEX]","typeLabel":"object"},"title":"Located problems","isRequired":true,"uniqueKey":"errors.oneOf.3","typeLabel":"Located problems · object[]"}],"isRequired":true,"uniqueKey":"errors","typeLabel":"string | Detail and code · object | Field by field · object | Located problems · object[]"}},"required":["errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":{"webhook_url":["may not contain a username or password"]}}}},"exampleType":"examples"}},"description":"A field failed validation, field by field, and nothing was queued: a `webhook_url` that is not an absolute http or https URL, carries a username or password, is longer than 2048 characters, or (in production) points at localhost or a private address. An `Idempotency-Key` that isn't 1 to 255 printable ASCII characters, or that was already used for a different request, is refused in a sentence naming the header.","exampleType":"examples"}},"callbacks":[{"callbackName":"answered","expression":"{$request.query.webhook_url}","method":"post","resolved":{"operation":{"description":"Verify `X-QUBE-Signature`, answer 2xx within 5 seconds, then branch on `state`:\n\n* `response_received` -- QuickBooks accepted it: `response_json` is `status: \"success\"` with `data`, or, when there is nothing to show, QuickBooks' `message` (a query that matched nothing is a success, not an error). When QuickBooks carried it out but warned about something, `response_json.warning` has its `code` and `message`: `530`, for one, means a field you sent is not supported by the customer's QuickBooks and was not saved.\n* `error` -- it is over, and QuBe Sync won't try again. With `error.error_type` `quickbooks_business_error`, QuickBooks refused the request: `response_json` is `status: \"error\"`, and `response_json.error.code` is the status code to branch on. A `3200` (`stale_edit_sequence`: the record changed after you read it) usually comes with the record as it stands in `response_json.error.current`, its current `edit_sequence` included. Compare it with what you read first: when nobody else changed a field your update sets, re-apply your change and send it again with that `edit_sequence`; when someone did, ask your user which value wins rather than overwriting theirs (without `current`, query the record first). Otherwise QuickBooks never answered it: `xml_error` (the request itself was rejected, and will be again as sent), `outcome_unknown` (a write the Web Connector answered with an error in place of QuickBooks' answer: it may have been applied, so look in QuickBooks before sending it again) or `unexpected_error` (the Web Connector's log says more; a query can be sent again). A connection problem never ends here; it is `retryable`, below.\n* `retryable` -- the Web Connector could not get it into QuickBooks (QuickBooks was not running, the company file was not open or not this connection's, or a window in QuickBooks was in the way), so nothing was applied. QuBe Sync keeps trying on the Web Connector's runs, so don't resend: show the customer `error.user_message` so they can fix it. This webhook comes when the error first appears or changes, not on every try. If you no longer want the request, discard it (`POST /connections/{connection_id}/queued-requests/{id}/discard`).\n* `timed_out` -- no answer came back: the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, while QuickBooks had the request. QuickBooks may still have applied it, so look before sending it again. `error.error_type` is `timed_out`.\n* `discarded` -- your app discarded it before the Web Connector picked it up. QuickBooks never got it, so nothing was applied. `error.error_type` is `discarded`, unless it was `retryable` when you discarded it: then `error` is still the connection error that held it up.\n\nAn iterated query sends one webhook per page, all with the same `id` and each with its own `page_request_id` and `page`; `iteration_state` is `done` on the last page, which can arrive before earlier ones, so the import is complete once every page from 1 to the `done` page's `page` has been handled. Deliveries can arrive out of order and, after a retry, more than once: key on `page_request_id` plus `state`. A `retryable` webhook is not final: the answer that follows carries the same `id` and `page_request_id` with a different `state`, and only a repeat of the same `state` is a duplicate. A body that would be over 1 MB comes without `response_xml`: `response_xml_omitted` is true, and `links.self` is where to GET it; `response_json` is always there.\n\nIf webhooks stop arriving altogether, the Web Connector on the customer's PC has most likely stopped calling in; requests wait until it does. Intuit's guide to its errors: https://quickbooks.intuit.com/learn-support/en-us/help-article/open-programs/fix-common-web-connector-errors-quickbooks-desktop/L9slolvg0_US_en_US\n","requestBody":"8e1c8289-02f4-4c52-9303-bca70e43f964","responses":{"2XX":"7b01f4fc-5456-46ae-9489-a0e0c0320c46"},"summary":"QuickBooks answered (or the request failed)","method":"post","type":"path"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"description":"POSTed to `webhook_url` as JSON, signed with `X-QUBE-Signature` (`t=\u003ctimestamp>,v1=\u003chex HMAC-SHA256 of \"\u003ctimestamp>.\u003craw body>\" with your app's webhook secret>`).","properties":{"app_id":{"description":"Your app's id.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"app_id","typeLabel":"string\u003cuuid>"},"app_name":{"type":"string","isRequired":true,"uniqueKey":"app_name","typeLabel":"string"},"error":{"oneOf":[{"description":"Set when `state` is `error`, `retryable`, `timed_out` or `discarded`. `error_type` says where it failed: for a `timed_out` request it is `timed_out`, and for a `discarded` one `discarded`, unless the request was `retryable` when your app discarded it, which keeps the connection error that held it up. `user_message` is safe to show an end user; `error_code` is QuickBooks' own status code for a business error, `hresult` the Web Connector's for a connection/XML error; `debug_message` is for you.","properties":{"debug_message":{"oneOf":[{"description":"Which element of the request the value came from, when known.","type":"string","uniqueKey":"error.oneOf.0.debug_message.oneOf.0","typeLabel":"string"},{"description":"Which element of the request the value came from, when known.","type":"null","uniqueKey":"error.oneOf.0.debug_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.0.debug_message","typeLabel":"string | null"},"error_code":{"oneOf":[{"description":"QuickBooks' statusCode, for a business error.","type":"integer","uniqueKey":"error.oneOf.0.error_code.oneOf.0","typeLabel":"integer"},{"description":"QuickBooks' statusCode, for a business error.","type":"null","uniqueKey":"error.oneOf.0.error_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.0.error_code","typeLabel":"integer | null"},"error_type":{"description":"`quickbooks_business_error`: QuickBooks refused the request -- `response_json.error` has its code. `quickbooks_connection_error`: the Web Connector ran on the customer's PC but could not get the request into QuickBooks, so nothing was applied -- QuickBooks was not running, the company file was not open or not the one this connection belongs to, or a window or message box open in QuickBooks was in the way. Only the customer can fix that, and `user_message` tells them how. `xml_error`: QuickBooks could not parse the qbXML; sent again as-is, it fails again. `outcome_unknown`: a write the Web Connector answered with an error in place of QuickBooks' answer, so whether QuickBooks applied it is not known: look in QuickBooks before sending it again. `unexpected_error`: anything else; for a query, which changes nothing, sending it again is safe.\n\n`timed_out`: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, while QuickBooks had the request. QuickBooks may still have applied it, so look before sending it again. `discarded`: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. `response_too_large`: QuickBooks answered, but with more than QuBe Sync accepts for one answer (4 MB as the Web Connector sends it, about 3 MB of qbXML), so the answer wasn't kept and `response_json` is null. QuickBooks ran the request. Page the query (`iterator` and a smaller `max_returned`), or narrow it when QuickBooks doesn't page it; for a write, look before sending it again.\n\nWeb Connector problems on the customer's PC (its password, log file, the .QWC file) never reach QuBe Sync as an error: the Web Connector just stops calling in, and requests wait. Intuit's guide for those: https://quickbooks.intuit.com/learn-support/en-us/help-article/open-programs/fix-common-web-connector-errors-quickbooks-desktop/L9slolvg0_US_en_US","enum":["xml_error","quickbooks_connection_error","quickbooks_business_error","unexpected_error","response_too_large","outcome_unknown","timed_out","discarded"],"type":"string","uniqueKey":"error.oneOf.0.error_type","typeLabel":"enum\u003cstring>"},"hresult":{"oneOf":[{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"string","uniqueKey":"error.oneOf.0.hresult.oneOf.0","typeLabel":"string"},{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"null","uniqueKey":"error.oneOf.0.hresult.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.0.hresult","typeLabel":"string | null"},"message":{"description":"The raw message from QuickBooks or the Web Connector; for `timed_out` and `discarded`, which neither sent, QuBe Sync's own.","type":"string","uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"user_message":{"description":"A friendly message for the end user.","type":"string","uniqueKey":"error.oneOf.0.user_message","typeLabel":"string"}},"type":"object","isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"description":"Set when `state` is `error`, `retryable`, `timed_out` or `discarded`. `error_type` says where it failed: for a `timed_out` request it is `timed_out`, and for a `discarded` one `discarded`, unless the request was `retryable` when your app discarded it, which keeps the connection error that held it up. `user_message` is safe to show an end user; `error_code` is QuickBooks' own status code for a business error, `hresult` the Web Connector's for a connection/XML error; `debug_message` is for you.","properties":{"debug_message":{"oneOf":[{"description":"Which element of the request the value came from, when known.","type":"string"},{"description":"Which element of the request the value came from, when known.","type":"null"}]},"error_code":{"oneOf":[{"description":"QuickBooks' statusCode, for a business error.","type":"integer"},{"description":"QuickBooks' statusCode, for a business error.","type":"null"}]},"error_type":{"description":"`quickbooks_business_error`: QuickBooks refused the request -- `response_json.error` has its code. `quickbooks_connection_error`: the Web Connector ran on the customer's PC but could not get the request into QuickBooks, so nothing was applied -- QuickBooks was not running, the company file was not open or not the one this connection belongs to, or a window or message box open in QuickBooks was in the way. Only the customer can fix that, and `user_message` tells them how. `xml_error`: QuickBooks could not parse the qbXML; sent again as-is, it fails again. `outcome_unknown`: a write the Web Connector answered with an error in place of QuickBooks' answer, so whether QuickBooks applied it is not known: look in QuickBooks before sending it again. `unexpected_error`: anything else; for a query, which changes nothing, sending it again is safe.\n\n`timed_out`: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, while QuickBooks had the request. QuickBooks may still have applied it, so look before sending it again. `discarded`: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. `response_too_large`: QuickBooks answered, but with more than QuBe Sync accepts for one answer (4 MB as the Web Connector sends it, about 3 MB of qbXML), so the answer wasn't kept and `response_json` is null. QuickBooks ran the request. Page the query (`iterator` and a smaller `max_returned`), or narrow it when QuickBooks doesn't page it; for a write, look before sending it again.\n\nWeb Connector problems on the customer's PC (its password, log file, the .QWC file) never reach QuBe Sync as an error: the Web Connector just stops calling in, and requests wait. Intuit's guide for those: https://quickbooks.intuit.com/learn-support/en-us/help-article/open-programs/fix-common-web-connector-errors-quickbooks-desktop/L9slolvg0_US_en_US","enum":["xml_error","quickbooks_connection_error","quickbooks_business_error","unexpected_error","response_too_large","outcome_unknown","timed_out","discarded"],"type":"string"},"hresult":{"oneOf":[{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"string"},{"description":"The Web Connector's HRESULT (e.g. `0x80040400`), for a connection or XML error. Informational: branch on `error_type`, not on this.","type":"null"}]},"message":{"description":"The raw message from QuickBooks or the Web Connector; for `timed_out` and `discarded`, which neither sent, QuBe Sync's own.","type":"string"},"user_message":{"description":"A friendly message for the end user.","type":"string"}},"type":"null","isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object | null"},"id":{"description":"The request's id, as the 201 returned it. For an iterated query, every page carries the first page's id here.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"page_request_id":{"description":"This page's own id. Equal to `id` except on later pages of an iterated query.","format":"uuid","type":"string","isRequired":true,"uniqueKey":"page_request_id","typeLabel":"string\u003cuuid>"},"response_json":{"oneOf":[{"type":"object","title":"Success","description":"QuBe Sync's summary of QuickBooks' answer. Only an `Error` severity from QuickBooks is `status: \"error\"` (and makes the request's `state` `error`), so a query that matched nothing is still `success`. A `Warn` severity is a `success` with `warning` beside it.","required":["status"],"properties":{"status":{"const":"success","isRequired":true,"uniqueKey":"response_json.oneOf.0.status","typeLabel":"any"},"data":{"oneOf":[{"type":"object","title":"SalesReceiptRet","properties":{"discount_line_ret":{"not":{"anyOf":[{"required":["amount","rate_percent"]}]},"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.amount","typeLabel":"number"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.is_taxable","typeLabel":"boolean"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.discount_line_ret","typeLabel":"object"},"ship_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address","typeLabel":"object"},"fob":{"description":"QuickBooks uses the term FOB, “freight on board,” to indicate the place from which the product is shipped. The FOB has no accounting implications.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.fob","typeLabel":"string"},"bill_address":{"description":"This aggregate supports at most five address lines. You can provide a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each Addr line prints as its own line and is returned in `ship_address_block` or `bill_address_block`.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.city","typeLabel":"string"},"country":{"description":"The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.country","typeLabel":"string"},"note":{"description":"In a `bill_address` or `ship_address` aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address","typeLabel":"object"},"sales_receipt_line_ret":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.\n\n`sales_receipt_line_ret` and `sales_receipt_line_group_ret` combine: any number of each.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["serial_number","lot_number"]}]},"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].class_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].credit_card_txn_info","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].is_taxable","typeLabel":"boolean"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].lot_number","typeLabel":"string"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].other2","typeLabel":"string"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].tax_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_ret","typeLabel":"object[]"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.txn_number","typeLabel":"integer"},"sales_tax_percentage":{"description":"The percentage charged for sales tax.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_percentage","typeLabel":"number"},"total_amount_in_home_currency":{"description":"Total amount of money paid or received in the home currency.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.total_amount_in_home_currency","typeLabel":"number"},"other":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.other","typeLabel":"string"},"sales_receipt_line_group_ret":{"description":"Represents a previously defined group of lines in the sales receipt. Compare with SalesReceiptLine, which represents just one line in the sales receipt.\n\n`sales_receipt_line_ret` and `sales_receipt_line_group_ret` combine: any number of each.","items":{"properties":{"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].desc","typeLabel":"string"},"is_print_items_in_group":{"description":"If true, a list of this group’s individual items their amounts will appear on printed forms.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].is_print_items_in_group","typeLabel":"boolean"},"item_group_ref":{"description":"ItemGroup objects represent items that are grouped together for fast entry, and an `item_group_ref` aggregate refers to one of these item groups. In a request, if an `item_group_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored. You can use an ItemGroupQuery request to get information about all the item groups that are set up in the QuickBooks file.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].item_group_ref","typeLabel":"object"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].quantity","typeLabel":"number"},"sales_receipt_line_ret":{"description":"One line of the sales receipt. Compare with SalesReceiptLineGroup, which represents a previously defined group of lines in the sales receipt.","items":{"not":{"anyOf":[{"required":["rate","rate_percent"]},{"required":["serial_number","lot_number"]}]},"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].amount","typeLabel":"number"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].class_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].credit_card_txn_info","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].desc","typeLabel":"string"},"inventory_site_location_ref":{"description":"Location within the Inventory Site.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_location_ref","typeLabel":"object"},"inventory_site_ref":{"description":"Site where inventory is located.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].is_taxable","typeLabel":"boolean"},"item_ref":{"description":"`item_ref` may accept all item types or a restricted subset, depending on the request. Examples: PurchaseOrder and Bill do not allow discount or sales-tax items; VehicleMileageAdd requires a service or other-charge item; BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].item_ref","typeLabel":"object"},"lot_number":{"description":"The lot number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].lot_number","typeLabel":"string"},"other1":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].other1","typeLabel":"string"},"other2":{"description":"Other, Other1, and Other2 are built-in transaction custom fields. Other is transaction-level; Other1 and Other2 are line-level. These fields are always available through the SDK and do not require DataExtDef setup. Template labels in the UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].other2","typeLabel":"string"},"override_uom_set_ref":{"description":"When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you can’t change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].override_uom_set_ref","typeLabel":"object"},"quantity":{"description":"On transaction lines, QuickBooks can derive one value from the other two among Quantity, Rate, and Amount. If you supply Quantity and Amount, QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates Amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].quantity","typeLabel":"number"},"rate":{"description":"If you specify both Rate and Amount in a request, the Rate you provide will be ignored, and you will receive a warning. If you specify both Quantity and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and Quantity can’t be cleared.)\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].rate","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `rate`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].rate_percent","typeLabel":"number"},"sales_tax_code_ref":{"description":"`sales_tax_code_ref` points to the sales-tax code used for an item or customer context. QuickBooks includes default TAX and NON codes, and a code can be deleted only when nothing references it. If sales tax is disabled, QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are provided in `sales_tax_code_ref`, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].sales_tax_code_ref","typeLabel":"object"},"serial_number":{"description":"The serial number of the asset.\n\nChoose at most one of: `serial_number`, or `lot_number`.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].serial_number","typeLabel":"string"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].tax_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].sales_receipt_line_ret","typeLabel":"object[]"},"service_date":{"description":"Indicates the date on which the QuickBooks user performs the service for the customer.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"total_amount":{"description":"Subtotal plus `sales_tax_total`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].total_amount","typeLabel":"number"},"txn_line_id":{"description":"Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].txn_line_id","typeLabel":"string"},"unit_of_measure":{"description":"In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit!","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_receipt_line_group_ret","typeLabel":"object[]"},"ship_address_block":{"description":"The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_address_block","typeLabel":"object"},"time_modified":{"description":"Time the object was last modified.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.time_modified","typeLabel":"string\u003cdate-time>"},"is_tax_included":{"description":"For future use with international versions of QuickBooks.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.is_tax_included","typeLabel":"boolean"},"customer_sales_tax_code_ref":{"description":"Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `customer_sales_tax_code_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_sales_tax_code_ref","typeLabel":"object"},"is_to_be_printed":{"description":"If `is_to_be_printed` is true, QuickBooks queues the form for later printing. It does not print immediately; printing is still a user action in QuickBooks.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.is_to_be_printed","typeLabel":"boolean"},"is_pending":{"description":"If `is_pending` is set to true, the sales receipt hasn’t been completed. Pending sales might include unpaid orders, estimates, tracked hours that haven’t yet been billed, or sales of back-ordered items.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.is_pending","typeLabel":"boolean"},"ref_number":{"description":"`ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ref_number","typeLabel":"string"},"txn_id":{"description":"`txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.txn_id","typeLabel":"string"},"deposit_to_account_ref":{"description":"Refers to the account where these funds will be (or have been) deposited. In a ReceivePaymentAdd request, the default is Undeposited Funds if this isn’t included in the request. In a request, if a `deposit_to_account_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.deposit_to_account_ref","typeLabel":"object"},"credit_card_txn_info":{"description":"Contains data from the credit card transaction used in the payment. This data originates from a previous qbmsXML credit card transaction. The data following the element `credit_card_txn_input_info`” data is the data from the original qbmsXML request. The “`credit_card_txn_result_info`” is the data from the original qbmsXML response.","properties":{"credit_card_txn_input_info":{"description":"This contains data originally supplied in the QBMS transaction request. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"commercial_card_code":{"description":"This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.commercial_card_code","typeLabel":"string"},"credit_card_address":{"description":"The address associated with this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_address","typeLabel":"string"},"credit_card_number":{"description":"Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_number","typeLabel":"string"},"credit_card_postal_code":{"description":"The postal code associated with the address for this credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_postal_code","typeLabel":"string"},"credit_card_txn_type":{"description":"Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, VoiceAuthorization, or Void.","enum":["Authorization","Capture","Charge","Refund","VoiceAuthorization"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.credit_card_txn_type","typeLabel":"enum\u003cstring>"},"expiration_month":{"description":"The month when the credit card expires.","maximum":12,"minimum":1,"type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.expiration_month","typeLabel":"integer"},"expiration_year":{"description":"The year when the credit card expires.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.expiration_year","typeLabel":"integer"},"name_on_card":{"description":"The name on the customer’s credit card.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.name_on_card","typeLabel":"string"},"transaction_mode":{"description":"Indicates whether this transaction came from a card swipe (tmCardPresent) or not (tmCardNotPresent).","enum":["CardNotPresent","CardPresent"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info.transaction_mode","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_input_info","typeLabel":"object"},"credit_card_txn_result_info":{"description":"This contains data returned in the QBMS transaction response. This information block shouldn’t be used in CreditMemo requests for QuickBooks 2007 and new versions. Instead, use the ARRefundCreditCard request.","properties":{"authorization_code":{"description":"The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (CustomerCreditCardVoiceAuthRq), the authorization code is supplied by the card issuer over the telephone.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.authorization_code","typeLabel":"string"},"avs_street":{"description":"This field contains the value avssPass if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value avssFail if there isn’t a match, or avssNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.avs_street","typeLabel":"enum\u003cstring>"},"avs_zip":{"description":"This field contains the value avszPass if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value avszFail if there isn’t a match, or avszNotAvailable if the card issuer doesn’t support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.avs_zip","typeLabel":"enum\u003cstring>"},"card_security_code_match":{"description":"This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there isn’t a match.","enum":["Fail","NotAvailable","Pass"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.card_security_code_match","typeLabel":"enum\u003cstring>"},"client_trans_id":{"description":"This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.client_trans_id","typeLabel":"string"},"credit_card_trans_id":{"description":"This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, CustomerCreditCardTxnVoidRq, or CustomerCreditCardCaptureRq.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.credit_card_trans_id","typeLabel":"string"},"merchant_account_number":{"description":"This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK SalesReceiptAdd, ReceivePaymentAdd, ARRefundCreditCard requests to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.merchant_account_number","typeLabel":"string"},"payment_grouping_code":{"description":"Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK ReceivePaymentAdd or SalesReceiptAdd request.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.payment_grouping_code","typeLabel":"integer"},"payment_status":{"description":"Indicates payment processing status as known by QuickBooks/QBMS integration state. `psCompleted` indicates confirmed success; `psUnknown` indicates status could not be definitively confirmed.","enum":["Completed","Unknown"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.payment_status","typeLabel":"enum\u003cstring>"},"recon_batch_id":{"description":"This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK SalesReceiptAdd or ReceivePaymentAdd requests if you want to save the transaction data in QuickBooks.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.recon_batch_id","typeLabel":"string"},"result_code":{"description":"This contains the status code returned in the original QBMS transaction response.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.result_code","typeLabel":"integer"},"result_message":{"description":"This contains the status message returned in the original QBMS transaction response.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.result_message","typeLabel":"string"},"txn_authorization_stamp":{"description":"This value is used to support the credit card transaction Reconcile feature within QuickBooks.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.txn_authorization_stamp","typeLabel":"integer"},"txn_authorization_time":{"description":"Timestamp indicating the time in which the card processor authorized the transaction.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info.txn_authorization_time","typeLabel":"string\u003cdate-time>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info.credit_card_txn_result_info","typeLabel":"object"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.credit_card_txn_info","typeLabel":"object"},"check_number":{"description":"The check number of a check that a QuickBooks user writes or receives from someone else.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.check_number","typeLabel":"string"},"customer_msg_ref":{"description":"A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `customer_msg_ref` aggregate refers to one of the messages on the CustomerMsg list. In a request, if a `customer_msg_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_msg_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_msg_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_msg_ref","typeLabel":"object"},"bill_address_block":{"description":"The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.","properties":{"addr1":{"description":"The first line of an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block.addr1","typeLabel":"string"},"addr2":{"description":"The second line of an address (if a second line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block.addr2","typeLabel":"string"},"addr3":{"description":"The third line of an address (if a third line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block.addr3","typeLabel":"string"},"addr4":{"description":"The fourth line of an address (if a fourth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block.addr4","typeLabel":"string"},"addr5":{"description":"The fifth line of an address (if a fifth line is needed).","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.bill_address_block","typeLabel":"object"},"customer_ref":{"description":"`customer_ref` identifies a customer or customer job. If both `full_name` and `list_id` are provided, `full_name` is ignored. In SalesReceipt and ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the time can be billed to and is required in TimeTrackingAdd when IsBillable is true.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.customer_ref","typeLabel":"object"},"due_date":{"description":"A sales receipt doesn’t ordinarily include a due date, because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.due_date","typeLabel":"string\u003cdate>"},"subtotal":{"description":"The total of all the sales-receipt lines before taxes are applied. (By contrast, a subtotal item (an ItemSubtotal object) gives only the total of the amounts in the lines that appear above it.)","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.subtotal","typeLabel":"number"},"sales_tax_total":{"description":"The total amount of sales tax charged.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_total","typeLabel":"number"},"time_created":{"description":"Time the object was created.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.time_created","typeLabel":"string\u003cdate-time>"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.edit_sequence","typeLabel":"string"},"sales_rep_ref":{"description":"A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `sales_rep_ref` refers to a person on the SalesRep list. In a request, if a `sales_rep_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_rep_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_rep_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_rep_ref","typeLabel":"object"},"sales_tax_line_ret":{"not":{"anyOf":[{"required":["amount","rate_percent"]}]},"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.amount","typeLabel":"number"},"rate_percent":{"description":"Indicates the price of something as a percent.\n\nChoose at most one of: `amount`, or `rate_percent`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.sales_tax_line_ret","typeLabel":"object"},"class_ref":{"description":"Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.class_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.class_ref","typeLabel":"object"},"data_ext_ret":{"items":{"properties":{"data_ext_name":{"description":"The name of the data extension. If this is a custom field, `data_ext_name` will be visible as a label in the QuickBooks user interface. Also because `owner_id` and `data_ext_name` together make the data extension unique, and because custom fields all have the same `owner_id` of zero, the `data_ext_name` must be a unique value among existing custom fields.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_name","typeLabel":"string"},"data_ext_type":{"description":"The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, `data_ext_type` must be detSTR255TYPE.","enum":["AMTTYPE","DATETIMETYPE","INTTYPE","PERCENTTYPE","PRICETYPE","QUANTYPE","STR1024TYPE","STR255TYPE"],"type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_type","typeLabel":"enum\u003cstring>"},"data_ext_value":{"description":"The data in this field. The maximum length of `data_ext_value` will depend on the `data_ext_type` of this data extension. For example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of `data_ext_value` is 1KB.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].data_ext_value","typeLabel":"string"},"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.oneOf.0.data_ext_ret","typeLabel":"object[]"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.external_guid","typeLabel":"string"},"ship_method_ref":{"description":"A shipping method, for example, standard mail or overnight delivery. A `ship_method_ref` aggregate refers to an item on the ShipMethod list. In a request, if a `ship_method_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_method_ref","typeLabel":"object"},"shipping_line_ret":{"properties":{"account_ref":{"properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.shipping_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.shipping_line_ret.amount","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.shipping_line_ret","typeLabel":"object"},"memo":{"description":"Message that appears in reports, but not on the sales receipt.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.memo","typeLabel":"string"},"currency_ref":{"description":"A currency record defines how QuickBooks stores and displays a currency. Built-in currency name/code values are fixed; formatting and active status can vary by settings and workflow.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.currency_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.currency_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.currency_ref","typeLabel":"object"},"txn_date":{"description":"The date of the sales receipt. In some cases, if you leave `txn_date` out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved transaction of the same type.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.txn_date","typeLabel":"string\u003cdate>"},"item_sales_tax_ref":{"description":"An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided for `item_sales_tax_ref`, `list_id` is used.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.item_sales_tax_ref","typeLabel":"object"},"is_to_be_emailed":{"description":"When enabled, QuickBooks validates the customer email at runtime before sending. If no valid email is available, the request fails.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.oneOf.0.is_to_be_emailed","typeLabel":"boolean"},"template_ref":{"description":"QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `template_ref` element refers to one of these templates.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.template_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.template_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.template_ref","typeLabel":"object"},"exchange_rate":{"description":"`exchange_rate` is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.exchange_rate","typeLabel":"number"},"total_amount":{"description":"Subtotal plus `sales_tax_total`.","type":"number","uniqueKey":"response_json.oneOf.0.data.oneOf.0.total_amount","typeLabel":"number"},"ship_date":{"description":"The date when the product was, or will be, shipped.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.ship_date","typeLabel":"string\u003cdate>"},"payment_method_ref":{"description":"`payment_method_ref` identifies how a payment is made (for example, cash, check, or card type). If both `full_name` and `list_id` are provided, `full_name` is ignored.","properties":{"full_name":{"description":"`full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.payment_method_ref.full_name","typeLabel":"string"},"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.0.payment_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.oneOf.0.payment_method_ref","typeLabel":"object"}},"uniqueKey":"response_json.oneOf.0.data.oneOf.0","typeLabel":"SalesReceiptRet · object"},{"type":"object","title":"ErrorRecovery","required":["list_id"],"properties":{"list_id":{"description":"`list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list family, not across the company file: customers, vendors, employees and other names share one sequence, every item type shares another, and each other list has its own.","type":"string","isRequired":true,"uniqueKey":"response_json.oneOf.0.data.oneOf.1.list_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.1.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.1.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.1.txn_number","typeLabel":"integer"}},"uniqueKey":"response_json.oneOf.0.data.oneOf.1","typeLabel":"ErrorRecovery · object"},{"type":"object","title":"ErrorRecovery","required":["owner_id"],"properties":{"owner_id":{"description":"`owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.","type":"string","isRequired":true,"uniqueKey":"response_json.oneOf.0.data.oneOf.2.owner_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.2.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.2.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.2.txn_number","typeLabel":"integer"}},"uniqueKey":"response_json.oneOf.0.data.oneOf.2","typeLabel":"ErrorRecovery · object"},{"type":"object","title":"ErrorRecovery","required":["txn_id"],"properties":{"txn_id":{"description":"`txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.","type":"string","isRequired":true,"uniqueKey":"response_json.oneOf.0.data.oneOf.3.txn_id","typeLabel":"string"},"edit_sequence":{"description":"`edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.3.edit_sequence","typeLabel":"string"},"external_guid":{"description":"Allows for the attachment of a user defined GUID value.","type":"string","uniqueKey":"response_json.oneOf.0.data.oneOf.3.external_guid","typeLabel":"string"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"response_json.oneOf.0.data.oneOf.3.txn_number","typeLabel":"integer"}},"uniqueKey":"response_json.oneOf.0.data.oneOf.3","typeLabel":"ErrorRecovery · object"}],"uniqueKey":"response_json.oneOf.0.data","typeLabel":"SalesReceiptRet · object · ErrorRecovery · object · ErrorRecovery · object · ErrorRecovery · object"},"message":{"description":"QuickBooks' own status message, carried through when there is no data to show for an otherwise successful request (a query that matched nothing, say).","type":"string","uniqueKey":"response_json.oneOf.0.message","typeLabel":"string"},"warning":{"description":"Present only when QuickBooks answered with a `Warn` severity: it carried the request out, and `data` is what it saved or found, but it has something to say about it. For example code `530` with the message `The field \"Memo\" is not supported by this implementation.` means the record was saved without that field, so an add or update that comes back with a `warning` may not have saved everything it sent. Absent on a plain success and on an error.","properties":{"code":{"description":"QuickBooks' own statusCode. The stable thing to branch on.","type":"integer","isRequired":true,"uniqueKey":"response_json.oneOf.0.warning.code","typeLabel":"integer"},"message":{"description":"QuickBooks' own statusMessage, such as which field it did not support.","type":"string","uniqueKey":"response_json.oneOf.0.warning.message","typeLabel":"string"}},"required":["code"],"type":"object","uniqueKey":"response_json.oneOf.0.warning","typeLabel":"object"}},"isRequired":true,"uniqueKey":"response_json.oneOf.0","typeLabel":"Success · object"},{"type":"object","title":"Error","description":"QuBe Sync's summary of QuickBooks' answer. Only an `Error` severity from QuickBooks is `status: \"error\"` (and makes the request's `state` `error`), so a query that matched nothing is still `success`. A `Warn` severity is a `success` with `warning` beside it.","required":["status","error"],"properties":{"error":{"properties":{"code":{"oneOf":[{"description":"QuickBooks' own statusCode. The stable thing to branch on.","examples":[1030,3000,3040,3070,3120,3140,3150,3170,3171,3175,3176,3200,3210,3220,3250,3260,3263],"type":"integer","uniqueKey":"response_json.oneOf.1.error.code.oneOf.0","typeLabel":"integer"},{"description":"QuickBooks' own statusCode. The stable thing to branch on.","examples":[1030,3000,3040,3070,3120,3140,3150,3170,3171,3175,3176,3200,3210,3220,3250,3260,3263],"type":"null","uniqueKey":"response_json.oneOf.1.error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"response_json.oneOf.1.error.code","typeLabel":"integer | null"},"current":{"description":"The record as it stands in QuickBooks, shaped as a success's `data`, when QuickBooks sent it with the refusal, as it does with `stale_edit_sequence` (3200). Nothing was changed, and `current.edit_sequence` is the record's current one: re-apply your change and send it again with that `edit_sequence`. Absent when QuickBooks sent no record; then query the record first.","type":"object","uniqueKey":"response_json.oneOf.1.error.current","typeLabel":"object"},"message":{"description":"QuickBooks' own statusMessage.","type":"string","uniqueKey":"response_json.oneOf.1.error.message","typeLabel":"string"},"type":{"description":"A stable name for `code`, when QuBeSync recognises it. Absent otherwise: coverage widens over time, so treat this as a hint and branch on `code` if you need certainty.\n\n* `unsupported_request` (1030): The QuickBooks this connection talks to does not support this request.\n* `invalid_object_id` (3000): A ListID or TxnID in the request is not a valid id at all; the message names the field.\n* `invalid_amount` (3040): QuickBooks couldn't read an amount: it was written without its two decimals, such as 40 for 40.00, which the qbXML schema allows and QuickBooks doesn't. The message names the value and the field.\n* `string_too_long` (3070): A text value is longer than QuickBooks allows for that field; the message names the field.\n* `object_not_found` (3120): The request named a record by its ListID or TxnID, and the company file has no such record.\n* `invalid_reference` (3140): A reference names a record the company file does not have; the message says which list (Account, Item, Customer...).\n* `missing_element` (3150): QuickBooks requires an element the request left out; the message names it.\n* `cannot_modify` (3170): QuickBooks refused to save the change to an existing record.\n* `closing_date_modify` (3171): The transaction is dated on or before the company's closing date, which is password-protected.\n* `in_use` (3175): The record is in use, so it cannot be added, changed or deleted right now.\n* `locked` (3176): Someone has the record open in QuickBooks, or QuickBooks is in a single-user mode (such as the Adjust Quantity/Value on Hand window) that blocks changes.\n* `stale_edit_sequence` (3200): The edit_sequence sent is not the record's current one: it changed in QuickBooks after you read it.\n* `invalid_value` (3210): A field's value is not one QuickBooks accepts; the message names the field and the value.\n* `not_authorized` (3220): QuickBooks refused the request: no permission for it, or the feature is turned off in this company file.\n* `feature_not_enabled` (3250): The feature is turned off in this company file, or this edition of QuickBooks does not have it.\n* `insufficient_permission` (3260): The permission level QuickBooks granted does not allow this action.\n* `read_only_access` (3263): The application has read-only access to this company file, so it cannot add or change records.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","enum":["unsupported_request","invalid_object_id","invalid_amount","string_too_long","object_not_found","invalid_reference","missing_element","cannot_modify","closing_date_modify","in_use","locked","stale_edit_sequence","invalid_value","not_authorized","feature_not_enabled","insufficient_permission","read_only_access"],"type":"string","uniqueKey":"response_json.oneOf.1.error.type","typeLabel":"enum\u003cstring>"}},"type":"object","isRequired":true,"uniqueKey":"response_json.oneOf.1.error","typeLabel":"object"},"status":{"const":"error","isRequired":true,"uniqueKey":"response_json.oneOf.1.status","typeLabel":"any"}},"isRequired":true,"uniqueKey":"response_json.oneOf.1","typeLabel":"Error · object"}],"isRequired":true,"uniqueKey":"response_json","typeLabel":"Success · object | Error · object"},"sandbox":{"description":"Whether the app is a sandbox app.","type":"boolean","isRequired":true,"uniqueKey":"sandbox","typeLabel":"boolean"},"state":{"description":"`response_received`: QuickBooks accepted it; read `response_json`. `error`: it is over and QuBe Sync won't try again -- see `error`, and `response_json.error` for a QuickBooks business error; with `error_type` `outcome_unknown` a write may still have been applied, so look before sending it again. `retryable`: QuickBooks could not be reached and QuBe Sync keeps trying; show the customer `error.user_message` so they can fix it. `timed_out`: no answer came back -- the customer's computer lost its connection, or QuickBooks or the Web Connector was closed, mid-request. QuickBooks may still have applied it, so look before sending it again. `discarded`: your app discarded it before the Web Connector picked it up, so QuickBooks never got it. Both carry an `error`.","enum":["response_received","error","retryable","timed_out","discarded"],"type":"string","isRequired":true,"uniqueKey":"state","typeLabel":"enum\u003cstring>"},"timestamp":{"description":"Unix seconds; the same `t` the signature covers.","type":"integer","isRequired":true,"uniqueKey":"timestamp","typeLabel":"integer"},"iteration_state":{"description":"`continue`: more pages will follow, each its own webhook. `done`: this was the last page. `max_sandbox_iterations_reached`: a sandbox app's page limit stopped the iteration.","enum":["not_applicable","continue","done","max_sandbox_iterations_reached"],"type":"string","uniqueKey":"iteration_state","typeLabel":"enum\u003cstring>"},"links":{"description":"Present only with `response_xml_omitted`.","properties":{"self":{"description":"This page's request in the API, `response_xml` included.","format":"uri","type":"string","uniqueKey":"links.self","typeLabel":"string\u003curi>"}},"type":"object","uniqueKey":"links","typeLabel":"object"},"page":{"oneOf":[{"description":"The page number, when iterated.","type":"integer","uniqueKey":"page.oneOf.0","typeLabel":"integer"},{"description":"The page number, when iterated.","type":"null","uniqueKey":"page.oneOf.1","typeLabel":"null"}],"uniqueKey":"page","typeLabel":"integer | null"},"response_xml":{"oneOf":[{"description":"QuickBooks' raw qbXML answer. `response_json` is the same, summarized. One answer can be at most 4 MB as the Web Connector sends it, about 3 MB of qbXML; QuickBooks' answer over that isn't kept: this is null and `error.error_type` is `response_too_large`. A webhook whose body would be over 1 MB is sent without it: null, with `response_xml_omitted` true; fetch it from `links.self`.","type":"string","uniqueKey":"response_xml.oneOf.0","typeLabel":"string"},{"description":"QuickBooks' raw qbXML answer. `response_json` is the same, summarized. One answer can be at most 4 MB as the Web Connector sends it, about 3 MB of qbXML; QuickBooks' answer over that isn't kept: this is null and `error.error_type` is `response_too_large`. A webhook whose body would be over 1 MB is sent without it: null, with `response_xml_omitted` true; fetch it from `links.self`.","type":"null","uniqueKey":"response_xml.oneOf.1","typeLabel":"null"}],"uniqueKey":"response_xml","typeLabel":"string | null"},"response_xml_omitted":{"description":"Present, and true, only when `response_xml` was left out to keep the body under 1 MB. `response_json` is still here; GET `links.self` for `response_xml`.","type":"boolean","uniqueKey":"response_xml_omitted","typeLabel":"boolean"}},"required":["app_id","app_name","sandbox","timestamp","id","page_request_id","state","response_json","error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"app_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","app_name":"\u003cstring>","error":{"debug_message":"\u003cstring>","error_code":123,"hresult":"\u003cstring>","message":"\u003cstring>","user_message":"\u003cstring>"},"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","page_request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","response_json":{"status":"success","data":{"discount_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123,"is_taxable":true,"rate_percent":123},"ship_address":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>","city":"\u003cstring>","country":"\u003cstring>","note":"\u003cstring>","postal_code":"\u003cstring>","state":"\u003cstring>"},"fob":"\u003cstring>","bill_address":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>","city":"\u003cstring>","country":"\u003cstring>","note":"\u003cstring>","postal_code":"\u003cstring>","state":"\u003cstring>"},"sales_receipt_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","inventory_site_location_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"inventory_site_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_taxable":true,"item_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"lot_number":"\u003cstring>","other1":"\u003cstring>","other2":"\u003cstring>","override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"rate":123,"rate_percent":123,"sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"serial_number":"\u003cstring>","service_date":"2023-12-25","tax_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"txn_number":123,"sales_tax_percentage":123,"total_amount_in_home_currency":123,"other":"\u003cstring>","sales_receipt_line_group_ret":[{"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","is_print_items_in_group":true,"item_group_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"sales_receipt_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","inventory_site_location_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"inventory_site_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_taxable":true,"item_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"lot_number":"\u003cstring>","other1":"\u003cstring>","other2":"\u003cstring>","override_uom_set_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"quantity":123,"rate":123,"rate_percent":123,"sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"serial_number":"\u003cstring>","service_date":"2023-12-25","tax_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"service_date":"2023-12-25","total_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"ship_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"time_modified":"2023-11-07T05:31:56Z","is_tax_included":true,"customer_sales_tax_code_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_to_be_printed":true,"is_pending":true,"ref_number":"\u003cstring>","txn_id":"\u003cstring>","deposit_to_account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"credit_card_txn_info":{"credit_card_txn_input_info":{"commercial_card_code":"\u003cstring>","credit_card_address":"\u003cstring>","credit_card_number":"\u003cstring>","credit_card_postal_code":"\u003cstring>","expiration_month":6,"expiration_year":123,"name_on_card":"\u003cstring>"},"credit_card_txn_result_info":{"authorization_code":"\u003cstring>","client_trans_id":"\u003cstring>","credit_card_trans_id":"\u003cstring>","merchant_account_number":"\u003cstring>","payment_grouping_code":123,"recon_batch_id":"\u003cstring>","result_code":123,"result_message":"\u003cstring>","txn_authorization_stamp":123,"txn_authorization_time":"2023-11-07T05:31:56Z"}},"check_number":"\u003cstring>","customer_msg_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"bill_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"customer_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"due_date":"2023-12-25","subtotal":123,"sales_tax_total":123,"time_created":"2023-11-07T05:31:56Z","edit_sequence":"\u003cstring>","sales_rep_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"sales_tax_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123,"rate_percent":123},"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"external_guid":"\u003cstring>","ship_method_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"shipping_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123},"memo":"\u003cstring>","currency_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"txn_date":"2023-12-25","item_sales_tax_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"is_to_be_emailed":true,"template_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"exchange_rate":123,"total_amount":123,"ship_date":"2023-12-25","payment_method_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"}},"message":"\u003cstring>"},"sandbox":true,"timestamp":123,"links":{"self":"\u003cstring>"},"page":123,"response_xml":"\u003cstring>","response_xml_omitted":true}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"7b01f4fc-5456-46ae-9489-a0e0c0320c46":{"description":"Received. Anything else is retried with backoff for about 8 hours.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{}}}}],"security":{"27e4ec77-558c-4616-ae6f-0159a16aa482":{"apiKey":{"description":"Use your app's API key as the username, and leave the password blank","scheme":"basic","type":"http","scopes":[],"schemeName":"apiKey"}}},"servers":{"acf84d29-d14b-4dd6-933f-31aa602dd68b":{"description":"v2 API","url":"https://qubesync.com/api/v2"},"b8836037-80c3-4a92-9378-766448db35bb":{"description":"Local development server","url":"https://dev.qubesync.com/api/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Use your app's API key as the username, and leave the password blank","scheme":"basic","type":"http","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Basic Auth","type":"object","description":"Use your app's API key as the username, and leave the password blank","isRequired":true,"properties":{"username":{"type":"string","uniqueKey":"username","isRequired":true,"typeLabel":"string","deprecated":false},"password":{"type":"string","uniqueKey":"password","isRequired":true,"typeLabel":"string","deprecated":false}},"additionalProperties":false,"deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/v2/openapi.json"},"subdomain":"qubesync","siteName":"QuBe Sync","title":"Update sales receipt - QuBe Sync","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T16:20:14.989Z","originalFileLocation":"api-reference/v2/sales-receipts/update-sales-receipt.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted. Modifies an existing Sales receipt. Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale. Intuit\u0026#x27;s reference: SalesReceiptMod.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QuBe Sync\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update sales receipt - QuBe Sync\">\u003cmeta data-mint-head property=\"og:description\" content=\"qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted. Modifies an existing Sales receipt. Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale. Intuit\u0026#x27;s reference: SalesReceiptMod.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QuBe Sync\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qubesync.mintlify.app/_mintlify/api/og/v2?division=Sales+Receipts\u0026amp;title=Update+sales+receipt\u0026amp;description=qbXML%3A+%60SalesReceiptModRq%60%2C+from+qbXML+5.0.+The+%60sales_receipt_mod%60+wrapper+from+qbXML+is+also+accepted.%0A%0AModifies+an+existing+Sales+receipt.%0A%0A**Important%3A**+In\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=9bcf8ce7aeb97fc64060f0f2e608e49301a422c70d4411eab80d87f2bdbaeeb6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update sales receipt - QuBe Sync\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted. Modifies an existing Sales receipt. Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale. Intuit\u0026#x27;s reference: SalesReceiptMod.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qubesync.mintlify.app/_mintlify/api/og/v2?division=Sales+Receipts\u0026amp;title=Update+sales+receipt\u0026amp;description=qbXML%3A+%60SalesReceiptModRq%60%2C+from+qbXML+5.0.+The+%60sales_receipt_mod%60+wrapper+from+qbXML+is+also+accepted.%0A%0AModifies+an+existing+Sales+receipt.%0A%0A**Important%3A**+In\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=9bcf8ce7aeb97fc64060f0f2e608e49301a422c70d4411eab80d87f2bdbaeeb6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/qubesync/GrEUn7G8W5QJHTqH/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QuBe Sync\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/v2/sales-receipts/update-sales-receipt.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qubesync.com/#organization\",\"name\":\"QuBe Sync\",\"url\":\"https://docs.qubesync.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qubesync/gN_APnIajnQKnywV/logo/full-light.png?fit=max\u0026auto=format\u0026n=gN_APnIajnQKnywV\u0026q=85\u0026s=0690db6248367802891c15bad08ae9e9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qubesync.com#website\",\"name\":\"QuBe Sync\",\"url\":\"https://docs.qubesync.com\",\"publisher\":{\"@id\":\"https://docs.qubesync.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt#webpage\",\"url\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt\",\"name\":\"Update sales receipt\",\"description\":\"qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted. Modifies an existing Sales receipt. Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale. Intuit's reference: SalesReceiptMod.\",\"dateModified\":\"2026-11-02T16:20:14.989Z\",\"isPartOf\":{\"@id\":\"https://docs.qubesync.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API v2\",\"item\":\"https://docs.qubesync.com/api-reference/v2/connections/list-connections\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sales Receipts\",\"item\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/list-sales-receipts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update sales receipt\",\"item\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt#apireference\",\"headline\":\"Update sales receipt\",\"name\":\"Update sales receipt\",\"description\":\"qbXML: SalesReceiptModRq, from qbXML 5.0. The sales_receipt_mod wrapper from qbXML is also accepted. Modifies an existing Sales receipt. Important: In a SalesReceiptMod request that contains credit card transaction data supplied from QBMS transaction responses, you can’t change the total amount recorded in the sale. Intuit's reference: SalesReceiptMod.\",\"url\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/sales-receipts/update-sales-receipt#webpage\"},\"dateModified\":\"2026-11-02T16:20:14.989Z\",\"publisher\":{\"@id\":\"https://docs.qubesync.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qubesync.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QuBe Sync\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QuBe Sync","nav":{"global":{"anchors":[{"anchor":"QuBe Sync Slack","icon":"slack","href":"https://qubeintegrations.slack.com"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference","sidebarTitle":"Introduction","icon":"book","href":"/api-reference/introduction"}]},{"group":"API v2","pages":[{"group":"Connections","pages":[{"title":"List connections","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections","href":"/api-reference/v2/connections/list-connections"},{"title":"Create a connection","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections","href":"/api-reference/v2/connections/create-a-connection"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}","href":"/api-reference/v2/connections/get-a-connection"},{"title":"Update a connection","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}","href":"/api-reference/v2/connections/update-a-connection"},{"title":"Remove a connection","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}","href":"/api-reference/v2/connections/remove-a-connection"},{"title":"Regenerate the onboarding URL","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/onboarding-url","href":"/api-reference/v2/connections/regenerate-the-onboarding-url"},{"title":"Generate or set a password","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/password","href":"/api-reference/v2/connections/generate-or-set-a-password"},{"title":"Get the QWC file","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/qwc","href":"/api-reference/v2/connections/get-the-qwc-file"},{"title":"Get the simulator's state","deprecated":null,"version":null,"tag":"Beta","openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/simulator","href":"/api-reference/v2/connections/get-the-simulators-state"},{"title":"Set simulator faults","deprecated":null,"version":null,"tag":"Beta","openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/simulator","href":"/api-reference/v2/connections/set-simulator-faults"},{"title":"Reset the simulator","deprecated":null,"version":null,"tag":"Beta","openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/simulator/reset","href":"/api-reference/v2/connections/reset-the-simulator"},{"title":"Run the simulator now","deprecated":null,"version":null,"tag":"Beta","openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/simulator/sync","href":"/api-reference/v2/connections/run-the-simulator-now"}]},{"group":"Queued Requests","pages":[{"title":"List queued requests","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/queued-requests","href":"/api-reference/v2/queued-requests/list-queued-requests"},{"title":"Queue a qbXML request","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/queued-requests","href":"/api-reference/v2/queued-requests/queue-a-qbxml-request"},{"title":"Get a queued request","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/queued-requests/{id}","href":"/api-reference/v2/queued-requests/get-a-queued-request"},{"title":"Discard a queued request","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/queued-requests/{id}/discard","href":"/api-reference/v2/queued-requests/discard-a-queued-request"},{"title":"List the pages of a multi-page (iterated) response","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/queued-requests/{id}/pages","href":"/api-reference/v2/queued-requests/list-the-pages-of-a-multi-page-iterated-response"}]},{"group":"Matching","pages":[{"title":"Match a name","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/matches","href":"/api-reference/v2/matching/match-a-name"},{"title":"Opt in to matching","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/name-index","href":"/api-reference/v2/matching/opt-in-to-matching"}]},{"group":"Workflows","pages":[{"title":"List workflow runs for a connection","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/workflow-runs","href":"/api-reference/v2/workflows/list-workflow-runs-for-a-connection"},{"title":"Start a workflow run","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/workflow-runs","href":"/api-reference/v2/workflows/start-a-workflow-run"},{"title":"Get a workflow run","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/workflow-runs/{run_id}","href":"/api-reference/v2/workflows/get-a-workflow-run"},{"title":"Delete a finished workflow run","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/workflow-runs/{run_id}","href":"/api-reference/v2/workflows/delete-a-finished-workflow-run"},{"title":"Cancel a workflow run","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/workflow-runs/{run_id}/cancel","href":"/api-reference/v2/workflows/cancel-a-workflow-run"},{"title":"Answer a run that is awaiting input","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/workflow-runs/{run_id}/decisions","href":"/api-reference/v2/workflows/answer-a-run-that-is-awaiting-input"},{"title":"A workflow run's event log","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/workflow-runs/{run_id}/events","href":"/api-reference/v2/workflows/a-workflow-runs-event-log"},{"title":"Resend a run's latest event","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/workflow-runs/{run_id}/redeliver","href":"/api-reference/v2/workflows/resend-a-runs-latest-event"},{"title":"Search for the record a question's field means","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/workflow-runs/{run_id}/search","href":"/api-reference/v2/workflows/search-for-the-record-a-questions-field-means"},{"title":"List workflow templates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflow-templates","href":"/api-reference/v2/workflows/list-workflow-templates"},{"title":"Get a workflow template","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflow-templates/{key}","href":"/api-reference/v2/workflows/get-a-workflow-template"},{"title":"Install a workflow template","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflow-templates/{key}/install","href":"/api-reference/v2/workflows/install-a-workflow-template"},{"title":"How to use a workflow template, before it's installed","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflow-templates/{key}/usage","href":"/api-reference/v2/workflows/how-to-use-a-workflow-template-before-its-installed"},{"title":"How to use a workflow template, as Markdown","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflow-templates/{key}/usage.md","href":"/api-reference/v2/workflows/how-to-use-a-workflow-template-as-markdown"},{"title":"List workflows","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows","href":"/api-reference/v2/workflows/list-workflows"},{"title":"The workflow chart JSON Schema","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/schema","href":"/api-reference/v2/workflows/the-workflow-chart-json-schema"},{"title":"The workflow chart JSON Schema, unauthenticated","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/schema.json","href":"/api-reference/v2/workflows/the-workflow-chart-json-schema-unauthenticated"},{"title":"Your workflows' input types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/types","href":"/api-reference/v2/workflows/your-workflows-input-types"},{"title":"Validate a chart without saving it","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/validate","href":"/api-reference/v2/workflows/validate-a-chart-without-saving-it"},{"title":"Get a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}","href":"/api-reference/v2/workflows/get-a-workflow"},{"title":"Create or replace a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /workflows/{key}","href":"/api-reference/v2/workflows/create-or-replace-a-workflow"},{"title":"Delete a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /workflows/{key}","href":"/api-reference/v2/workflows/delete-a-workflow"},{"title":"Publish the working copy","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/{key}/publish","href":"/api-reference/v2/workflows/publish-the-working-copy"},{"title":"Unpublish a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/{key}/unpublish","href":"/api-reference/v2/workflows/unpublish-a-workflow"},{"title":"How to use a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/usage","href":"/api-reference/v2/workflows/how-to-use-a-workflow"},{"title":"How to use a workflow, as Markdown","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/usage.md","href":"/api-reference/v2/workflows/how-to-use-a-workflow-as-markdown"},{"title":"A workflow's published versions","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/versions","href":"/api-reference/v2/workflows/a-workflows-published-versions"},{"title":"One published version","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/versions/{number}","href":"/api-reference/v2/workflows/one-published-version"}]},{"group":"Account Tax Line Infos","pages":[{"title":"List account tax line infos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/account-tax-line-infos","href":"/api-reference/v2/account-tax-line-infos/list-account-tax-line-infos"}]},{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/list-accounts"},{"title":"Update account","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/update-account"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/create-account"}]},{"group":"Aging Reports","pages":[{"title":"List aging reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/aging-reports","href":"/api-reference/v2/aging-reports/list-aging-reports"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/list-alerts"},{"title":"Create alert","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/create-alert"},{"title":"Delete alert","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/delete-alert"}]},{"group":"Ar Refund Credit Cards","pages":[{"title":"List ar refund credit cards","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/ar-refund-credit-cards","href":"/api-reference/v2/ar-refund-credit-cards/list-ar-refund-credit-cards"},{"title":"Create ar refund credit card","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/ar-refund-credit-cards","href":"/api-reference/v2/ar-refund-credit-cards/create-ar-refund-credit-card"}]},{"group":"Bar Codes","pages":[{"title":"List bar codes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bar-codes","href":"/api-reference/v2/bar-codes/list-bar-codes"}]},{"group":"Bill Payment Checks","pages":[{"title":"List bill payment checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/list-bill-payment-checks"},{"title":"Update bill payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/update-bill-payment-check"},{"title":"Create bill payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/create-bill-payment-check"}]},{"group":"Bill Payment Credit Cards","pages":[{"title":"List bill payment credit cards","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-payment-credit-cards","href":"/api-reference/v2/bill-payment-credit-cards/list-bill-payment-credit-cards"},{"title":"Create bill payment credit card","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bill-payment-credit-cards","href":"/api-reference/v2/bill-payment-credit-cards/create-bill-payment-credit-card"}]},{"group":"Bill To Pays","pages":[{"title":"List bill to pays","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-to-pays","href":"/api-reference/v2/bill-to-pays/list-bill-to-pays"}]},{"group":"Billing Rates","pages":[{"title":"List billing rates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/billing-rates","href":"/api-reference/v2/billing-rates/list-billing-rates"},{"title":"Create billing rate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/billing-rates","href":"/api-reference/v2/billing-rates/create-billing-rate"}]},{"group":"Bills","pages":[{"title":"List bills","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bills","href":"/api-reference/v2/bills/list-bills"},{"title":"Update bill","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/bills","href":"/api-reference/v2/bills/update-bill"},{"title":"Create bill","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bills","href":"/api-reference/v2/bills/create-bill"}]},{"group":"Budget Summary Reports","pages":[{"title":"List budget summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/budget-summary-reports","href":"/api-reference/v2/budget-summary-reports/list-budget-summary-reports"}]},{"group":"Build Assemblies","pages":[{"title":"List build assemblies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/list-build-assemblies"},{"title":"Update build assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/update-build-assembly"},{"title":"Create build assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/create-build-assembly"}]},{"group":"Charges","pages":[{"title":"List charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/charges","href":"/api-reference/v2/charges/list-charges"},{"title":"Update charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/charges","href":"/api-reference/v2/charges/update-charge"},{"title":"Create charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/charges","href":"/api-reference/v2/charges/create-charge"}]},{"group":"Checks","pages":[{"title":"List checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/checks","href":"/api-reference/v2/checks/list-checks"},{"title":"Update check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/checks","href":"/api-reference/v2/checks/update-check"},{"title":"Create check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/checks","href":"/api-reference/v2/checks/create-check"}]},{"group":"Classes","pages":[{"title":"List classes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/classes","href":"/api-reference/v2/classes/list-classes"},{"title":"Update class","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/classes","href":"/api-reference/v2/classes/update-class"},{"title":"Create class","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/classes","href":"/api-reference/v2/classes/create-class"}]},{"group":"Cleared Statuses","pages":[{"title":"Update cleared status","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/cleared-statuses","href":"/api-reference/v2/cleared-statuses/update-cleared-status"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/companies","href":"/api-reference/v2/companies/list-companies"}]},{"group":"Company Activities","pages":[{"title":"List company activities","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/company-activities","href":"/api-reference/v2/company-activities/list-company-activities"}]},{"group":"Credit Card Charges","pages":[{"title":"List credit card charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/list-credit-card-charges"},{"title":"Update credit card charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/update-credit-card-charge"},{"title":"Create credit card charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/create-credit-card-charge"}]},{"group":"Credit Card Credits","pages":[{"title":"List credit card credits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/list-credit-card-credits"},{"title":"Update credit card credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/update-credit-card-credit"},{"title":"Create credit card credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/create-credit-card-credit"}]},{"group":"Credit Memos","pages":[{"title":"List credit memos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/list-credit-memos"},{"title":"Update credit memo","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/update-credit-memo"},{"title":"Create credit memo","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/create-credit-memo"}]},{"group":"Currencies","pages":[{"title":"List currencies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/list-currencies"},{"title":"Update currency","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/update-currency"},{"title":"Create currency","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/create-currency"}]},{"group":"Custom Detail Reports","pages":[{"title":"List custom detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/custom-detail-reports","href":"/api-reference/v2/custom-detail-reports/list-custom-detail-reports"}]},{"group":"Custom Summary Reports","pages":[{"title":"List custom summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/custom-summary-reports","href":"/api-reference/v2/custom-summary-reports/list-custom-summary-reports"}]},{"group":"Customer Msgs","pages":[{"title":"List customer msgs","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customer-msgs","href":"/api-reference/v2/customer-msgs/list-customer-msgs"},{"title":"Create customer msg","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customer-msgs","href":"/api-reference/v2/customer-msgs/create-customer-msg"}]},{"group":"Customer Types","pages":[{"title":"List customer types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customer-types","href":"/api-reference/v2/customer-types/list-customer-types"},{"title":"Create customer type","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customer-types","href":"/api-reference/v2/customer-types/create-customer-type"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customers","href":"/api-reference/v2/customers/list-customers"},{"title":"Update customer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/customers","href":"/api-reference/v2/customers/update-customer"},{"title":"Create customer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customers","href":"/api-reference/v2/customers/create-customer"}]},{"group":"Data Event Recovery Infos","pages":[{"title":"List data event recovery infos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/data-event-recovery-infos","href":"/api-reference/v2/data-event-recovery-infos/list-data-event-recovery-infos"},{"title":"Delete data event recovery info","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-event-recovery-infos","href":"/api-reference/v2/data-event-recovery-infos/delete-data-event-recovery-info"}]},{"group":"Data Ext Defs","pages":[{"title":"List data ext defs","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/list-data-ext-defs"},{"title":"Update data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/update-data-ext-def"},{"title":"Create data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/create-data-ext-def"},{"title":"Delete data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/delete-data-ext-def"}]},{"group":"Data Exts","pages":[{"title":"Update data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/update-data-ext"},{"title":"Create data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/create-data-ext"},{"title":"Delete data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/delete-data-ext"}]},{"group":"Date Driven Terms","pages":[{"title":"List date driven terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/date-driven-terms","href":"/api-reference/v2/date-driven-terms/list-date-driven-terms"},{"title":"Create date driven terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/date-driven-terms","href":"/api-reference/v2/date-driven-terms/create-date-driven-terms"}]},{"group":"Deposits","pages":[{"title":"List deposits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/list-deposits"},{"title":"Update deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/update-deposit"},{"title":"Create deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/create-deposit"}]},{"group":"Employee Defaults","pages":[{"title":"List employee defaults","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/employee-defaults","href":"/api-reference/v2/employee-defaults/list-employee-defaults"},{"title":"Update employee default","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/employee-defaults","href":"/api-reference/v2/employee-defaults/update-employee-default"}]},{"group":"Employees","pages":[{"title":"List employees","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/employees","href":"/api-reference/v2/employees/list-employees"},{"title":"Update employee","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/employees","href":"/api-reference/v2/employees/update-employee"},{"title":"Create employee","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/employees","href":"/api-reference/v2/employees/create-employee"}]},{"group":"Entities","pages":[{"title":"List entities","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/entities","href":"/api-reference/v2/entities/list-entities"}]},{"group":"Estimates","pages":[{"title":"List estimates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/list-estimates"},{"title":"Update estimate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/update-estimate"},{"title":"Create estimate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/create-estimate"}]},{"group":"Form1099 Category Account Mappings","pages":[{"title":"List form1099 category account mappings","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/form1099-category-account-mappings","href":"/api-reference/v2/form1099-category-account-mappings/list-form1099-category-account-mappings"},{"title":"Update form1099 category account mapping","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/form1099-category-account-mappings","href":"/api-reference/v2/form1099-category-account-mappings/update-form1099-category-account-mapping"}]},{"group":"General Detail Reports","pages":[{"title":"List general detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/general-detail-reports","href":"/api-reference/v2/general-detail-reports/list-general-detail-reports"}]},{"group":"General Summary Reports","pages":[{"title":"List general summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/general-summary-reports","href":"/api-reference/v2/general-summary-reports/list-general-summary-reports"}]},{"group":"Hosts","pages":[{"title":"List hosts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/hosts","href":"/api-reference/v2/hosts/list-hosts"}]},{"group":"Inventory Adjustments","pages":[{"title":"List inventory adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/list-inventory-adjustments"},{"title":"Update inventory adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/update-inventory-adjustment"},{"title":"Create inventory adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/create-inventory-adjustment"}]},{"group":"Inventory Sites","pages":[{"title":"List inventory sites","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/list-inventory-sites"},{"title":"Update inventory site","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/update-inventory-site"},{"title":"Create inventory site","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/create-inventory-site"}]},{"group":"Invoices","pages":[{"title":"List invoices","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/list-invoices"},{"title":"Update invoice","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/update-invoice"},{"title":"Create invoice","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/create-invoice"}]},{"group":"Item Assemblies Can Builds","pages":[{"title":"List item assemblies can builds","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-assemblies-can-builds","href":"/api-reference/v2/item-assemblies-can-builds/list-item-assemblies-can-builds"}]},{"group":"Item Discounts","pages":[{"title":"List item discounts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/list-item-discounts"},{"title":"Update item discount","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/update-item-discount"},{"title":"Create item discount","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/create-item-discount"}]},{"group":"Item Fixed Assets","pages":[{"title":"List item fixed assets","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/list-item-fixed-assets"},{"title":"Update item fixed asset","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/update-item-fixed-asset"},{"title":"Create item fixed asset","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/create-item-fixed-asset"}]},{"group":"Item Groups","pages":[{"title":"List item groups","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/list-item-groups"},{"title":"Update item group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/update-item-group"},{"title":"Create item group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/create-item-group"}]},{"group":"Item Inventories","pages":[{"title":"List item inventories","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/list-item-inventories"},{"title":"Update item inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/update-item-inventory"},{"title":"Create item inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/create-item-inventory"}]},{"group":"Item Inventory Assemblies","pages":[{"title":"List item inventory assemblies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/list-item-inventory-assemblies"},{"title":"Update item inventory assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/update-item-inventory-assembly"},{"title":"Create item inventory assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/create-item-inventory-assembly"}]},{"group":"Item Non Inventories","pages":[{"title":"List item non inventories","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/list-item-non-inventories"},{"title":"Update item non inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/update-item-non-inventory"},{"title":"Create item non inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/create-item-non-inventory"}]},{"group":"Item Other Charges","pages":[{"title":"List item other charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/list-item-other-charges"},{"title":"Update item other charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/update-item-other-charge"},{"title":"Create item other charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/create-item-other-charge"}]},{"group":"Item Payments","pages":[{"title":"List item payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/list-item-payments"},{"title":"Update item payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/update-item-payment"},{"title":"Create item payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/create-item-payment"}]},{"group":"Item Receipts","pages":[{"title":"List item receipts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/list-item-receipts"},{"title":"Update item receipt","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/update-item-receipt"},{"title":"Create item receipt","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/create-item-receipt"}]},{"group":"Item Sales Tax Groups","pages":[{"title":"List item sales tax groups","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/list-item-sales-tax-groups"},{"title":"Update item sales tax group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/update-item-sales-tax-group"},{"title":"Create item sales tax group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/create-item-sales-tax-group"}]},{"group":"Item Sales Taxes","pages":[{"title":"List item sales taxes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/list-item-sales-taxes"},{"title":"Update item sales tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/update-item-sales-tax"},{"title":"Create item sales tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/create-item-sales-tax"}]},{"group":"Item Services","pages":[{"title":"List item services","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/list-item-services"},{"title":"Update item service","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/update-item-service"},{"title":"Create item service","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/create-item-service"}]},{"group":"Item Sites","pages":[{"title":"List item sites","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sites","href":"/api-reference/v2/item-sites/list-item-sites"}]},{"group":"Item Subtotals","pages":[{"title":"List item subtotals","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/list-item-subtotals"},{"title":"Update item subtotal","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/update-item-subtotal"},{"title":"Create item subtotal","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/create-item-subtotal"}]},{"group":"Items","pages":[{"title":"List items","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/items","href":"/api-reference/v2/items/list-items"}]},{"group":"Job Reports","pages":[{"title":"List job reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/job-reports","href":"/api-reference/v2/job-reports/list-job-reports"}]},{"group":"Job Types","pages":[{"title":"List job types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/job-types","href":"/api-reference/v2/job-types/list-job-types"},{"title":"Create job type","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/job-types","href":"/api-reference/v2/job-types/create-job-type"}]},{"group":"Journal Entries","pages":[{"title":"List journal entries","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/list-journal-entries"},{"title":"Update journal entry","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/update-journal-entry"},{"title":"Create journal entry","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/create-journal-entry"}]},{"group":"Leads","pages":[{"title":"List leads","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/leads","href":"/api-reference/v2/leads/list-leads"},{"title":"Update lead","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/leads","href":"/api-reference/v2/leads/update-lead"},{"title":"Create lead","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/leads","href":"/api-reference/v2/leads/create-lead"}]},{"group":"List Deleteds","pages":[{"title":"List list deleteds","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/list-deleteds","href":"/api-reference/v2/list-deleteds/list-list-deleteds"}]},{"group":"List Displays","pages":[{"title":"Update list display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/list-displays","href":"/api-reference/v2/list-displays/update-list-display"},{"title":"Create list display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/list-displays","href":"/api-reference/v2/list-displays/create-list-display"}]},{"group":"List Merge","pages":[{"title":"Execute list merge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/list-merge","href":"/api-reference/v2/list-merge/execute-list-merge"}]},{"group":"Lists","pages":[{"title":"Delete list","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/lists","href":"/api-reference/v2/lists/delete-list"}]},{"group":"Other Names","pages":[{"title":"List other names","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/list-other-names"},{"title":"Update other name","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/update-other-name"},{"title":"Create other name","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/create-other-name"}]},{"group":"Paychecks","pages":[{"title":"List paychecks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/paychecks","href":"/api-reference/v2/paychecks/list-paychecks"}]},{"group":"Payment Methods","pages":[{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payment-methods","href":"/api-reference/v2/payment-methods/list-payment-methods"},{"title":"Create payment method","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payment-methods","href":"/api-reference/v2/payment-methods/create-payment-method"}]},{"group":"Payments","pages":[{"title":"Record payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payments","href":"/api-reference/v2/payments/record-payment"}]},{"group":"Payroll Detail Reports","pages":[{"title":"List payroll detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-detail-reports","href":"/api-reference/v2/payroll-detail-reports/list-payroll-detail-reports"}]},{"group":"Payroll Item Additions","pages":[{"title":"Update payroll item addition","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-additions","href":"/api-reference/v2/payroll-item-additions/update-payroll-item-addition"},{"title":"Create payroll item addition","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-additions","href":"/api-reference/v2/payroll-item-additions/create-payroll-item-addition"}]},{"group":"Payroll Item Company Contributions","pages":[{"title":"Update payroll item company contribution","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-company-contributions","href":"/api-reference/v2/payroll-item-company-contributions/update-payroll-item-company-contribution"},{"title":"Create payroll item company contribution","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-company-contributions","href":"/api-reference/v2/payroll-item-company-contributions/create-payroll-item-company-contribution"}]},{"group":"Payroll Item Deductions","pages":[{"title":"Update payroll item deduction","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-deductions","href":"/api-reference/v2/payroll-item-deductions/update-payroll-item-deduction"},{"title":"Create payroll item deduction","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-deductions","href":"/api-reference/v2/payroll-item-deductions/create-payroll-item-deduction"}]},{"group":"Payroll Item Direct Deposits","pages":[{"title":"Update payroll item direct deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-direct-deposits","href":"/api-reference/v2/payroll-item-direct-deposits/update-payroll-item-direct-deposit"},{"title":"Create payroll item direct deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-direct-deposits","href":"/api-reference/v2/payroll-item-direct-deposits/create-payroll-item-direct-deposit"}]},{"group":"Payroll Item Non Wages","pages":[{"title":"List payroll item non wages","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-item-non-wages","href":"/api-reference/v2/payroll-item-non-wages/list-payroll-item-non-wages"}]},{"group":"Payroll Item Taxes","pages":[{"title":"Update payroll item tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-taxes","href":"/api-reference/v2/payroll-item-taxes/update-payroll-item-tax"},{"title":"Create payroll item tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-taxes","href":"/api-reference/v2/payroll-item-taxes/create-payroll-item-tax"}]},{"group":"Payroll Item Wages","pages":[{"title":"List payroll item wages","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/list-payroll-item-wages"},{"title":"Update payroll item wage","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/update-payroll-item-wage"},{"title":"Create payroll item wage","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/create-payroll-item-wage"}]},{"group":"Payroll Item Workers Compensations","pages":[{"title":"Update payroll item workers compensation","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-workers-compensations","href":"/api-reference/v2/payroll-item-workers-compensations/update-payroll-item-workers-compensation"},{"title":"Create payroll item workers compensation","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-workers-compensations","href":"/api-reference/v2/payroll-item-workers-compensations/create-payroll-item-workers-compensation"}]},{"group":"Payroll Items","pages":[{"title":"List payroll items","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-items","href":"/api-reference/v2/payroll-items/list-payroll-items"}]},{"group":"Payroll Last Periods","pages":[{"title":"List payroll last periods","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-last-periods","href":"/api-reference/v2/payroll-last-periods/list-payroll-last-periods"}]},{"group":"Payroll Liability Adjustments","pages":[{"title":"List payroll liability adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-liability-adjustments","href":"/api-reference/v2/payroll-liability-adjustments/list-payroll-liability-adjustments"},{"title":"Create payroll liability adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-liability-adjustments","href":"/api-reference/v2/payroll-liability-adjustments/create-payroll-liability-adjustment"}]},{"group":"Payroll Liability Checks","pages":[{"title":"List payroll liability checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-liability-checks","href":"/api-reference/v2/payroll-liability-checks/list-payroll-liability-checks"}]},{"group":"Payroll Prior Payments","pages":[{"title":"List payroll prior payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-prior-payments","href":"/api-reference/v2/payroll-prior-payments/list-payroll-prior-payments"},{"title":"Create payroll prior payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-prior-payments","href":"/api-reference/v2/payroll-prior-payments/create-payroll-prior-payment"}]},{"group":"Payroll Summary Reports","pages":[{"title":"List payroll summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-summary-reports","href":"/api-reference/v2/payroll-summary-reports/list-payroll-summary-reports"}]},{"group":"Payroll Year To Date Adjustments","pages":[{"title":"List payroll year to date adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-year-to-date-adjustments","href":"/api-reference/v2/payroll-year-to-date-adjustments/list-payroll-year-to-date-adjustments"},{"title":"Create payroll year to date adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-year-to-date-adjustments","href":"/api-reference/v2/payroll-year-to-date-adjustments/create-payroll-year-to-date-adjustment"}]},{"group":"Preferences","pages":[{"title":"List preferences","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/preferences","href":"/api-reference/v2/preferences/list-preferences"},{"title":"Update preferences","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/preferences","href":"/api-reference/v2/preferences/update-preferences"}]},{"group":"Price Levels","pages":[{"title":"List price levels","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/list-price-levels"},{"title":"Update price level","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/update-price-level"},{"title":"Create price level","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/create-price-level"}]},{"group":"Purchase Orders","pages":[{"title":"List purchase orders","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/list-purchase-orders"},{"title":"Update purchase order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/update-purchase-order"},{"title":"Create purchase order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/create-purchase-order"}]},{"group":"Qb Command Exec","pages":[{"title":"Execute QB command exec","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/qb-command-exec","href":"/api-reference/v2/qb-command-exec/execute-qb-command-exec"}]},{"group":"Receive Payment To Deposits","pages":[{"title":"List receive payment to deposits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/receive-payment-to-deposits","href":"/api-reference/v2/receive-payment-to-deposits/list-receive-payment-to-deposits"}]},{"group":"Receive Payments","pages":[{"title":"List receive payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/receive-payments","href":"/api-reference/v2/receive-payments/list-receive-payments"},{"title":"Update receive payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/receive-payments","href":"/api-reference/v2/receive-payments/update-receive-payment"}]},{"group":"Sales Orders","pages":[{"title":"List sales orders","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/list-sales-orders"},{"title":"Update sales order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/update-sales-order"},{"title":"Create sales order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/create-sales-order"}]},{"group":"Sales Receipts","pages":[{"title":"List sales receipts","description":"qbXML: `SalesReceiptQueryRq`.\n\nQueries for the specified sales receipt or set of receipts.\n\nIntuit's reference: [SalesReceiptQuery](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptquery).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-receipts","href":"/api-reference/v2/sales-receipts/list-sales-receipts"},{"title":"Update sales receipt","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-receipts","href":"/api-reference/v2/sales-receipts/update-sales-receipt"},{"title":"Create sales receipt","description":"qbXML: `SalesReceiptAddRq`. The `sales_receipt_add` wrapper from qbXML is also accepted.\n\nAdds a sales receipt: a sale paid in full when it was made, by cash, check or card. If the customer pays later, add an invoice instead and record the payment when it arrives. The money goes to `deposit_to_account_ref`. `customer_ref` is optional. Card details sent in `credit_card_txn_info` come back in the answer only if the app may see sensitive data.\n\nFor example, even if credit card data is supplied in the SalesReceiptAdd request via the `credit_card_txn_info` aggregate, the response won’t contain the corresponding aggregate.\n\nSales receipts are used to record point-of-sale payments. Sales receipts include payments by cash, check, or credit card. Note: If full payment isn’t received at the time of the sale, don’t use a sales receipt. Instead, use an invoice transaction and record the partial payment using a payment item.\n\n**Important:** In a SalesReceiptAdd or ReceivePaymentAdd request that contains credit card transaction data supplied from QBMS transaction responses, you must specify the payment method (using the `payment_method_ref` aggregate).\n\nSee also: [Inventory costing](https://docs.qubesync.com/quickbooks-notes#inventory-costing), [Line item taxes](https://docs.qubesync.com/quickbooks-notes#line-item-taxes).\n\nIntuit's reference: [SalesReceiptAdd](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/salesreceiptadd).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-receipts","href":"/api-reference/v2/sales-receipts/create-sales-receipt"}]},{"group":"Sales Reps","pages":[{"title":"List sales reps","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-reps","href":"/api-reference/v2/sales-reps/list-sales-reps"},{"title":"Update sales rep","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-reps","href":"/api-reference/v2/sales-reps/update-sales-rep"},{"title":"Create sales rep","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-reps","href":"/api-reference/v2/sales-reps/create-sales-rep"}]},{"group":"Sales Tax Codes","pages":[{"title":"List sales tax codes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-tax-codes","href":"/api-reference/v2/sales-tax-codes/list-sales-tax-codes"},{"title":"Update sales tax code","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-tax-codes","href":"/api-reference/v2/sales-tax-codes/update-sales-tax-code"},{"title":"Create sales tax code","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-tax-codes","href":"/api-reference/v2/sales-tax-codes/create-sales-tax-code"}]},{"group":"Sales Tax Payables","pages":[{"title":"List sales tax payables","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-tax-payables","href":"/api-reference/v2/sales-tax-payables/list-sales-tax-payables"}]},{"group":"Sales Tax Payment Checks","pages":[{"title":"List sales tax payment checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-tax-payment-checks","href":"/api-reference/v2/sales-tax-payment-checks/list-sales-tax-payment-checks"},{"title":"Update sales tax payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-tax-payment-checks","href":"/api-reference/v2/sales-tax-payment-checks/update-sales-tax-payment-check"},{"title":"Create sales tax payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-tax-payment-checks","href":"/api-reference/v2/sales-tax-payment-checks/create-sales-tax-payment-check"}]},{"group":"Sales Tax Return Lines","pages":[{"title":"List sales tax return lines","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-tax-return-lines","href":"/api-reference/v2/sales-tax-return-lines/list-sales-tax-return-lines"}]},{"group":"Sales Tax Returns","pages":[{"title":"List sales tax returns","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-tax-returns","href":"/api-reference/v2/sales-tax-returns/list-sales-tax-returns"}]},{"group":"Ship Methods","pages":[{"title":"List ship methods","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/ship-methods","href":"/api-reference/v2/ship-methods/list-ship-methods"},{"title":"Create ship method","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/ship-methods","href":"/api-reference/v2/ship-methods/create-ship-method"}]},{"group":"Special Accounts","pages":[{"title":"Create special account","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/special-accounts","href":"/api-reference/v2/special-accounts/create-special-account"}]},{"group":"Special Items","pages":[{"title":"Create special item","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/special-items","href":"/api-reference/v2/special-items/create-special-item"}]},{"group":"Standard Terms","pages":[{"title":"List standard terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/standard-terms","href":"/api-reference/v2/standard-terms/list-standard-terms"},{"title":"Create standard terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/standard-terms","href":"/api-reference/v2/standard-terms/create-standard-terms"}]},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/templates","href":"/api-reference/v2/templates/list-templates"}]},{"group":"Terms","pages":[{"title":"List terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/terms","href":"/api-reference/v2/terms/list-terms"}]},{"group":"Time Reports","pages":[{"title":"List time reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/time-reports","href":"/api-reference/v2/time-reports/list-time-reports"}]},{"group":"Time Trackings","pages":[{"title":"List time trackings","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/time-trackings","href":"/api-reference/v2/time-trackings/list-time-trackings"},{"title":"Update time tracking","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/time-trackings","href":"/api-reference/v2/time-trackings/update-time-tracking"},{"title":"Create time tracking","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/time-trackings","href":"/api-reference/v2/time-trackings/create-time-tracking"}]},{"group":"To Dos","pages":[{"title":"List to dos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/to-dos","href":"/api-reference/v2/to-dos/list-to-dos"},{"title":"Update to do","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/to-dos","href":"/api-reference/v2/to-dos/update-to-do"},{"title":"Create to do","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/to-dos","href":"/api-reference/v2/to-dos/create-to-do"}]},{"group":"Transactions","pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/transactions","href":"/api-reference/v2/transactions/list-transactions"}]},{"group":"Transfer Inventories","pages":[{"title":"List transfer inventories","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/transfer-inventories","href":"/api-reference/v2/transfer-inventories/list-transfer-inventories"},{"title":"Update transfer inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/transfer-inventories","href":"/api-reference/v2/transfer-inventories/update-transfer-inventory"},{"title":"Create transfer inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/transfer-inventories","href":"/api-reference/v2/transfer-inventories/create-transfer-inventory"}]},{"group":"Transfers","pages":[{"title":"List transfers","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/transfers","href":"/api-reference/v2/transfers/list-transfers"},{"title":"Update transfer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/transfers","href":"/api-reference/v2/transfers/update-transfer"},{"title":"Create transfer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/transfers","href":"/api-reference/v2/transfers/create-transfer"}]},{"group":"Txn Deleteds","pages":[{"title":"List txn deleteds","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/txn-deleteds","href":"/api-reference/v2/txn-deleteds/list-txn-deleteds"}]},{"group":"Txn Displays","pages":[{"title":"Update txn display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/txn-displays","href":"/api-reference/v2/txn-displays/update-txn-display"},{"title":"Create txn display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/txn-displays","href":"/api-reference/v2/txn-displays/create-txn-display"}]},{"group":"Txn Void","pages":[{"title":"Execute txn void","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/txn-void","href":"/api-reference/v2/txn-void/execute-txn-void"}]},{"group":"Txns","pages":[{"title":"Delete txn","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/txns","href":"/api-reference/v2/txns/delete-txn"}]},{"group":"Unit Of Measure Sets","pages":[{"title":"List unit of measure sets","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/unit-of-measure-sets","href":"/api-reference/v2/unit-of-measure-sets/list-unit-of-measure-sets"},{"title":"Create unit of measure set","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/unit-of-measure-sets","href":"/api-reference/v2/unit-of-measure-sets/create-unit-of-measure-set"}]},{"group":"Vehicle Mileages","pages":[{"title":"List vehicle mileages","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/vehicle-mileages","href":"/api-reference/v2/vehicle-mileages/list-vehicle-mileages"},{"title":"Create vehicle mileage","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/vehicle-mileages","href":"/api-reference/v2/vehicle-mileages/create-vehicle-mileage"}]},{"group":"Vehicles","pages":[{"title":"List vehicles","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/vehicles","href":"/api-reference/v2/vehicles/list-vehicles"},{"title":"Update vehicle","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/vehicles","href":"/api-reference/v2/vehicles/update-vehicle"},{"title":"Create vehicle","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/vehicles","href":"/api-reference/v2/vehicles/create-vehicle"}]},{"group":"Vendor Credits","pages":[{"title":"List vendor credits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/vendor-credits","href":"/api-reference/v2/vendor-credits/list-vendor-credits"},{"title":"Update vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/vendor-credits","href":"/api-reference/v2/vendor-credits/update-vendor-credit"},{"title":"Create vendor credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/vendor-credits","href":"/api-reference/v2/vendor-credits/create-vendor-credit"}]},{"group":"Vendor Types","pages":[{"title":"List vendor types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/vendor-types","href":"/api-reference/v2/vendor-types/list-vendor-types"},{"title":"Create vendor type","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/vendor-types","href":"/api-reference/v2/vendor-types/create-vendor-type"}]},{"group":"Vendors","pages":[{"title":"List vendors","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/vendors","href":"/api-reference/v2/vendors/list-vendors"},{"title":"Update vendor","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/vendors","href":"/api-reference/v2/vendors/update-vendor"},{"title":"Create vendor","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/vendors","href":"/api-reference/v2/vendors/create-vendor"}]},{"group":"Workers Comp Codes","pages":[{"title":"List workers comp codes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/workers-comp-codes","href":"/api-reference/v2/workers-comp-codes/list-workers-comp-codes"},{"title":"Update workers comp code","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/workers-comp-codes","href":"/api-reference/v2/workers-comp-codes/update-workers-comp-code"},{"title":"Create workers comp code","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/workers-comp-codes","href":"/api-reference/v2/workers-comp-codes/create-workers-comp-code"}]}]},{"group":"API v1 (legacy)","pages":[{"group":"Connections","pages":[{"title":"List all connections","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections","href":"/api-reference/v1/connections/list-all-connections"},{"title":"Create a new connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections","href":"/api-reference/v1/connections/create-a-new-connection"},{"title":"Get connection by ID","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}","href":"/api-reference/v1/connections/get-connection-by-id"},{"title":"Delete a connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json delete /connections/{connection_id}","href":"/api-reference/v1/connections/delete-a-connection"},{"title":"Generate or set password for a connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/password","href":"/api-reference/v1/connections/generate-or-set-password-for-a-connection"},{"title":"Get QWC file for a connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/qwc","href":"/api-reference/v1/connections/get-qwc-file-for-a-connection"},{"title":"Regenerate onboarding URL for a connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/onboarding_url","href":"/api-reference/v1/connections/regenerate-onboarding-url-for-a-connection"}]},{"group":"Queued Requests","pages":[{"title":"List queued requests for a connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/queued_requests","href":"/api-reference/v1/queued-requests/list-queued-requests-for-a-connection"},{"title":"Queue a new request","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/queued_requests","href":"/api-reference/v1/queued-requests/queue-a-new-request"},{"title":"Get queued request by ID","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /queued_requests/{request_id}","href":"/api-reference/v1/queued-requests/get-queued-request-by-id"},{"title":"Delete a queued request","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json delete /queued_requests/{request_id}","href":"/api-reference/v1/queued-requests/delete-a-queued-request"}]},{"group":"Pre-built Queries","pages":[{"title":"Query Customers","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/customers","href":"/api-reference/v1/pre-built-queries/query-customers"},{"title":"Create Customer","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/customers","href":"/api-reference/v1/pre-built-queries/create-customer"},{"title":"Query Invoices","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/invoices","href":"/api-reference/v1/pre-built-queries/query-invoices"},{"title":"Create Invoice","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/invoices","href":"/api-reference/v1/pre-built-queries/create-invoice"},{"title":"Query Credit Memos","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/credit_memos","href":"/api-reference/v1/pre-built-queries/query-credit-memos"},{"title":"Create Credit Memo","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/credit_memos","href":"/api-reference/v1/pre-built-queries/create-credit-memo"},{"title":"Modify Data Extension","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json post /connections/{connection_id}/data_ext_mods","href":"/api-reference/v1/pre-built-queries/modify-data-extension"},{"title":"Query Vendors","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/vendors","href":"/api-reference/v1/pre-built-queries/query-vendors"},{"title":"Query Sales Orders","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/sales_orders","href":"/api-reference/v1/pre-built-queries/query-sales-orders"},{"title":"Query Items","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/items","href":"/api-reference/v1/pre-built-queries/query-items"},{"title":"Query Sales Tax Items","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/sales_tax_items","href":"/api-reference/v1/pre-built-queries/query-sales-tax-items"},{"title":"Query Sales Tax Codes","deprecated":null,"version":null,"openapi":"/api-reference/v1/openapi.json get /connections/{connection_id}/sales_tax_codes","href":"/api-reference/v1/pre-built-queries/query-sales-tax-codes"}]}]}]}]},"basePath":"","title":"Update sales receipt - QuBe Sync","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}