{
"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"
]
}
}
Invoices
List invoices
qbXML: InvoiceQueryRq.
Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice’s applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results.
{
"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.
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.
Use the meta_data attribute to control whether query responses include counts. Options are NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus objects). Counts are approximate and may vary slightly if records are created or deleted during processing.
Page through every match: QuBe Sync asks QuickBooks for each page in turn and sends each to your webhook_url as it arrives, all with the same id. On by default, with pages of 100 records (25 with include_line_items or include_linked_txns); send iterator=true with max_returned for another size. Off when you send iterator=false (every match in one answer) or max_returned alone (at most that many, in one answer). It pages a filtered query only: with ref_number, ref_number_case_sensitive or txn_id every match comes back in one answer, so leave iterator out.
Filters according to the account name or list_id. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for full_name and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
This filter allows you to omit line items from a query response to get a smaller result. The default value is false, so line items are omitted by default. Set include_line_items to true to include line items in the response if you don’t mind getting a larger result.
If you set include_linked_txns to true, then the returned object will include a list of all the transactions linked to the queried object. (This list is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items.) Each linked transaction will be represented by a linked_txn aggregate.
Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the meta_data query attribute.) If you include a max_returned value, it must be at least 1.
The page size, with iterator=true. Sent without iterator, or with iterator=false, it's a cap instead: at most this many records come back, in one answer, and QuickBooks doesn't say whether more matched.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Filters according to the dates when transactions were last modified. The modified_date_range_filter aggregate isn’t required to contain any elements, but if it is empty, we recommend that you leave it out altogether. Note that the time portion of the from_modified_date and to_modified_date fields wasn’t supported in qbXML version 1.0 or 1.1.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Allows you to filter for transactions according to whether or not they are paid.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
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.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Filters by ref_number range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Filters by ref_number range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
Filters according to the original transaction dates.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
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.
Choose at most one of: txn_id, or ref_number, or ref_number_case_sensitive, or the set (account_filter, currency_filter, entity_filter, max_returned, modified_date_range_filter, paid_status, ref_number_filter, ref_number_range_filter, txn_date_range_filter). Members of a set combine with each other, not with the other choices.
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.
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.
Maximum string length: 2048
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/invoices/list-invoices","slug":"/api-reference/v2/invoices/list-invoices","pageMetadata":{"title":"List invoices","description":"qbXML: `InvoiceQueryRq`.\n\nFinds invoices: exact ones by `txn_id` or `ref_number`, or a filtered set by customer (`entity_filter`), date, account or `paid_status`. Lines come back only with `include_line_items`, and the payments and credits applied to each invoice only with `include_linked_txns`. An invoice's applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set `iterator` to page through many results.\n\nIntuit's reference: [InvoiceQuery](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/invoicequery).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/list-invoices","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 ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"qbXML: \", _jsx(_components.code, {\n children: \"InvoiceQueryRq\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Finds invoices: exact ones by \", _jsx(_components.code, {\n children: \"txn_id\"\n }), \" or \", _jsx(_components.code, {\n children: \"ref_number\"\n }), \", or a filtered set by customer (\", _jsx(_components.code, {\n children: \"entity_filter\"\n }), \"), date, account or \", _jsx(_components.code, {\n children: \"paid_status\"\n }), \". Lines come back only with \", _jsx(_components.code, {\n children: \"include_line_items\"\n }), \", and the payments and credits applied to each invoice only with \", _jsx(_components.code, {\n children: \"include_linked_txns\"\n }), \". An invoice’s applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set \", _jsx(_components.code, {\n children: \"iterator\"\n }), \" to page through many results.\"]\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/invoicequery\",\n children: \"InvoiceQuery\"\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":"List invoices","description":"qbXML: `InvoiceQueryRq`.\n\nFinds invoices: exact ones by `txn_id` or `ref_number`, or a filtered set by customer (`entity_filter`), date, account or `paid_status`. Lines come back only with `include_line_items`, and the payments and credits applied to each invoice only with `include_linked_txns`. An invoice's applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set `iterator` to page through many results.\n\nIntuit's reference: [InvoiceQuery](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/invoicequery).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/list-invoices","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"callbacks":{"answered":"8cf0c726-5435-4ec3-98ba-a36abe05c438"},"description":"qbXML: `InvoiceQueryRq`.\n\nFinds invoices: exact ones by `txn_id` or `ref_number`, or a filtered set by customer (`entity_filter`), date, account or `paid_status`. Lines come back only with `include_line_items`, and the payments and credits applied to each invoice only with `include_linked_txns`. An invoice's applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set `iterator` to page through many results.\n\nIntuit's reference: [InvoiceQuery](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/invoicequery).","operationId":"listInvoices","parameters":["8c07c6ba-2b3f-4928-ad97-14beee9fe57e","93906088-1a6b-4b34-a8a6-83fdfea44650","a30a863d-98e3-4a32-96ca-4fc27a97cc7d","be1de23e-bc94-42de-8137-88083e88cb39","27ce81e0-4f06-41a2-bae2-dd4c5c80c1ff","92172bca-49b9-493e-ad89-fb7fdaf7fd75","c823d30f-0a06-44ad-adcf-a7c111144a6f","0fc0f454-a9f7-4624-bdb6-64341743307b","fe31eced-9d45-4a8b-b337-c56a068fe997","ef03e2e1-5aa3-4fe1-8595-414699857323","939bc0d1-b106-4fc6-a599-d10065bf71ae","9c1525b6-6a62-4b52-af7b-31a46a197b8b","784cfe63-8239-40e7-89a1-c226f0c80d24","a2df3b61-fd1d-40f3-808c-359c9be15e6c","19d3588c-fb10-4707-8b65-419ee32e270a","05f55bde-d790-4999-936a-d4b014cec3fb","f164b379-86c2-4a23-b387-324d756933d6","86dfdf7a-1e04-408b-ae4a-90e0f77ca659","2ea1e045-341e-4219-8735-1a670abb4498","7f7ec410-1a0e-46ac-a728-d55740dbe30e","a605fb72-876f-4a50-81fe-f23bbeb86156","9e4e0e54-e5bc-40bd-b20e-ea629a8534a1"],"responses":{"201":"dcabcd9e-c551-49ef-bf46-2da7934f60f2","400":"82eeef17-11a3-46a2-a8da-2c1f31839605","401":"39da3559-726f-4996-8d0c-d6fbf5c572d4","403":"53e442e4-1521-4cf8-a5e4-815dad4bffbc","404":"82fca0d3-101a-4eff-8ec1-194d8fb6b6a6","422":"360ae185-8cbe-4d5c-97ba-b7d3f9e3b438"},"summary":"List invoices","tags":["Invoices"],"method":"get","type":"path","servers":["acf84d29-d14b-4dd6-933f-31aa602dd68b","b8836037-80c3-4a92-9378-766448db35bb"],"security":["27e4ec77-558c-4616-ae6f-0159a16aa482"],"path":"/connections/{connection_id}/invoices","baseUrlOptions":["https://qubesync.com/api/v2","https://dev.qubesync.com/api/v2"],"title":"List invoices","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8c07c6ba-2b3f-4928-ad97-14beee9fe57e":{"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>"}},"93906088-1a6b-4b34-a8a6-83fdfea44650":{"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`.","in":"query","name":"request_id","required":false,"schema":{"type":"string","isRequired":false,"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`.","uniqueKey":"","typeLabel":"string"}},"a30a863d-98e3-4a32-96ca-4fc27a97cc7d":{"description":"Use the `meta_data` attribute to control whether query responses include counts. Options are NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus objects). Counts are approximate and may vary slightly if records are created or deleted during processing.","in":"query","name":"meta_data","required":false,"schema":{"enum":["MetaDataAndResponseData","MetaDataOnly","NoMetaData"],"type":"string","isRequired":false,"description":"Use the `meta_data` attribute to control whether query responses include counts. Options are NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus objects). Counts are approximate and may vary slightly if records are created or deleted during processing.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"be1de23e-bc94-42de-8137-88083e88cb39":{"description":"Page through every match: QuBe Sync asks QuickBooks for each page in turn and sends each to your `webhook_url` as it arrives, all with the same `id`. On by default, with pages of 100 records (25 with `include_line_items` or `include_linked_txns`); send `iterator=true` with `max_returned` for another size. Off when you send `iterator=false` (every match in one answer) or `max_returned` alone (at most that many, in one answer). It pages a filtered query only: with `ref_number`, `ref_number_case_sensitive` or `txn_id` every match comes back in one answer, so leave `iterator` out.","in":"query","name":"iterator","required":false,"schema":{"type":"boolean","isRequired":false,"description":"Page through every match: QuBe Sync asks QuickBooks for each page in turn and sends each to your `webhook_url` as it arrives, all with the same `id`. On by default, with pages of 100 records (25 with `include_line_items` or `include_linked_txns`); send `iterator=true` with `max_returned` for another size. Off when you send `iterator=false` (every match in one answer) or `max_returned` alone (at most that many, in one answer). It pages a filtered query only: with `ref_number`, `ref_number_case_sensitive` or `txn_id` every match comes back in one answer, so leave `iterator` out.","uniqueKey":"","typeLabel":"boolean"}},"27ce81e0-4f06-41a2-bae2-dd4c5c80c1ff":{"description":"Filters according to the account name or `list_id`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"account_filter","required":false,"schema":{"oneOf":[{"type":"object","title":"ListID","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.","items":{"type":"string","uniqueKey":"oneOf.0.list_id.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.0.list_id","typeLabel":"string[]"}},"description":"Filters according to the account name or `list_id`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.0","typeLabel":"ListID · object"},{"type":"object","title":"FullName","required":["full_name"],"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.","items":{"type":"string","uniqueKey":"oneOf.1.full_name.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.1.full_name","typeLabel":"string[]"}},"description":"Filters according to the account name or `list_id`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.1","typeLabel":"FullName · object"},{"type":"object","title":"ListIDWithChildren","required":["list_id_with_children"],"properties":{"list_id_with_children":{"description":"Allows you to filter for data that relates to the specified object and its descendants.","type":"string","isRequired":true,"uniqueKey":"oneOf.2.list_id_with_children","typeLabel":"string"}},"description":"Filters according to the account name or `list_id`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.2","typeLabel":"ListIDWithChildren · object"},{"type":"object","title":"FullNameWithChildren","required":["full_name_with_children"],"properties":{"full_name_with_children":{"description":"Allows you to filter for data that relates to the specified object and its descendants. For names that don’t have children, `full_name_with_children` is exactly the same as `full_name`.","type":"string","isRequired":true,"uniqueKey":"oneOf.3.full_name_with_children","typeLabel":"string"}},"description":"Filters according to the account name or `list_id`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.3","typeLabel":"FullNameWithChildren · object"}],"isRequired":false,"uniqueKey":"","typeLabel":"ListID · object | FullName · object | ListIDWithChildren · object | FullNameWithChildren · object"}},"92172bca-49b9-493e-ad89-fb7fdaf7fd75":{"description":"Filters by the specified currency.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"currency_filter","required":false,"schema":{"oneOf":[{"type":"object","title":"ListID","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.","items":{"type":"string","uniqueKey":"oneOf.0.list_id.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.0.list_id","typeLabel":"string[]"}},"description":"Filters by the specified currency.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.0","typeLabel":"ListID · object"},{"type":"object","title":"FullName","required":["full_name"],"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.","items":{"type":"string","uniqueKey":"oneOf.1.full_name.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.1.full_name","typeLabel":"string[]"}},"description":"Filters by the specified currency.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.1","typeLabel":"FullName · object"}],"isRequired":false,"uniqueKey":"","typeLabel":"ListID · object | FullName · object"}},"c823d30f-0a06-44ad-adcf-a7c111144a6f":{"description":"An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"entity_filter","required":false,"schema":{"oneOf":[{"type":"object","title":"ListID","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.","items":{"type":"string","uniqueKey":"oneOf.0.list_id.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.0.list_id","typeLabel":"string[]"}},"description":"An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.0","typeLabel":"ListID · object"},{"type":"object","title":"FullName","required":["full_name"],"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.","items":{"type":"string","uniqueKey":"oneOf.1.full_name.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"oneOf.1.full_name","typeLabel":"string[]"}},"description":"An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.1","typeLabel":"FullName · object"},{"type":"object","title":"ListIDWithChildren","required":["list_id_with_children"],"properties":{"list_id_with_children":{"description":"Allows you to filter for data that relates to the specified object and its descendants.","type":"string","isRequired":true,"uniqueKey":"oneOf.2.list_id_with_children","typeLabel":"string"}},"description":"An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.2","typeLabel":"ListIDWithChildren · object"},{"type":"object","title":"FullNameWithChildren","required":["full_name_with_children"],"properties":{"full_name_with_children":{"description":"Allows you to filter for data that relates to the specified object and its descendants. For names that don’t have children, `full_name_with_children` is exactly the same as `full_name`.","type":"string","isRequired":true,"uniqueKey":"oneOf.3.full_name_with_children","typeLabel":"string"}},"description":"An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get information about all the entities that are set up in the QuickBooks file. In an ARRefundCreditCard query, this must be a customer/customer job.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.3","typeLabel":"FullNameWithChildren · object"}],"isRequired":false,"uniqueKey":"","typeLabel":"ListID · object | FullName · object | ListIDWithChildren · object | FullNameWithChildren · object"}},"0fc0f454-a9f7-4624-bdb6-64341743307b":{"description":"This filter allows you to omit line items from a query response to get a smaller result. The default value is false, so line items are omitted by default. Set `include_line_items` to true to include line items in the response if you don’t mind getting a larger result.","in":"query","name":"include_line_items","required":false,"schema":{"type":"boolean","isRequired":false,"description":"This filter allows you to omit line items from a query response to get a smaller result. The default value is false, so line items are omitted by default. Set `include_line_items` to true to include line items in the response if you don’t mind getting a larger result.","uniqueKey":"","typeLabel":"boolean"}},"fe31eced-9d45-4a8b-b337-c56a068fe997":{"description":"If you set `include_linked_txns` to true, then the returned object will include a list of all the transactions linked to the queried object. (This list is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items.) Each linked transaction will be represented by a `linked_txn` aggregate.","in":"query","name":"include_linked_txns","required":false,"schema":{"type":"boolean","isRequired":false,"description":"If you set `include_linked_txns` to true, then the returned object will include a list of all the transactions linked to the queried object. (This list is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items.) Each linked transaction will be represented by a `linked_txn` aggregate.","uniqueKey":"","typeLabel":"boolean"}},"ef03e2e1-5aa3-4fe1-8595-414699857323":{"in":"query","name":"include_ret_element","required":false,"schema":{"items":{"enum":["ARAccountRef","AppliedAmount","BalanceRemaining","BalanceRemainingInHomeCurrency","BillAddress","BillAddressBlock","ClassRef","CurrencyRef","CustomerMsgRef","CustomerRef","CustomerSalesTaxCodeRef","DataExtRet","DiscountLineRet","DueDate","EditSequence","ExchangeRate","ExternalGUID","FOB","InvoiceLineGroupRet","InvoiceLineRet","IsFinanceCharge","IsPaid","IsPending","IsTaxIncluded","IsToBeEmailed","IsToBePrinted","ItemSalesTaxRef","LinkedTxn","Memo","Other","PONumber","RefNumber","SalesRepRef","SalesTaxLineRet","SalesTaxPercentage","SalesTaxTotal","ShipAddress","ShipAddressBlock","ShipDate","ShipMethodRef","ShippingLineRet","Subtotal","SuggestedDiscountAmount","SuggestedDiscountDate","TemplateRef","TermsRef","TimeCreated","TimeModified","TxnDate","TxnID","TxnNumber"],"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>[]"}},"939bc0d1-b106-4fc6-a599-d10065bf71ae":{"description":"Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `meta_data` query attribute.) If you include a `max_returned` value, it must be at least 1.\n\nThe page size, with `iterator=true`. Sent without `iterator`, or with `iterator=false`, it's a cap instead: at most this many records come back, in one answer, and QuickBooks doesn't say whether more matched.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"max_returned","required":false,"schema":{"minimum":1,"type":"integer","isRequired":false,"description":"Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `meta_data` query attribute.) If you include a `max_returned` value, it must be at least 1.\n\nThe page size, with `iterator=true`. Sent without `iterator`, or with `iterator=false`, it's a cap instead: at most this many records come back, in one answer, and QuickBooks doesn't say whether more matched.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"integer"}},"9c1525b6-6a62-4b52-af7b-31a46a197b8b":{"description":"Filters according to the dates when transactions were last modified. The `modified_date_range_filter` aggregate isn’t required to contain any elements, but if it is empty, we recommend that you leave it out altogether. Note that the time portion of the `from_modified_date` and `to_modified_date` fields wasn’t supported in qbXML version 1.0 or 1.1.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"modified_date_range_filter","required":false,"schema":{"properties":{"from_modified_date":{"description":"Filters results to objects modified on or after this timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a date is provided, time defaults to 00:00:00.","format":"date-time","type":"string","uniqueKey":"from_modified_date","typeLabel":"string\u003cdate-time>"},"to_modified_date":{"description":"Filters results to objects modified on or before this timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a date is provided, time defaults to end-of-day (23:59:59).","format":"date-time","type":"string","uniqueKey":"to_modified_date","typeLabel":"string\u003cdate-time>"}},"type":"object","isRequired":false,"description":"Filters according to the dates when transactions were last modified. The `modified_date_range_filter` aggregate isn’t required to contain any elements, but if it is empty, we recommend that you leave it out altogether. Note that the time portion of the `from_modified_date` and `to_modified_date` fields wasn’t supported in qbXML version 1.0 or 1.1.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"object"}},"784cfe63-8239-40e7-89a1-c226f0c80d24":{"description":"Allows you to filter for transactions according to whether or not they are paid.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"paid_status","required":false,"schema":{"enum":["All","NotPaidOnly","PaidOnly"],"type":"string","isRequired":false,"description":"Allows you to filter for transactions according to whether or not they are paid.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"a2df3b61-fd1d-40f3-808c-359c9be15e6c":{"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.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"ref_number","required":false,"schema":{"items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":false,"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.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"string[]"}},"19d3588c-fb10-4707-8b65-419ee32e270a":{"description":"Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"ref_number_case_sensitive","required":false,"schema":{"items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":false,"description":"Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"string[]"}},"05f55bde-d790-4999-936a-d4b014cec3fb":{"description":"Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"ref_number_filter","required":false,"schema":{"properties":{"match_criterion":{"description":"The criterion to match.","enum":["Contains","EndsWith","StartsWith"],"type":"string","isRequired":true,"uniqueKey":"match_criterion","typeLabel":"enum\u003cstring>"},"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","isRequired":true,"uniqueKey":"ref_number","typeLabel":"string"}},"required":["match_criterion","ref_number"],"type":"object","isRequired":false,"description":"Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"object"}},"f164b379-86c2-4a23-b387-324d756933d6":{"description":"Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"ref_number_range_filter","required":false,"schema":{"properties":{"from_ref_number":{"description":"The first `ref_number` in the search range. If `from_ref_number` is omitted, the range will begin with first number on the list.","type":"string","uniqueKey":"from_ref_number","typeLabel":"string"},"to_ref_number":{"description":"The final `ref_number` in the search range. If `to_ref_number` is omitted, the range will end with last number on the list.","type":"string","uniqueKey":"to_ref_number","typeLabel":"string"}},"type":"object","isRequired":false,"description":"Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"object"}},"86dfdf7a-1e04-408b-ae4a-90e0f77ca659":{"description":"Filters according to the original transaction dates.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"txn_date_range_filter","required":false,"schema":{"oneOf":[{"type":"object","title":"FromTxnDate + ToTxnDate","properties":{"from_txn_date":{"description":"Selects transactions created on or after this date. Both `from_txn_date` and `to_txn_date` must be between 01/01/1901 and 12/31/9999.If you omit `from_txn_date`, it will be set to 1970-01-01 (1969-12-31 PST).","format":"date","type":"string","uniqueKey":"oneOf.0.from_txn_date","typeLabel":"string\u003cdate>"},"to_txn_date":{"description":"Selects transactions created on or before this date. Both `to_txn_date` and `from_txn_date` must be between 01/01/1901 and 12/31/9999. If you omit `to_txn_date`, it will be set to 2038-01-19 (2038-01-18 PST).","format":"date","type":"string","uniqueKey":"oneOf.0.to_txn_date","typeLabel":"string\u003cdate>"}},"description":"Filters according to the original transaction dates.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.0","typeLabel":"FromTxnDate + ToTxnDate · object"},{"type":"object","title":"DateMacro","required":["date_macro"],"properties":{"date_macro":{"description":"`date_macro` filters by transaction date (not last-modified date). Do not combine `date_macro` with `from_modified_date`/`to_modified_date` in the same query filter set.","enum":["All","LastCalendarQuarter","LastCalendarQuarterToDate","LastCalendarYear","LastCalendarYearToDate","LastFiscalQuarter","LastFiscalQuarterToDate","LastFiscalYear","LastFiscalYearToDate","LastMonth","LastMonthToDate","LastWeek","LastWeekToDate","NextCalendarQuarter","NextCalendarYear","NextFiscalQuarter","NextFiscalYear","NextFourWeeks","NextMonth","NextWeek","ThisCalendarQuarter","ThisCalendarQuarterToDate","ThisCalendarYear","ThisCalendarYearToDate","ThisFiscalQuarter","ThisFiscalQuarterToDate","ThisFiscalYear","ThisFiscalYearToDate","ThisMonth","ThisMonthToDate","ThisWeek","ThisWeekToDate","Today","Yesterday"],"type":"string","isRequired":true,"uniqueKey":"oneOf.1.date_macro","typeLabel":"enum\u003cstring>"}},"description":"Filters according to the original transaction dates.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"oneOf.1","typeLabel":"DateMacro · object"}],"isRequired":false,"uniqueKey":"","typeLabel":"FromTxnDate + ToTxnDate · object | DateMacro · object"}},"2ea1e045-341e-4219-8735-1a670abb4498":{"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.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","in":"query","name":"txn_id","required":false,"schema":{"items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":false,"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.\n\nChoose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `paid_status`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.","uniqueKey":"","typeLabel":"string[]"}},"7f7ec410-1a0e-46ac-a728-d55740dbe30e":{"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.","in":"query","name":"owner_id","required":false,"schema":{"items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":false,"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.","uniqueKey":"","typeLabel":"string[]"}},"a605fb72-876f-4a50-81fe-f23bbeb86156":{"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>"}},"9e4e0e54-e5bc-40bd-b20e-ea629a8534a1":{"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"}}},"responses":{"dcabcd9e-c551-49ef-bf46-2da7934f60f2":{"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":{"items":{"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.items.[INDEX].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.items.[INDEX].discount_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].discount_line_ret.amount","typeLabel":"number"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].discount_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].ship_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].ship_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].bill_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].bill_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].bill_address","typeLabel":"object"},"invoice_line_ret":{"description":"Represents one line in the invoice. Compare with InvoiceLineGroup, which represents a previously defined group of lines in the invoice.\n\n`invoice_line_ret` and `invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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 or Mod 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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_ret","typeLabel":"object[]"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].txn_number","typeLabel":"integer"},"sales_tax_percentage":{"description":"The percentage charged for sales tax.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].sales_tax_percentage","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.items.[INDEX].other","typeLabel":"string"},"is_paid":{"description":"If `is_paid` is true, this transaction has been paid.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].is_paid","typeLabel":"boolean"},"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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].customer_sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].is_to_be_printed","typeLabel":"boolean"},"is_pending":{"description":"If `is_pending` is set to true, the invoice 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.items.[INDEX].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.items.[INDEX].ref_number","typeLabel":"string"},"linked_txn":{"items":{"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].amount","typeLabel":"number"},"link_type":{"description":"Indicates the nature of the link between the transactions:ltAMTTYPE means the two transactions are linked based on an amount value (for example an invoice linked to a payment).ltQUANTYPE means the two transactions are linked based on a quantity. This affects transactions that are linked to sales orders, estimates and purchase orders.","enum":["AMTTYPE","QUANTYPE"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].link_type","typeLabel":"enum\u003cstring>"},"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.items.[INDEX].linked_txn.items.[INDEX].ref_number","typeLabel":"string"},"txn_date":{"description":"The date of the invoice. If you leave `txn_date` out of an InvoiceAdd message, QuickBooks might prefill it with the date of the invoice that was most recently saved.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_date","typeLabel":"string\u003cdate>"},"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.items.[INDEX].linked_txn.items.[INDEX].txn_id","typeLabel":"string"},"txn_line_detail":{"items":{"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX].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.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX].txn_line_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail","typeLabel":"object[]"},"txn_type":{"description":"The type of transaction.","enum":["ARRefundCreditCard","Bill","BillPaymentCheck","BillPaymentCreditCard","BuildAssembly","Charge","Check","CreditCardCharge","CreditCardCredit","CreditMemo","Deposit","Estimate","InventoryAdjustment","Invoice","ItemReceipt","JournalEntry","LiabilityAdjustment","Paycheck","PayrollLiabilityCheck","PurchaseOrder","ReceivePayment","SalesOrder","SalesReceipt","SalesTaxPaymentCheck","Transfer","VendorCredit","YTDAdjustment"],"type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_type","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].linked_txn","typeLabel":"object[]"},"applied_amount":{"description":"The credits and payments applied to this invoice, as a negative number: -80.00 for an invoice paid 80.00 (observed on QuickBooks Enterprise 24.0).","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].applied_amount","typeLabel":"number"},"is_finance_charge":{"description":"If `is_finance_charge` is true, a finance-charge item has been added to the invoice.","type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].is_finance_charge","typeLabel":"boolean"},"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.items.[INDEX].txn_id","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.items.[INDEX].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.items.[INDEX].customer_msg_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].customer_msg_ref","typeLabel":"object"},"suggested_discount_amount":{"description":"The suggested discount for this invoice.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].suggested_discount_amount","typeLabel":"number"},"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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].customer_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].customer_ref","typeLabel":"object"},"terms_ref":{"description":"Refers to the payment terms associated with this entity. (This will be an item on the DateDrivenTerms or StandardTerms list.) If a `terms_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.items.[INDEX].terms_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.items.[INDEX].terms_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].terms_ref","typeLabel":"object"},"due_date":{"description":"If `due_date` isn’t included in an InvoiceAdd request, QuickBooks might determine the due date according to the terms set for this customer.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].due_date","typeLabel":"string\u003cdate>"},"subtotal":{"description":"The total of all the invoice lines, before taxes and `applied_amount` 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.items.[INDEX].subtotal","typeLabel":"number"},"sales_tax_total":{"description":"The total amount of sales tax charged.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_rep_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_tax_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_tax_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.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.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.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.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.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.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].ship_method_ref","typeLabel":"object"},"po_number":{"description":"Purchase order number.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].po_number","typeLabel":"string"},"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.items.[INDEX].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.items.[INDEX].shipping_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].shipping_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].shipping_line_ret.amount","typeLabel":"number"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].shipping_line_ret","typeLabel":"object"},"invoice_line_group_ret":{"description":"Represents a previously defined group of lines in the invoice. Compare with InvoiceLine, which represents just one line in the invoice.\n\n`invoice_line_ret` and `invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].desc","typeLabel":"string"},"invoice_line_ret":{"description":"Represents one line in the invoice. Compare with InvoiceLineGroup, which represents a previously defined group of lines in the invoice.","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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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 or Mod 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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret","typeLabel":"object[]"},"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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].item_group_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].quantity","typeLabel":"number"},"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.items.[INDEX].invoice_line_group_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"total_amount":{"description":"Total amount of money paid or received. In a receive payment add transaction that has payment amount elements (such as AppliedToTxnAdd lines) you must supply a `total_amount` and the sum of all the PaymentAmount elements must not be greater than the `total_amount`.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret","typeLabel":"object[]"},"memo":{"description":"Message that appears in reports, but not on the invoice.","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].currency_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].currency_ref","typeLabel":"object"},"txn_date":{"description":"The date of the invoice. If you leave `txn_date` out of an InvoiceAdd message, QuickBooks might prefill it with the date of the invoice that was most recently saved.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].item_sales_tax_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].template_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].template_ref","typeLabel":"object"},"balance_remaining":{"description":"The outstanding balance on this transaction. For an invoice, that’s (Subtotal + `sales_tax_total`) + the invoice’s `applied_amount`, which comes back negative (observed on QuickBooks Enterprise 24.0).","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].balance_remaining","typeLabel":"number"},"suggested_discount_date":{"description":"The date when `suggested_discount_amount` would apply.","format":"date","type":"string","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].suggested_discount_date","typeLabel":"string\u003cdate>"},"balance_remaining_in_home_currency":{"description":"Balance remaining in units of the home currency.","type":"number","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].balance_remaining_in_home_currency","typeLabel":"number"},"ar_account_ref":{"description":"`ar_account_ref` points to an Accounts Receivable account. 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.items.[INDEX].ar_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.items.[INDEX].ar_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX].ar_account_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.items.[INDEX].exchange_rate","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.items.[INDEX].ship_date","typeLabel":"string\u003cdate>"}},"type":"object","uniqueKey":"data.response_json.oneOf.0.data.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"data.response_json.oneOf.0.data","typeLabel":"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).\n\n* `no_match` (1): The query ran and matched nothing.\n* `not_found_by_key` (500): A record was looked up by an exact key (a FullName or ListID) and does not exist.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","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.\n\n* `not_found_by_key` (500): A record was looked up by an exact key (a FullName or ListID) and does not exist.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-yes-with-a-warning).","examples":[500],"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,3150,3210,3220,3250,3260],"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,3150,3210,3220,3250,3260],"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"},"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* `missing_element` (3150): QuickBooks requires an element the request left out; the message names 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\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","enum":["unsupported_request","missing_element","invalid_value","not_authorized","feature_not_enabled","insufficient_permission"],"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>"},"invoice_line_ret":[{"amount":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>"}],"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,"other":"\u003cstring>","is_paid":true,"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>","linked_txn":[{"amount":123,"link_type":"AMTTYPE","ref_number":"\u003cstring>","txn_date":"2023-12-25","txn_id":"\u003cstring>","txn_line_detail":[{"amount":123,"txn_line_id":"\u003cstring>"}],"txn_type":"ARRefundCreditCard"}],"applied_amount":123,"is_finance_charge":true,"txn_id":"\u003cstring>","customer_msg_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"suggested_discount_amount":123,"bill_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"customer_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"terms_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>"},"po_number":"\u003cstring>","shipping_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123},"invoice_line_group_ret":[{"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_type":"AMTTYPE","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","invoice_line_ret":[{"amount":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>"}],"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>"}],"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,"service_date":"2023-12-25","total_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"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>"},"balance_remaining":123,"suggested_discount_date":"2023-12-25","balance_remaining_in_home_currency":123,"ar_account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"exchange_rate":123,"ship_date":"2023-12-25"}],"message":"\u003cstring>","warning":{"code":500,"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"},"82eeef17-11a3-46a2-a8da-2c1f31839605":{"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"},"39da3559-726f-4996-8d0c-d6fbf5c572d4":{"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"},"53e442e4-1521-4cf8-a5e4-815dad4bffbc":{"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"},"82fca0d3-101a-4eff-8ec1-194d8fb6b6a6":{"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"},"360ae185-8cbe-4d5c-97ba-b7d3f9e3b438":{"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":"b2accaee-6058-42c2-95c9-4e97b168a0f9","responses":{"2XX":"625e154e-3ffe-406b-bd02-84dc42b8c746"},"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":{"items":{"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.items.[INDEX].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.items.[INDEX].discount_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].discount_line_ret.amount","typeLabel":"number"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].discount_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].ship_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].ship_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address.addr5","typeLabel":"string"},"city":{"description":"The city name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address.note","typeLabel":"string"},"postal_code":{"description":"The postal code in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].bill_address.postal_code","typeLabel":"string"},"state":{"description":"The state name in an address.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].bill_address.state","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].bill_address","typeLabel":"object"},"invoice_line_ret":{"description":"Represents one line in the invoice. Compare with InvoiceLineGroup, which represents a previously defined group of lines in the invoice.\n\n`invoice_line_ret` and `invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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 or Mod 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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_ret","typeLabel":"object[]"},"txn_number":{"description":"An identifying number for this transaction.","type":"integer","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].txn_number","typeLabel":"integer"},"sales_tax_percentage":{"description":"The percentage charged for sales tax.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].sales_tax_percentage","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.items.[INDEX].other","typeLabel":"string"},"is_paid":{"description":"If `is_paid` is true, this transaction has been paid.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].is_paid","typeLabel":"boolean"},"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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].customer_sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].is_to_be_printed","typeLabel":"boolean"},"is_pending":{"description":"If `is_pending` is set to true, the invoice 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.items.[INDEX].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.items.[INDEX].ref_number","typeLabel":"string"},"linked_txn":{"items":{"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].amount","typeLabel":"number"},"link_type":{"description":"Indicates the nature of the link between the transactions:ltAMTTYPE means the two transactions are linked based on an amount value (for example an invoice linked to a payment).ltQUANTYPE means the two transactions are linked based on a quantity. This affects transactions that are linked to sales orders, estimates and purchase orders.","enum":["AMTTYPE","QUANTYPE"],"type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].link_type","typeLabel":"enum\u003cstring>"},"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.items.[INDEX].linked_txn.items.[INDEX].ref_number","typeLabel":"string"},"txn_date":{"description":"The date of the invoice. If you leave `txn_date` out of an InvoiceAdd message, QuickBooks might prefill it with the date of the invoice that was most recently saved.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_date","typeLabel":"string\u003cdate>"},"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.items.[INDEX].linked_txn.items.[INDEX].txn_id","typeLabel":"string"},"txn_line_detail":{"items":{"properties":{"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX].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.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX].txn_line_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_line_detail","typeLabel":"object[]"},"txn_type":{"description":"The type of transaction.","enum":["ARRefundCreditCard","Bill","BillPaymentCheck","BillPaymentCreditCard","BuildAssembly","Charge","Check","CreditCardCharge","CreditCardCredit","CreditMemo","Deposit","Estimate","InventoryAdjustment","Invoice","ItemReceipt","JournalEntry","LiabilityAdjustment","Paycheck","PayrollLiabilityCheck","PurchaseOrder","ReceivePayment","SalesOrder","SalesReceipt","SalesTaxPaymentCheck","Transfer","VendorCredit","YTDAdjustment"],"type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX].txn_type","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].linked_txn","typeLabel":"object[]"},"applied_amount":{"description":"The credits and payments applied to this invoice, as a negative number: -80.00 for an invoice paid 80.00 (observed on QuickBooks Enterprise 24.0).","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].applied_amount","typeLabel":"number"},"is_finance_charge":{"description":"If `is_finance_charge` is true, a finance-charge item has been added to the invoice.","type":"boolean","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].is_finance_charge","typeLabel":"boolean"},"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.items.[INDEX].txn_id","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.items.[INDEX].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.items.[INDEX].customer_msg_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].customer_msg_ref","typeLabel":"object"},"suggested_discount_amount":{"description":"The suggested discount for this invoice.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].suggested_discount_amount","typeLabel":"number"},"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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].bill_address_block.addr5","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].customer_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].customer_ref","typeLabel":"object"},"terms_ref":{"description":"Refers to the payment terms associated with this entity. (This will be an item on the DateDrivenTerms or StandardTerms list.) If a `terms_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.items.[INDEX].terms_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.items.[INDEX].terms_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].terms_ref","typeLabel":"object"},"due_date":{"description":"If `due_date` isn’t included in an InvoiceAdd request, QuickBooks might determine the due date according to the terms set for this customer.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].due_date","typeLabel":"string\u003cdate>"},"subtotal":{"description":"The total of all the invoice lines, before taxes and `applied_amount` 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.items.[INDEX].subtotal","typeLabel":"number"},"sales_tax_total":{"description":"The total amount of sales tax charged.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].sales_tax_total","typeLabel":"number"},"time_created":{"description":"Time the object was created.","format":"date-time","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_rep_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_tax_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].sales_tax_line_ret.rate_percent","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.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.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.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.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.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.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].ship_method_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].ship_method_ref","typeLabel":"object"},"po_number":{"description":"Purchase order number.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].po_number","typeLabel":"string"},"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.items.[INDEX].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.items.[INDEX].shipping_line_ret.account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].shipping_line_ret.account_ref","typeLabel":"object"},"amount":{"description":"A monetary amount.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].shipping_line_ret.amount","typeLabel":"number"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].shipping_line_ret","typeLabel":"object"},"invoice_line_group_ret":{"description":"Represents a previously defined group of lines in the invoice. Compare with InvoiceLine, which represents just one line in the invoice.\n\n`invoice_line_ret` and `invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].desc","typeLabel":"string"},"invoice_line_ret":{"description":"Represents one line in the invoice. Compare with InvoiceLineGroup, which represents a previously defined group of lines in the invoice.","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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].class_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX].owner_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].data_ext_ret","typeLabel":"object[]"},"desc":{"description":"A descriptive text field.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_location_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].inventory_site_ref","typeLabel":"object"},"is_taxable":{"type":"boolean","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].item_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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 or Mod 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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].sales_tax_code_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"tax_amount":{"type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX].invoice_line_ret","typeLabel":"object[]"},"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.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].item_group_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].override_uom_set_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].quantity","typeLabel":"number"},"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.items.[INDEX].invoice_line_group_ret.items.[INDEX].service_date","typeLabel":"string\u003cdate>"},"total_amount":{"description":"Total amount of money paid or received. In a receive payment add transaction that has payment amount elements (such as AppliedToTxnAdd lines) you must supply a `total_amount` and the sum of all the PaymentAmount elements must not be greater than the `total_amount`.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_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.items.[INDEX].invoice_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.items.[INDEX].invoice_line_group_ret.items.[INDEX].unit_of_measure","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].invoice_line_group_ret","typeLabel":"object[]"},"memo":{"description":"Message that appears in reports, but not on the invoice.","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].currency_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].currency_ref","typeLabel":"object"},"txn_date":{"description":"The date of the invoice. If you leave `txn_date` out of an InvoiceAdd message, QuickBooks might prefill it with the date of the invoice that was most recently saved.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].item_sales_tax_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].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.items.[INDEX].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.items.[INDEX].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.items.[INDEX].template_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].template_ref","typeLabel":"object"},"balance_remaining":{"description":"The outstanding balance on this transaction. For an invoice, that’s (Subtotal + `sales_tax_total`) + the invoice’s `applied_amount`, which comes back negative (observed on QuickBooks Enterprise 24.0).","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].balance_remaining","typeLabel":"number"},"suggested_discount_date":{"description":"The date when `suggested_discount_amount` would apply.","format":"date","type":"string","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].suggested_discount_date","typeLabel":"string\u003cdate>"},"balance_remaining_in_home_currency":{"description":"Balance remaining in units of the home currency.","type":"number","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].balance_remaining_in_home_currency","typeLabel":"number"},"ar_account_ref":{"description":"`ar_account_ref` points to an Accounts Receivable account. 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.items.[INDEX].ar_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.items.[INDEX].ar_account_ref.list_id","typeLabel":"string"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX].ar_account_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.items.[INDEX].exchange_rate","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.items.[INDEX].ship_date","typeLabel":"string\u003cdate>"}},"type":"object","uniqueKey":"response_json.oneOf.0.data.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"response_json.oneOf.0.data","typeLabel":"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).\n\n* `no_match` (1): The query ran and matched nothing.\n* `not_found_by_key` (500): A record was looked up by an exact key (a FullName or ListID) and does not exist.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","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.\n\n* `not_found_by_key` (500): A record was looked up by an exact key (a FullName or ListID) and does not exist.\n\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-yes-with-a-warning).","examples":[500],"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,3150,3210,3220,3250,3260],"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,3150,3210,3220,3250,3260],"type":"null","uniqueKey":"response_json.oneOf.1.error.code.oneOf.1","typeLabel":"null"}],"uniqueKey":"response_json.oneOf.1.error.code","typeLabel":"integer | null"},"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* `missing_element` (3150): QuickBooks requires an element the request left out; the message names 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\nWhat each means and how to handle it: [Error handling](https://docs.qubesync.com/error_handling#quickbooks-said-no).","enum":["unsupported_request","missing_element","invalid_value","not_authorized","feature_not_enabled","insufficient_permission"],"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>"},"invoice_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"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,"other":"\u003cstring>","is_paid":true,"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>","linked_txn":[{"amount":123,"ref_number":"\u003cstring>","txn_date":"2023-12-25","txn_id":"\u003cstring>","txn_line_detail":[{"amount":123,"txn_line_id":"\u003cstring>"}]}],"applied_amount":123,"is_finance_charge":true,"txn_id":"\u003cstring>","customer_msg_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"suggested_discount_amount":123,"bill_address_block":{"addr1":"\u003cstring>","addr2":"\u003cstring>","addr3":"\u003cstring>","addr4":"\u003cstring>","addr5":"\u003cstring>"},"customer_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"terms_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>"},"po_number":"\u003cstring>","shipping_line_ret":{"account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"amount":123},"invoice_line_group_ret":[{"data_ext_ret":[{"data_ext_name":"\u003cstring>","data_ext_value":"\u003cstring>","owner_id":"\u003cstring>"}],"desc":"\u003cstring>","invoice_line_ret":[{"amount":123,"class_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"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>"}],"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,"service_date":"2023-12-25","total_amount":123,"txn_line_id":"\u003cstring>","unit_of_measure":"\u003cstring>"}],"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>"},"balance_remaining":123,"suggested_discount_date":"2023-12-25","balance_remaining_in_home_currency":123,"ar_account_ref":{"full_name":"\u003cstring>","list_id":"\u003cstring>"},"exchange_rate":123,"ship_date":"2023-12-25"}],"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":{"625e154e-3ffe-406b-bd02-84dc42b8c746":{"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":"List invoices - QuBe Sync","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T16:20:13.818Z","originalFileLocation":"api-reference/v2/invoices/list-invoices.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: InvoiceQueryRq. Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice\u0026#x27;s applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results. Intuit\u0026#x27;s reference: InvoiceQuery.\">\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=\"List invoices - QuBe Sync\">\u003cmeta data-mint-head property=\"og:description\" content=\"qbXML: InvoiceQueryRq. Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice\u0026#x27;s applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results. Intuit\u0026#x27;s reference: InvoiceQuery.\">\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/invoices/list-invoices\">\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=Invoices\u0026amp;title=List+invoices\u0026amp;description=qbXML%3A+%60InvoiceQueryRq%60.%0A%0AFinds+invoices%3A+exact+ones+by+%60txn_id%60+or+%60ref_number%60%2C+or+a+filtered+set+by+customer+%28%60entity_filter%60%29%2C+date%2C+account+or+%60paid_status\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=eed9bdfa4058105b97da19b623a229f4dc8239dadc091651534551383446822e\">\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=\"List invoices - QuBe Sync\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"qbXML: InvoiceQueryRq. Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice\u0026#x27;s applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results. Intuit\u0026#x27;s reference: InvoiceQuery.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qubesync.mintlify.app/_mintlify/api/og/v2?division=Invoices\u0026amp;title=List+invoices\u0026amp;description=qbXML%3A+%60InvoiceQueryRq%60.%0A%0AFinds+invoices%3A+exact+ones+by+%60txn_id%60+or+%60ref_number%60%2C+or+a+filtered+set+by+customer+%28%60entity_filter%60%29%2C+date%2C+account+or+%60paid_status\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=eed9bdfa4058105b97da19b623a229f4dc8239dadc091651534551383446822e\">\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/invoices/list-invoices\">\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/invoices/list-invoices.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/invoices/list-invoices#webpage\",\"url\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices\",\"name\":\"List invoices\",\"description\":\"qbXML: InvoiceQueryRq. Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice's applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results. Intuit's reference: InvoiceQuery.\",\"dateModified\":\"2026-11-02T16:20:13.818Z\",\"isPartOf\":{\"@id\":\"https://docs.qubesync.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices#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\":\"List invoices\",\"item\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices#apireference\",\"headline\":\"List invoices\",\"name\":\"List invoices\",\"description\":\"qbXML: InvoiceQueryRq. Finds invoices: exact ones by txn_id or ref_number, or a filtered set by customer (entity_filter), date, account or paid_status. Lines come back only with include_line_items, and the payments and credits applied to each invoice only with include_linked_txns. An invoice's applied_amount comes back negative (-80.00 for one paid 80.00), so balance_remaining is its total plus applied_amount (observed on QuickBooks Enterprise 24.0). Set iterator to page through many results. Intuit's reference: InvoiceQuery.\",\"url\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/invoices/list-invoices#webpage\"},\"dateModified\":\"2026-11-02T16:20:13.818Z\",\"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","description":"qbXML: `InventorySiteAddRq`, from qbXML 10.0. The `inventory_site_add` wrapper from qbXML is also accepted.\n\nIntuit's reference: [InventorySiteAdd](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/inventorysiteadd).","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","description":"qbXML: `InvoiceModRq`, from qbXML 2.1. The `invoice_mod` wrapper from qbXML is also accepted.\n\nChanges an invoice. Send its `txn_id` and the `edit_sequence` QuickBooks last returned for it. To change a line, send it in `invoice_line_mod` with its `txn_line_id`; to add a line, send `txn_line_id` `-1`. Some fields can't be cleared: if you send `customer_ref`, `txn_date`, `due_date`, or a line's `item_ref`, `quantity`, `rate` or `amount`, it must have a value.\n\nSome fields in an InvoiceMod request can’t be cleared. If any of the following fields is included in an invoice modify request, it must contain a value:\n\n- `customer_ref`\n- `ar_account_ref`\n- `template_ref`\n- `txn_date`\n- `is_pending`\n- `due_date`\n- `item_sales_tax_ref`\n- `ship_date`\n- `is_to_be_printed`\n\nWithin `invoice_line_mod` or `invoice_line_group_mod`:\n\n- `item_ref`\n- Quantity\n- Rate\n- Amount\n- `sales_tax_code_ref`\n- `override_item_account_ref`\n\n(For more details about what it means for a field to be clearable or not clearable, see the QB SDK Programmer’s Guide ([PDF](https://developer.intuit.com/app/developer/logged-in-content/QBSDK_ProGuide.pdf), 9.6 MB).)\n\nIntuit's reference: [InvoiceMod](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/invoicemod).","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","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","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":"List invoices - 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"]}