Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).
A workflow is one JSON document: a Harel statechart whose states queue QuickBooks requests, pause for a decision from the calling app, or transform data. Qube.Workflows.Chart.validate/1 is the source of truth; this schema is documentation and a first-pass check. A run takes at most 500 transitions, then fails with fault transition_limit: a paginating loop costs about two per page, so about 250 pages a run.
{"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/workflows/validate-a-chart-without-saving-it","slug":"/api-reference/v2/workflows/validate-a-chart-without-saving-it","pageMetadata":{"title":"Validate a chart without saving it","description":"Always responds 200. `valid` says whether the chart would be accepted; `errors` lists every problem with a document-shaped path, and `warnings` carries the non-blocking lint (unreachable states, undeclared inputs).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/validate","href":"/api-reference/v2/workflows/validate-a-chart-without-saving-it","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Always responds 200. \", _jsx(_components.code, {\n children: \"valid\"\n }), \" says whether the chart would be accepted; \", _jsx(_components.code, {\n children: \"errors\"\n }), \" lists every problem with a document-shaped path, and \", _jsx(_components.code, {\n children: \"warnings\"\n }), \" carries the non-blocking lint (unreachable states, undeclared inputs).\"]\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":"Validate a chart without saving it","description":"Always responds 200. `valid` says whether the chart would be accepted; `errors` lists every problem with a document-shaped path, and `warnings` carries the non-blocking lint (unreachable states, undeclared inputs).","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/validate","href":"/api-reference/v2/workflows/validate-a-chart-without-saving-it","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Always responds 200. `valid` says whether the chart would be accepted; `errors` lists every problem with a document-shaped path, and `warnings` carries the non-blocking lint (unreachable states, undeclared inputs).","requestBody":"96aa438c-84bb-408d-b828-ede31b381b11","responses":{"200":"de125bfc-6a23-4d61-a109-d319931c5f4c"},"security":["d94a2698-4d83-44ee-a460-30a886b3ebd5"],"summary":"Validate a chart without saving it","tags":["Workflows"],"method":"post","type":"path","servers":["acf84d29-d14b-4dd6-933f-31aa602dd68b","b8836037-80c3-4a92-9378-766448db35bb"],"path":"/workflows/validate","baseUrlOptions":["https://qubesync.com/api/v2","https://dev.qubesync.com/api/v2"],"title":"Validate a chart without saving it","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"definition":{"additionalProperties":false,"description":"A workflow is one JSON document: a Harel statechart whose states queue QuickBooks requests, pause for a decision from the calling app, or transform data. Qube.Workflows.Chart.validate/1 is the source of truth; this schema is documentation and a first-pass check. A run takes at most 500 transitions, then fails with fault transition_limit: a paginating loop costs about two per page, so about 250 pages a run.","properties":{"initial":{"pattern":"^[a-z][a-z0-9_]{0,49}$","type":"string","isRequired":true,"uniqueKey":"definition.initial","typeLabel":"string"},"states":{"additionalProperties":{"type":"object","required":["type"],"properties":{"type":{"enum":["request","wait","workflow","transform","choice","compound","final","notify","match"],"type":"string","isRequired":true,"uniqueKey":"definition.states.additionalProperties.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","uniqueKey":"definition.states.additionalProperties.description","typeLabel":"string"},"entry":{"additionalProperties":{"description":"Any JSON value. Strings may hold \\${...} references; a map may hold the reserved \"\\$from\" key, whose rendered map the rest of the map is deep-merged onto. A map holding \"\\$map\" is a list built from another: {\"\\$map\": \"\\${vars.items}\", \"as\": \"item\", \"template\": ...} renders template once per element, with the element at each.\\\u003cas>, its position at each.index and the length at each.count. With \"key\" (a template per element), it is an object instead: each element's template under the key or keys it renders.\n\n{\"\\$add\": [...]} sums its operands and {\"\\$default\": [...]} is the first that renders to something. {\"\\$merge\": [a, b, ...]} deep-merges each object onto the ones before it, as \"\\$from\" does (objects merge key by key; lists and scalars replace; an operand that renders to nothing is skipped). {\"\\$find\": \"\\${vars.items}\", \"where\": condition} is the first element the condition holds for (at each.\\\u003cas>), or nothing.\n\n{\"\\$refs\": \"\\${input.params}\", \"operation\": \"invoice.create\"} lists an add's references, or with \"list_ids\" puts their ListIDs back. {\"\\$read\": id, \"operation\": an add} reads that record whole. {\"\\$kind_name\": \"\\${input.kind}\"} is a kind, or an operation's, as a person reads it (Customer, Service item, Invoice for invoice.create), for a question's details. No other \\$-prefixed key is allowed.","if":{"type":"object"},"then":{"properties":{"$add":{"description":"The sum of its operands: numbers, or templates that render to numbers; nothing counts as 0.","minItems":1,"type":"array"},"$default":{"description":"The first of its candidates that renders to something other than nothing or an empty string.","minItems":1,"type":"array"},"$find":{"description":"A template that renders to a list. With \"where\" (a condition, required) and \"as\" (default item): the first element for which the condition holds, the element at each.\\\u003cas>, each.index and each.count; nothing when none does. Only \\$find, as and where.","type":"string"},"$from":{"type":"string"},"$kind_name":{"description":"A kind or an operation id, or a template for one (customer, item_service, invoice.create, \\${input.kind}): its name as a person reads it -- Customer, Service item, Sales tax code, Invoice -- or nothing for anything but a non-empty string. For a question's details. Only \\$kind_name.","type":"string"},"$map":{"description":"A template that renders to a list. With \"template\" (required) and \"as\" (default item): the list of the template rendered once per element, the element at each.\\\u003cas>, each.index and each.count. With \"key\" too (a template rendered per element, such as \\${each.ref.paths}, to a string or a list of strings): an object, each element's rendered template under its key or keys. Only \\$map, as, template and key.","type":"string"},"$merge":{"description":"Objects, or templates that render to objects, each deep-merged onto the ones before it: objects merge key by key, lists and scalars replace. An operand that renders to nothing is skipped. Alone in its object.","minItems":1,"type":"array"},"$read":{"description":"A record's id, or a template for it. With \"operation\" (an add's operation id, or a template; required): {\"operation\", \"params\"}, the query that reads the record that add makes, whole, by that id -- for a transaction add its type's query by txn_id with the flag that asks for its lines (include_line_items, or a build assembly's include_component_line_items), for a list add its type's query by list_id. A request state sends it with \"operation\": \"\\${vars.read.operation}\" and \"params\": {\"\\$from\": \"\\${vars.read.params}\"}. Only \\$read and operation.","type":"string"},"$refs":{"description":"An add's params (an object, or a template for one). With \"operation\" (the add's operation id, or a template; required): the distinct references the params make, in the order they first appear -- every *_ref field the operation has, its kind derived from the field's name (customer_ref is customer, ar_account_ref account, item_group_ref item_group), one entry per kind and full name with every path it appears at: {kind, field, full_name, name, parent, list_id, paths}. A kind with no full-name lookup (template) is left out.\n\nWith \"adds\" (a list of {kind, add, fields, accept}, as ensure takes them) and \"rules\" (an object of kind to ensure, create or must_exist; ensure by default), each also has \"rule\", \"ensure\": {kind, add}, the add from adds that makes it, one of its name alone under create, or none, \"pick\", true when there is no add, and \"fields\" and \"accept\" from its entry in adds, for resolve.\n\nWith \"found\" (the response of a for-each over the references: its data and outcomes, one per reference in order), each also has \"outcome\", \"how\" and \"record\" from its element (null for one the loop never reached); with \"made\" too (the response of a for-each over the ones found answered not_found), those take its outcome and record. \"missing\": true keeps the references whose outcome is still not_found.\n\nWith \"list_ids\" instead (one per reference, in that order), it is the params, every reference replaced by {\"list_id\": ...}. Only \\$refs, operation, adds, rules, found, made, missing and list_ids.","type":["string","object"]}},"propertyNames":{"not":{"pattern":"^\\$(?!(from|map|add|default|merge|find|refs|read|kind_name)$)"}}},"uniqueKey":"definition.states.additionalProperties.entry.additionalProperties","typeLabel":"any"},"description":"Variable name -> template. Every value is rendered against the same context snapshot, then merged into vars at once.","propertyNames":{"$ref":"#/components/schemas/WorkflowChartIdentifier"},"type":"object","uniqueKey":"definition.states.additionalProperties.entry","typeLabel":"object"},"exit":{"additionalProperties":{"description":"Any JSON value. Strings may hold \\${...} references; a map may hold the reserved \"\\$from\" key, whose rendered map the rest of the map is deep-merged onto. A map holding \"\\$map\" is a list built from another: {\"\\$map\": \"\\${vars.items}\", \"as\": \"item\", \"template\": ...} renders template once per element, with the element at each.\\\u003cas>, its position at each.index and the length at each.count. With \"key\" (a template per element), it is an object instead: each element's template under the key or keys it renders.\n\n{\"\\$add\": [...]} sums its operands and {\"\\$default\": [...]} is the first that renders to something. {\"\\$merge\": [a, b, ...]} deep-merges each object onto the ones before it, as \"\\$from\" does (objects merge key by key; lists and scalars replace; an operand that renders to nothing is skipped). {\"\\$find\": \"\\${vars.items}\", \"where\": condition} is the first element the condition holds for (at each.\\\u003cas>), or nothing.\n\n{\"\\$refs\": \"\\${input.params}\", \"operation\": \"invoice.create\"} lists an add's references, or with \"list_ids\" puts their ListIDs back. {\"\\$read\": id, \"operation\": an add} reads that record whole. {\"\\$kind_name\": \"\\${input.kind}\"} is a kind, or an operation's, as a person reads it (Customer, Service item, Invoice for invoice.create), for a question's details. No other \\$-prefixed key is allowed.","if":{"type":"object"},"then":{"properties":{"$add":{"description":"The sum of its operands: numbers, or templates that render to numbers; nothing counts as 0.","minItems":1,"type":"array"},"$default":{"description":"The first of its candidates that renders to something other than nothing or an empty string.","minItems":1,"type":"array"},"$find":{"description":"A template that renders to a list. With \"where\" (a condition, required) and \"as\" (default item): the first element for which the condition holds, the element at each.\\\u003cas>, each.index and each.count; nothing when none does. Only \\$find, as and where.","type":"string"},"$from":{"type":"string"},"$kind_name":{"description":"A kind or an operation id, or a template for one (customer, item_service, invoice.create, \\${input.kind}): its name as a person reads it -- Customer, Service item, Sales tax code, Invoice -- or nothing for anything but a non-empty string. For a question's details. Only \\$kind_name.","type":"string"},"$map":{"description":"A template that renders to a list. With \"template\" (required) and \"as\" (default item): the list of the template rendered once per element, the element at each.\\\u003cas>, each.index and each.count. With \"key\" too (a template rendered per element, such as \\${each.ref.paths}, to a string or a list of strings): an object, each element's rendered template under its key or keys. Only \\$map, as, template and key.","type":"string"},"$merge":{"description":"Objects, or templates that render to objects, each deep-merged onto the ones before it: objects merge key by key, lists and scalars replace. An operand that renders to nothing is skipped. Alone in its object.","minItems":1,"type":"array"},"$read":{"description":"A record's id, or a template for it. With \"operation\" (an add's operation id, or a template; required): {\"operation\", \"params\"}, the query that reads the record that add makes, whole, by that id -- for a transaction add its type's query by txn_id with the flag that asks for its lines (include_line_items, or a build assembly's include_component_line_items), for a list add its type's query by list_id. A request state sends it with \"operation\": \"\\${vars.read.operation}\" and \"params\": {\"\\$from\": \"\\${vars.read.params}\"}. Only \\$read and operation.","type":"string"},"$refs":{"description":"An add's params (an object, or a template for one). With \"operation\" (the add's operation id, or a template; required): the distinct references the params make, in the order they first appear -- every *_ref field the operation has, its kind derived from the field's name (customer_ref is customer, ar_account_ref account, item_group_ref item_group), one entry per kind and full name with every path it appears at: {kind, field, full_name, name, parent, list_id, paths}. A kind with no full-name lookup (template) is left out.\n\nWith \"adds\" (a list of {kind, add, fields, accept}, as ensure takes them) and \"rules\" (an object of kind to ensure, create or must_exist; ensure by default), each also has \"rule\", \"ensure\": {kind, add}, the add from adds that makes it, one of its name alone under create, or none, \"pick\", true when there is no add, and \"fields\" and \"accept\" from its entry in adds, for resolve.\n\nWith \"found\" (the response of a for-each over the references: its data and outcomes, one per reference in order), each also has \"outcome\", \"how\" and \"record\" from its element (null for one the loop never reached); with \"made\" too (the response of a for-each over the ones found answered not_found), those take its outcome and record. \"missing\": true keeps the references whose outcome is still not_found.\n\nWith \"list_ids\" instead (one per reference, in that order), it is the params, every reference replaced by {\"list_id\": ...}. Only \\$refs, operation, adds, rules, found, made, missing and list_ids.","type":["string","object"]}},"propertyNames":{"not":{"pattern":"^\\$(?!(from|map|add|default|merge|find|refs|read|kind_name)$)"}}},"uniqueKey":"definition.states.additionalProperties.exit.additionalProperties","typeLabel":"any"},"description":"Variable name -> template. Every value is rendered against the same context snapshot, then merged into vars at once.","propertyNames":{"$ref":"#/components/schemas/WorkflowChartIdentifier"},"type":"object","uniqueKey":"definition.states.additionalProperties.exit","typeLabel":"object"},"on":{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"target":{"description":"completed, failed, a sibling key (searched upward), or an absolute dotted path.","type":"string","isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].target","typeLabel":"string"},"assign":{"additionalProperties":{"description":"Any JSON value. Strings may hold \\${...} references; a map may hold the reserved \"\\$from\" key, whose rendered map the rest of the map is deep-merged onto. A map holding \"\\$map\" is a list built from another: {\"\\$map\": \"\\${vars.items}\", \"as\": \"item\", \"template\": ...} renders template once per element, with the element at each.\\\u003cas>, its position at each.index and the length at each.count. With \"key\" (a template per element), it is an object instead: each element's template under the key or keys it renders.\n\n{\"\\$add\": [...]} sums its operands and {\"\\$default\": [...]} is the first that renders to something. {\"\\$merge\": [a, b, ...]} deep-merges each object onto the ones before it, as \"\\$from\" does (objects merge key by key; lists and scalars replace; an operand that renders to nothing is skipped). {\"\\$find\": \"\\${vars.items}\", \"where\": condition} is the first element the condition holds for (at each.\\\u003cas>), or nothing.\n\n{\"\\$refs\": \"\\${input.params}\", \"operation\": \"invoice.create\"} lists an add's references, or with \"list_ids\" puts their ListIDs back. {\"\\$read\": id, \"operation\": an add} reads that record whole. {\"\\$kind_name\": \"\\${input.kind}\"} is a kind, or an operation's, as a person reads it (Customer, Service item, Invoice for invoice.create), for a question's details. No other \\$-prefixed key is allowed.","if":{"type":"object"},"then":{"properties":{"$add":{"description":"The sum of its operands: numbers, or templates that render to numbers; nothing counts as 0.","minItems":1,"type":"array"},"$default":{"description":"The first of its candidates that renders to something other than nothing or an empty string.","minItems":1,"type":"array"},"$find":{"description":"A template that renders to a list. With \"where\" (a condition, required) and \"as\" (default item): the first element for which the condition holds, the element at each.\\\u003cas>, each.index and each.count; nothing when none does. Only \\$find, as and where.","type":"string"},"$from":{"type":"string"},"$kind_name":{"description":"A kind or an operation id, or a template for one (customer, item_service, invoice.create, \\${input.kind}): its name as a person reads it -- Customer, Service item, Sales tax code, Invoice -- or nothing for anything but a non-empty string. For a question's details. Only \\$kind_name.","type":"string"},"$map":{"description":"A template that renders to a list. With \"template\" (required) and \"as\" (default item): the list of the template rendered once per element, the element at each.\\\u003cas>, each.index and each.count. With \"key\" too (a template rendered per element, such as \\${each.ref.paths}, to a string or a list of strings): an object, each element's rendered template under its key or keys. Only \\$map, as, template and key.","type":"string"},"$merge":{"description":"Objects, or templates that render to objects, each deep-merged onto the ones before it: objects merge key by key, lists and scalars replace. An operand that renders to nothing is skipped. Alone in its object.","minItems":1,"type":"array"},"$read":{"description":"A record's id, or a template for it. With \"operation\" (an add's operation id, or a template; required): {\"operation\", \"params\"}, the query that reads the record that add makes, whole, by that id -- for a transaction add its type's query by txn_id with the flag that asks for its lines (include_line_items, or a build assembly's include_component_line_items), for a list add its type's query by list_id. A request state sends it with \"operation\": \"\\${vars.read.operation}\" and \"params\": {\"\\$from\": \"\\${vars.read.params}\"}. Only \\$read and operation.","type":"string"},"$refs":{"description":"An add's params (an object, or a template for one). With \"operation\" (the add's operation id, or a template; required): the distinct references the params make, in the order they first appear -- every *_ref field the operation has, its kind derived from the field's name (customer_ref is customer, ar_account_ref account, item_group_ref item_group), one entry per kind and full name with every path it appears at: {kind, field, full_name, name, parent, list_id, paths}. A kind with no full-name lookup (template) is left out.\n\nWith \"adds\" (a list of {kind, add, fields, accept}, as ensure takes them) and \"rules\" (an object of kind to ensure, create or must_exist; ensure by default), each also has \"rule\", \"ensure\": {kind, add}, the add from adds that makes it, one of its name alone under create, or none, \"pick\", true when there is no add, and \"fields\" and \"accept\" from its entry in adds, for resolve.\n\nWith \"found\" (the response of a for-each over the references: its data and outcomes, one per reference in order), each also has \"outcome\", \"how\" and \"record\" from its element (null for one the loop never reached); with \"made\" too (the response of a for-each over the ones found answered not_found), those take its outcome and record. \"missing\": true keeps the references whose outcome is still not_found.\n\nWith \"list_ids\" instead (one per reference, in that order), it is the params, every reference replaced by {\"list_id\": ...}. Only \\$refs, operation, adds, rules, found, made, missing and list_ids.","type":["string","object"]}},"propertyNames":{"not":{"pattern":"^\\$(?!(from|map|add|default|merge|find|refs|read|kind_name)$)"}}},"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].assign.additionalProperties","typeLabel":"any"},"description":"Variable name -> template. Every value is rendered against the same context snapshot, then merged into vars at once.","propertyNames":{"$ref":"#/components/schemas/WorkflowChartIdentifier"},"type":"object","uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].assign","typeLabel":"object"},"description":{"type":"string","uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].description","typeLabel":"string"},"if":{"oneOf":[{"type":"object","required":["path","op"],"properties":{"op":{"enum":["present","absent","eq","neq","gt","gte","lt","lte","contains","starts_with","in"],"type":"string","isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.0.op","typeLabel":"enum\u003cstring>"},"path":{"minLength":1,"type":"string","isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.0.path","typeLabel":"string"},"value":{"oneOf":[{}],"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.0.value","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.0","typeLabel":"object"},{"type":"object","required":["all"],"properties":{"all":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.1.all","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.1","typeLabel":"object"},{"type":"object","required":["any"],"properties":{"any":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.2.any","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.2","typeLabel":"object"},{"type":"object","required":["not"],"properties":{"not":{"oneOf":[{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee","isRequired":true}],"isRequired":true,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.3.not","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if.oneOf.3","typeLabel":"object"}],"uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX].if","typeLabel":"object"}},"required":["target"],"type":"object","uniqueKey":"definition.states.additionalProperties.on.additionalProperties.items.[INDEX]","typeLabel":"object"},"minItems":1,"type":"array","uniqueKey":"definition.states.additionalProperties.on.additionalProperties","typeLabel":"object[]"},"description":"Event name -> transitions. Request states raise success/error, compounds raise done, wait states raise the chosen option id, notify states raise success/error, match states raise success (response.data is the answer: match is exact, strong, candidates or none; record; candidates; candidates_total; candidates_total_complete; index) or error (its fields refused once rendered: invalid_match; or QuickBooks failing the fallback queries on a connection without a name index).","propertyNames":{"allOf":[{"$ref":"#/components/schemas/WorkflowChartIdentifier"},{"not":{"const":"always"}}]},"type":"object","uniqueKey":"definition.states.additionalProperties.on","typeLabel":"object"},"ui":{"description":"Canvas bookkeeping, ignored by the engine. `x`/`y` place the state; `transitions` places the pill drawn for each of its transitions, keyed `\"\u003cevent>|\u003cindex>\"` -- the event and the transition's position within it, which is what identifies a transition. Free-form: anything here is presentation, and a chart with no `ui` at all lays itself out.","properties":{"transitions":{"additionalProperties":{"properties":{"x":{"type":"number","uniqueKey":"definition.states.additionalProperties.ui.transitions.additionalProperties.x","typeLabel":"number"},"y":{"type":"number","uniqueKey":"definition.states.additionalProperties.ui.transitions.additionalProperties.y","typeLabel":"number"}},"type":"object","uniqueKey":"definition.states.additionalProperties.ui.transitions.additionalProperties","typeLabel":"object"},"description":"Pill positions, keyed \"\\\u003cevent>|\\\u003cindex>\".","type":"object","uniqueKey":"definition.states.additionalProperties.ui.transitions","typeLabel":"object"},"x":{"type":"number","uniqueKey":"definition.states.additionalProperties.ui.x","typeLabel":"number"},"y":{"type":"number","uniqueKey":"definition.states.additionalProperties.ui.y","typeLabel":"number"}},"type":"object","uniqueKey":"definition.states.additionalProperties.ui","typeLabel":"object"}},"uniqueKey":"definition.states.additionalProperties","typeLabel":"object"},"minProperties":1,"propertyNames":{"allOf":[{"$ref":"#/components/schemas/WorkflowChartIdentifier"},{"not":{"$ref":"#/components/schemas/WorkflowChartReservedStateKeys"}}]},"type":"object","isRequired":true,"uniqueKey":"definition.states","typeLabel":"object"},"version":{"const":1,"isRequired":true,"uniqueKey":"definition.version","typeLabel":"any"},"description":{"type":"string","uniqueKey":"definition.description","typeLabel":"string"},"headline":{"description":"One plain sentence saying what happened when the run ends `completed`, the `headline` of its webhook, rendered as a declared outcome's `headline` is. Without one the webhook says \"\\\u003cname> completed.\"","type":"string","uniqueKey":"definition.headline","typeLabel":"string"},"input":{"additionalProperties":{"else":{"not":{"required":["operation"]}},"if":{"properties":{"type":{"const":"operation"}},"required":["type"]},"properties":{"type":{"enum":["string","number","boolean","object","array","operation"],"type":"string","isRequired":true,"uniqueKey":"definition.input.additionalProperties.type","typeLabel":"enum\u003cstring>"},"body_of":{"$ref":"fe67c917-4f38-48cc-a78a-5939f259a024","description":"On an object input that isn't a list: it is the body of the QuickBooks operation another input names, validated against that operation's params when the run starts, so a field the operation doesn't take is a 422 at the start (input.params: unknown parameter: \"customer_rf\"). {\"operation\": \"\\\u003cinput>\"} when that input holds an operation id (add_transaction's params, named by operation); {\"kind\": \"\\\u003cinput>\", \"action\": \"create\" | \"update\" | \"query\"} when it holds a kind (ensure's add, named by kind: \\\u003ckind>.create). The input it names is a string input, not a list. Inside a schema, body_of goes on a property and names a property beside it. The typed starts the libraries generate (GET /api/v2/workflows/types) read it.","uniqueKey":"definition.input.additionalProperties.body_of","typeLabel":"any"},"description":{"type":"string","uniqueKey":"definition.input.additionalProperties.description","typeLabel":"string"},"enum":{"description":"On a string input: the values a run may give it, checked when the run starts (add_transaction's operation lists the transaction adds). An object or array input says its values with schema.","items":{"type":"string","uniqueKey":"definition.input.additionalProperties.enum.items.[INDEX]","typeLabel":"string"},"minItems":1,"type":"array","uniqueKey":"definition.input.additionalProperties.enum","typeLabel":"string[]"},"example":{"description":"An example value, in the input's own JSON type: a string, a number, an object, or for a list the whole list. It is what the usage contract's start body and the dashboard's Run drawer show. An operation input needs none: its example is built from the operation. Nor does a list of objects a workflow state runs through (each: ${input.\u003cname>}): its example is one element of what that workflow takes.","uniqueKey":"definition.input.additionalProperties.example","typeLabel":"any"},"list":{"default":false,"description":"A list of what the rest of the declaration describes: with type operation, a list of that operation's bodies. The run input then takes an array, and each element is validated on its own.","type":"boolean","uniqueKey":"definition.input.additionalProperties.list","typeLabel":"boolean"},"only":{"items":{"type":"string","uniqueKey":"definition.input.additionalProperties.only.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"definition.input.additionalProperties.only","typeLabel":"string[]"},"operation":{"description":"The operation this input is a body for. Left out, the input takes a pair -- {\"operation\": \"customer.query\", \"params\": {...}} -- validated against whichever operation the run names, which a request state sends with \"operation\": \"\\${input.\\\u003cname>.operation}\" and \"params\": {\"\\$from\": \"\\${input.\\\u003cname>.params}\"}.","type":"string","uniqueKey":"definition.input.additionalProperties.operation","typeLabel":"string"},"required":{"type":"boolean","uniqueKey":"definition.input.additionalProperties.required","typeLabel":"boolean"},"schema":{"additionalProperties":false,"description":"The shape of one value of this input (of each element, for a list), checked when a run starts and against the example: a subset of JSON Schema (type, properties, required, additionalProperties, items, enum, description, body_of). Allowed on an object or array input, or a list input that isn't an operation. Its top-level type defaults to the input's type. The reference picker and lint read its fields, so \\${input.\\\u003cname>.\\\u003cfield>} naming a field it lacks is a warning.","properties":{"additionalProperties":{"oneOf":[{"type":"boolean","description":"false refuses fields that properties doesn't name; true (the default) allows them; a schema allows them when they match it.","uniqueKey":"definition.input.additionalProperties.schema.\\additionalProperties.oneOf.0","typeLabel":"boolean"},{"description":"false refuses fields that properties doesn't name; true (the default) allows them; a schema allows them when they match it.","uniqueKey":"definition.input.additionalProperties.schema.\\additionalProperties.oneOf.1","typeLabel":"any"}],"uniqueKey":"definition.input.additionalProperties.schema.\\additionalProperties","typeLabel":"boolean | any"},"body_of":{"oneOf":[{"type":"object","description":"On an object: it is the body of the QuickBooks operation a sibling field names, validated against that operation's params when the run starts. {\"operation\": \"\\\u003csibling>\"} when the sibling holds an operation id (invoice.create); {\"kind\": \"\\\u003csibling>\", \"action\": \"create\"} when it holds a kind (customer), for the operation \\\u003ckind>.\\\u003caction>.","required":["operation"],"properties":{"operation":{"type":"string","isRequired":true,"uniqueKey":"definition.input.additionalProperties.schema.body_of.oneOf.0.operation","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"definition.input.additionalProperties.schema.body_of.oneOf.0","typeLabel":"object"},{"type":"object","description":"On an object: it is the body of the QuickBooks operation a sibling field names, validated against that operation's params when the run starts. {\"operation\": \"\\\u003csibling>\"} when the sibling holds an operation id (invoice.create); {\"kind\": \"\\\u003csibling>\", \"action\": \"create\"} when it holds a kind (customer), for the operation \\\u003ckind>.\\\u003caction>.","required":["kind","action"],"properties":{"action":{"enum":["create","update","query"],"type":"string","isRequired":true,"uniqueKey":"definition.input.additionalProperties.schema.body_of.oneOf.1.action","typeLabel":"enum\u003cstring>"},"kind":{"type":"string","isRequired":true,"uniqueKey":"definition.input.additionalProperties.schema.body_of.oneOf.1.kind","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"definition.input.additionalProperties.schema.body_of.oneOf.1","typeLabel":"object"}],"uniqueKey":"definition.input.additionalProperties.schema.body_of","typeLabel":"object"},"description":{"description":"What it is, shown in the usage contract's fields table.","type":"string","uniqueKey":"definition.input.additionalProperties.schema.description","typeLabel":"string"},"enum":{"description":"The values allowed.","minItems":1,"type":"array","uniqueKey":"definition.input.additionalProperties.schema.enum","typeLabel":"array"},"items":{"$circularRef":"a589b71e-b844-4466-8396-3c5e2933d443","description":"Every element of an array.","uniqueKey":"definition.input.additionalProperties.schema.\\items","typeLabel":"any"},"properties":{"additionalProperties":{"$circularRef":"a589b71e-b844-4466-8396-3c5e2933d443"},"description":"An object's fields, each a schema.","type":"object","uniqueKey":"definition.input.additionalProperties.schema.properties","typeLabel":"object"},"required":{"description":"The fields an object must have.","items":{"type":"string","uniqueKey":"definition.input.additionalProperties.schema.required.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"definition.input.additionalProperties.schema.required","typeLabel":"string[]"},"type":{"oneOf":[{"type":"string","description":"string, number, integer, boolean, object, array or null, or a list of them ([\"string\", \"null\"]). At the top it defaults to the input's own type.","enum":["string","number","integer","boolean","object","array","null"],"uniqueKey":"definition.input.additionalProperties.schema.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"array","items":{"enum":["string","number","integer","boolean","object","array","null"],"type":"string","uniqueKey":"definition.input.additionalProperties.schema.type.oneOf.1.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"string, number, integer, boolean, object, array or null, or a list of them ([\"string\", \"null\"]). At the top it defaults to the input's own type.","minItems":1,"uniqueKey":"definition.input.additionalProperties.schema.type.oneOf.1","typeLabel":"enum\u003cstring>[]"}],"uniqueKey":"definition.input.additionalProperties.schema.type","typeLabel":"enum\u003cstring> | enum\u003cstring>[]"}},"type":"object","uniqueKey":"definition.input.additionalProperties.schema","typeLabel":"object"}},"required":["type"],"then":{"not":{"required":["schema"]}},"type":"object","uniqueKey":"definition.input.additionalProperties","typeLabel":"object"},"description":"What a run accepts. Validated at run start and published as a JSON Schema.","propertyNames":{"$ref":"#/components/schemas/WorkflowChartIdentifier"},"type":"object","uniqueKey":"definition.input","typeLabel":"object"},"key":{"pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string","uniqueKey":"definition.key","typeLabel":"string"},"name":{"type":"string","uniqueKey":"definition.name","typeLabel":"string"},"on":{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"target":{"description":"completed, failed, a sibling key (searched upward), or an absolute dotted path.","type":"string","isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].target","typeLabel":"string"},"assign":{"additionalProperties":{"description":"Any JSON value. Strings may hold \\${...} references; a map may hold the reserved \"\\$from\" key, whose rendered map the rest of the map is deep-merged onto. A map holding \"\\$map\" is a list built from another: {\"\\$map\": \"\\${vars.items}\", \"as\": \"item\", \"template\": ...} renders template once per element, with the element at each.\\\u003cas>, its position at each.index and the length at each.count. With \"key\" (a template per element), it is an object instead: each element's template under the key or keys it renders.\n\n{\"\\$add\": [...]} sums its operands and {\"\\$default\": [...]} is the first that renders to something. {\"\\$merge\": [a, b, ...]} deep-merges each object onto the ones before it, as \"\\$from\" does (objects merge key by key; lists and scalars replace; an operand that renders to nothing is skipped). {\"\\$find\": \"\\${vars.items}\", \"where\": condition} is the first element the condition holds for (at each.\\\u003cas>), or nothing.\n\n{\"\\$refs\": \"\\${input.params}\", \"operation\": \"invoice.create\"} lists an add's references, or with \"list_ids\" puts their ListIDs back. {\"\\$read\": id, \"operation\": an add} reads that record whole. {\"\\$kind_name\": \"\\${input.kind}\"} is a kind, or an operation's, as a person reads it (Customer, Service item, Invoice for invoice.create), for a question's details. No other \\$-prefixed key is allowed.","if":{"type":"object"},"then":{"properties":{"$add":{"description":"The sum of its operands: numbers, or templates that render to numbers; nothing counts as 0.","minItems":1,"type":"array"},"$default":{"description":"The first of its candidates that renders to something other than nothing or an empty string.","minItems":1,"type":"array"},"$find":{"description":"A template that renders to a list. With \"where\" (a condition, required) and \"as\" (default item): the first element for which the condition holds, the element at each.\\\u003cas>, each.index and each.count; nothing when none does. Only \\$find, as and where.","type":"string"},"$from":{"type":"string"},"$kind_name":{"description":"A kind or an operation id, or a template for one (customer, item_service, invoice.create, \\${input.kind}): its name as a person reads it -- Customer, Service item, Sales tax code, Invoice -- or nothing for anything but a non-empty string. For a question's details. Only \\$kind_name.","type":"string"},"$map":{"description":"A template that renders to a list. With \"template\" (required) and \"as\" (default item): the list of the template rendered once per element, the element at each.\\\u003cas>, each.index and each.count. With \"key\" too (a template rendered per element, such as \\${each.ref.paths}, to a string or a list of strings): an object, each element's rendered template under its key or keys. Only \\$map, as, template and key.","type":"string"},"$merge":{"description":"Objects, or templates that render to objects, each deep-merged onto the ones before it: objects merge key by key, lists and scalars replace. An operand that renders to nothing is skipped. Alone in its object.","minItems":1,"type":"array"},"$read":{"description":"A record's id, or a template for it. With \"operation\" (an add's operation id, or a template; required): {\"operation\", \"params\"}, the query that reads the record that add makes, whole, by that id -- for a transaction add its type's query by txn_id with the flag that asks for its lines (include_line_items, or a build assembly's include_component_line_items), for a list add its type's query by list_id. A request state sends it with \"operation\": \"\\${vars.read.operation}\" and \"params\": {\"\\$from\": \"\\${vars.read.params}\"}. Only \\$read and operation.","type":"string"},"$refs":{"description":"An add's params (an object, or a template for one). With \"operation\" (the add's operation id, or a template; required): the distinct references the params make, in the order they first appear -- every *_ref field the operation has, its kind derived from the field's name (customer_ref is customer, ar_account_ref account, item_group_ref item_group), one entry per kind and full name with every path it appears at: {kind, field, full_name, name, parent, list_id, paths}. A kind with no full-name lookup (template) is left out.\n\nWith \"adds\" (a list of {kind, add, fields, accept}, as ensure takes them) and \"rules\" (an object of kind to ensure, create or must_exist; ensure by default), each also has \"rule\", \"ensure\": {kind, add}, the add from adds that makes it, one of its name alone under create, or none, \"pick\", true when there is no add, and \"fields\" and \"accept\" from its entry in adds, for resolve.\n\nWith \"found\" (the response of a for-each over the references: its data and outcomes, one per reference in order), each also has \"outcome\", \"how\" and \"record\" from its element (null for one the loop never reached); with \"made\" too (the response of a for-each over the ones found answered not_found), those take its outcome and record. \"missing\": true keeps the references whose outcome is still not_found.\n\nWith \"list_ids\" instead (one per reference, in that order), it is the params, every reference replaced by {\"list_id\": ...}. Only \\$refs, operation, adds, rules, found, made, missing and list_ids.","type":["string","object"]}},"propertyNames":{"not":{"pattern":"^\\$(?!(from|map|add|default|merge|find|refs|read|kind_name)$)"}}},"uniqueKey":"definition.on.additionalProperties.items.[INDEX].assign.additionalProperties","typeLabel":"any"},"description":"Variable name -> template. Every value is rendered against the same context snapshot, then merged into vars at once.","propertyNames":{"$ref":"#/components/schemas/WorkflowChartIdentifier"},"type":"object","uniqueKey":"definition.on.additionalProperties.items.[INDEX].assign","typeLabel":"object"},"description":{"type":"string","uniqueKey":"definition.on.additionalProperties.items.[INDEX].description","typeLabel":"string"},"if":{"oneOf":[{"type":"object","required":["path","op"],"properties":{"op":{"enum":["present","absent","eq","neq","gt","gte","lt","lte","contains","starts_with","in"],"type":"string","isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.0.op","typeLabel":"enum\u003cstring>"},"path":{"minLength":1,"type":"string","isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.0.path","typeLabel":"string"},"value":{"oneOf":[{}],"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.0.value","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.0","typeLabel":"object"},{"type":"object","required":["all"],"properties":{"all":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.1.all","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.1","typeLabel":"object"},{"type":"object","required":["any"],"properties":{"any":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.2.any","typeLabel":"array"}},"additionalProperties":false,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.2","typeLabel":"object"},{"type":"object","required":["not"],"properties":{"not":{"oneOf":[{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee","isRequired":true}],"isRequired":true,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.3.not","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if.oneOf.3","typeLabel":"object"}],"uniqueKey":"definition.on.additionalProperties.items.[INDEX].if","typeLabel":"object"}},"required":["target"],"type":"object","uniqueKey":"definition.on.additionalProperties.items.[INDEX]","typeLabel":"object"},"minItems":1,"type":"array","uniqueKey":"definition.on.additionalProperties","typeLabel":"object[]"},"description":"Event name -> transitions. Request states raise success/error, compounds raise done, wait states raise the chosen option id, notify states raise success/error, match states raise success (response.data is the answer: match is exact, strong, candidates or none; record; candidates; candidates_total; candidates_total_complete; index) or error (its fields refused once rendered: invalid_match; or QuickBooks failing the fallback queries on a connection without a name index).","propertyNames":{"allOf":[{"$ref":"#/components/schemas/WorkflowChartIdentifier"},{"not":{"const":"always"}}]},"type":"object","uniqueKey":"definition.on","typeLabel":"object"},"outcomes":{"additionalProperties":{"properties":{"description":{"description":"What this ending means, when its key does not say it already. Optional. Shown on the canvas, in the usage contract and in the guide.","type":"string","uniqueKey":"definition.outcomes.additionalProperties.description","typeLabel":"string"},"headline":{"description":"One plain sentence saying what happened when the run ends this way, the `headline` of its webhook: a template, rendered with the run's context and `output` (and `error` on a failure), such as \"Created \\${output.record.full_name} in QuickBooks.\" A value it names that is missing, or a template that does not render, gives the engine's own sentence instead. For people: an app never parses it.","type":"string","uniqueKey":"definition.outcomes.additionalProperties.headline","typeLabel":"string"},"kind":{"default":"success","description":"success: the run ends completed with this outcome. failure: the run ends failed with this outcome, and a workflow calling this one receives it as an error with response.outcome set.","enum":["success","failure"],"type":"string","uniqueKey":"definition.outcomes.additionalProperties.kind","typeLabel":"enum\u003cstring>"},"output":{"description":"Template rendered when the run ends this way, instead of the chart's own `output`. While it renders, `meta.outcome` holds the outcome key.","uniqueKey":"definition.outcomes.additionalProperties.output","typeLabel":"any"}},"type":"object","uniqueKey":"definition.outcomes.additionalProperties","typeLabel":"object"},"description":"Extra ways a run can end, beyond completed and failed. Each is a success (the default: the workflow worked as designed and this is how it ended; the run ends `completed` with this `outcome`) or, with `\"kind\": \"failure\"`, a named failure (the run ends `failed` with this `outcome`, and `error` is whatever the transition assigned to `error`, else the description, else `ended with outcome \u003ckey>`). A transition may target a declared outcome from anywhere, and no state at any level may use one of these keys.","propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,49}$"},"type":"object","uniqueKey":"definition.outcomes","typeLabel":"object"},"output":{"description":"Template evaluated against the final context when the run reaches `completed` or an outcome with no `output` of its own. Defaults to \\${vars}. While it renders, `meta.outcome` holds the outcome key.","uniqueKey":"definition.output","typeLabel":"any"},"ui":{"description":"Canvas bookkeeping for the chart itself, ignored by the engine: one entry per outcome placing its terminal node, and `transitions` placing the pills of the root's own handlers, keyed \"\\\u003cevent>|\\\u003cindex>\".","type":"object","uniqueKey":"definition.ui","typeLabel":"object"}},"required":["version","initial","states"],"title":"QuBeSync workflow chart","type":"object","isRequired":true,"uniqueKey":"definition","typeLabel":"QuBeSync workflow chart · object"}},"required":["definition"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"definition":{"initial":"\u003cstring>","states":{},"version":1,"description":"\u003cstring>","headline":"\u003cstring>","input":{},"key":"\u003cstring>","name":"\u003cstring>","on":{},"outcomes":{},"output":"\u003cunknown>","ui":{}}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"de125bfc-6a23-4d61-a109-d319931c5f4c":{"content":{"application/json":{"schema":{"properties":{"errors":{"items":{"description":"One problem, located inside the document it came from.","properties":{"message":{"example":"unknown target \"bar\"","type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"path":{"example":"states.resolve_conflict.states.ask.on.rename.0.target","type":"string","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"}},"type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"errors","typeLabel":"object[]"},"valid":{"type":"boolean","uniqueKey":"valid","typeLabel":"boolean"},"warnings":{"items":{"description":"One problem, located inside the document it came from.","properties":{"message":{"example":"unknown target \"bar\"","type":"string","uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"},"path":{"example":"states.resolve_conflict.states.ask.on.rename.0.target","type":"string","uniqueKey":"warnings.items.[INDEX].path","typeLabel":"string"}},"type":"object","uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"warnings","typeLabel":"object[]"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"message":"unknown target \"bar\"","path":"states.resolve_conflict.states.ask.on.rename.0.target"}],"valid":true,"warnings":[{"message":"unknown target \"bar\"","path":"states.resolve_conflict.states.ask.on.rename.0.target"}]}}},"exampleType":"generated"}},"description":"The verdict","exampleType":"generated"}},"security":{"d94a2698-4d83-44ee-a460-30a886b3ebd5":{"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"}},"schemas":{"8c06db97-b615-45e2-b599-cbbf2ff785ee":{"oneOf":[{"type":"object","required":["path","op"],"properties":{"op":{"enum":["present","absent","eq","neq","gt","gte","lt","lte","contains","starts_with","in"],"type":"string","isRequired":true},"path":{"minLength":1,"type":"string","isRequired":true},"value":{"oneOf":[{}]}},"additionalProperties":false},{"type":"object","required":["all"],"properties":{"all":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true}},"additionalProperties":false},{"type":"object","required":["any"],"properties":{"any":{"items":{"$circularRef":"8c06db97-b615-45e2-b599-cbbf2ff785ee"},"minItems":1,"type":"array","isRequired":true}},"additionalProperties":false},{"type":"object","required":["not"],"properties":{"not":{"oneOf":[{"isRequired":true}],"isRequired":true}},"additionalProperties":false}]},"a589b71e-b844-4466-8396-3c5e2933d443":{"additionalProperties":false,"description":"A JSON Schema subset describing one value of this input: type, properties, required, additionalProperties, items, enum, description, body_of.","properties":{"additionalProperties":{"oneOf":[{"type":"boolean","description":"false refuses fields that properties doesn't name; true (the default) allows them; a schema allows them when they match it."},{"description":"false refuses fields that properties doesn't name; true (the default) allows them; a schema allows them when they match it."}]},"body_of":{"oneOf":[{"type":"object","description":"On an object: it is the body of the QuickBooks operation a sibling field names, validated against that operation's params when the run starts. {\"operation\": \"\\\u003csibling>\"} when the sibling holds an operation id (invoice.create); {\"kind\": \"\\\u003csibling>\", \"action\": \"create\"} when it holds a kind (customer), for the operation \\\u003ckind>.\\\u003caction>.","required":["operation"],"properties":{"operation":{"type":"string","isRequired":true}},"additionalProperties":false},{"type":"object","description":"On an object: it is the body of the QuickBooks operation a sibling field names, validated against that operation's params when the run starts. {\"operation\": \"\\\u003csibling>\"} when the sibling holds an operation id (invoice.create); {\"kind\": \"\\\u003csibling>\", \"action\": \"create\"} when it holds a kind (customer), for the operation \\\u003ckind>.\\\u003caction>.","required":["kind","action"],"properties":{"action":{"enum":["create","update","query"],"type":"string","isRequired":true},"kind":{"type":"string","isRequired":true}},"additionalProperties":false}]},"description":{"description":"What it is, shown in the usage contract's fields table.","type":"string"},"enum":{"description":"The values allowed.","minItems":1,"type":"array"},"items":{"$circularRef":"a589b71e-b844-4466-8396-3c5e2933d443","description":"Every element of an array."},"properties":{"additionalProperties":{"$circularRef":"a589b71e-b844-4466-8396-3c5e2933d443"},"description":"An object's fields, each a schema.","type":"object"},"required":{"description":"The fields an object must have.","items":{"type":"string"},"type":"array"},"type":{"oneOf":[{"type":"string","description":"string, number, integer, boolean, object, array or null, or a list of them ([\"string\", \"null\"]). At the top it defaults to the input's own type.","enum":["string","number","integer","boolean","object","array","null"]},{"type":"array","items":{"enum":["string","number","integer","boolean","object","array","null"],"type":"string"},"description":"string, number, integer, boolean, object, array or null, or a list of them ([\"string\", \"null\"]). At the top it defaults to the input's own type.","minItems":1}]}},"type":"object"}},"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":"Validate a chart without saving it - QuBe Sync","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T16:20:12.774Z","originalFileLocation":"api-reference/v2/workflows/validate-a-chart-without-saving-it.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=\"Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).\">\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=\"Validate a chart without saving it - QuBe Sync\">\u003cmeta data-mint-head property=\"og:description\" content=\"Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).\">\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/workflows/validate-a-chart-without-saving-it\">\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=Workflows\u0026amp;title=Validate+a+chart+without+saving+it\u0026amp;description=Always+responds+200.+%60valid%60+says+whether+the+chart+would+be+accepted%3B+%60errors%60+lists+every+problem+with+a+document-shaped+path%2C+and+%60warnings%60+carries+the+non-\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=4a8b9680694722d7ce29a1cd03573a9c65b13c09a6c9940bee8eeac4a513035c\">\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=\"Validate a chart without saving it - QuBe Sync\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qubesync.mintlify.app/_mintlify/api/og/v2?division=Workflows\u0026amp;title=Validate+a+chart+without+saving+it\u0026amp;description=Always+responds+200.+%60valid%60+says+whether+the+chart+would+be+accepted%3B+%60errors%60+lists+every+problem+with+a+document-shaped+path%2C+and+%60warnings%60+carries+the+non-\u0026amp;theme=c2fec557b6516639b3d250f1\u0026amp;signature=4a8b9680694722d7ce29a1cd03573a9c65b13c09a6c9940bee8eeac4a513035c\">\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/workflows/validate-a-chart-without-saving-it\">\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/workflows/validate-a-chart-without-saving-it.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/workflows/validate-a-chart-without-saving-it#webpage\",\"url\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it\",\"name\":\"Validate a chart without saving it\",\"description\":\"Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).\",\"dateModified\":\"2026-11-02T16:20:12.774Z\",\"isPartOf\":{\"@id\":\"https://docs.qubesync.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it#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\":\"Workflows\",\"item\":\"https://docs.qubesync.com/api-reference/v2/workflows/list-workflow-runs-for-a-connection\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Validate a chart without saving it\",\"item\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it#apireference\",\"headline\":\"Validate a chart without saving it\",\"name\":\"Validate a chart without saving it\",\"description\":\"Always responds 200. valid says whether the chart would be accepted; errors lists every problem with a document-shaped path, and warnings carries the non-blocking lint (unreachable states, undeclared inputs).\",\"url\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qubesync.com/api-reference/v2/workflows/validate-a-chart-without-saving-it#webpage\"},\"dateModified\":\"2026-11-02T16:20:12.774Z\",\"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","description":"The input of every workflow your app has published, at its published version, as JSON Schema: what the libraries' generators (`bin/rails g qube_rails:workflows`, `qube_sync workflows`) write typed start methods from, one per workflow and, for a body whose operation another input names, one per operation. An operation body is `{\"$operation\": \"invoice.create\"}`, a reference to that operation's params (the libraries already hold every operation's types, from `/libraries/operations.json`, whose digest is `operations_digest`); an object holding such bodies is a `oneOf` with a `discriminator` naming the input that picks the operation, one branch per operation, each with the `title` generated code names it by.\n\nA `$operation` body's `set_by_workflow` lists the fields the workflow sets itself (the caller's value is overwritten), which generated types make optional; the rest keep the operation's own required fields. The run checks a body's fields and types when it starts, and required fields when it sends the request. With `include=drafts`, `drafts` adds each workflow whose working copy differs from what is published (or that was never published), so you can type against a version before you publish it. `digest` changes whenever any of this does, and is the `ETag`: send it back as `If-None-Match` for a 304. Only your app's workflows; inputs only for now.","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","description":"The chart itself, plus `input_schema` (a JSON Schema for what a run of it accepts) and `example_input` to prefill with.","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}","href":"/api-reference/v2/workflows/get-a-workflow"},{"title":"Create or replace a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /workflows/{key}","href":"/api-reference/v2/workflows/create-or-replace-a-workflow"},{"title":"Delete a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /workflows/{key}","href":"/api-reference/v2/workflows/delete-a-workflow"},{"title":"Publish the working copy","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/{key}/publish","href":"/api-reference/v2/workflows/publish-the-working-copy"},{"title":"Unpublish a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /workflows/{key}/unpublish","href":"/api-reference/v2/workflows/unpublish-a-workflow"},{"title":"How to use a workflow","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/usage","href":"/api-reference/v2/workflows/how-to-use-a-workflow"},{"title":"How to use a workflow, as Markdown","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/usage.md","href":"/api-reference/v2/workflows/how-to-use-a-workflow-as-markdown"},{"title":"A workflow's published versions","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/versions","href":"/api-reference/v2/workflows/a-workflows-published-versions"},{"title":"One published version","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /workflows/{key}/versions/{number}","href":"/api-reference/v2/workflows/one-published-version"}]},{"group":"Account Tax Line Infos","pages":[{"title":"List account tax line infos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/account-tax-line-infos","href":"/api-reference/v2/account-tax-line-infos/list-account-tax-line-infos"}]},{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/list-accounts"},{"title":"Update account","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/update-account"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/accounts","href":"/api-reference/v2/accounts/create-account"}]},{"group":"Aging Reports","pages":[{"title":"List aging reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/aging-reports","href":"/api-reference/v2/aging-reports/list-aging-reports"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/list-alerts"},{"title":"Create alert","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/create-alert"},{"title":"Delete alert","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/alerts","href":"/api-reference/v2/alerts/delete-alert"}]},{"group":"Ar Refund Credit Cards","pages":[{"title":"List ar refund credit cards","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/ar-refund-credit-cards","href":"/api-reference/v2/ar-refund-credit-cards/list-ar-refund-credit-cards"},{"title":"Create ar refund credit card","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/ar-refund-credit-cards","href":"/api-reference/v2/ar-refund-credit-cards/create-ar-refund-credit-card"}]},{"group":"Bar Codes","pages":[{"title":"List bar codes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bar-codes","href":"/api-reference/v2/bar-codes/list-bar-codes"}]},{"group":"Bill Payment Checks","pages":[{"title":"List bill payment checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/list-bill-payment-checks"},{"title":"Update bill payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/update-bill-payment-check"},{"title":"Create bill payment check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bill-payment-checks","href":"/api-reference/v2/bill-payment-checks/create-bill-payment-check"}]},{"group":"Bill Payment Credit Cards","pages":[{"title":"List bill payment credit cards","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-payment-credit-cards","href":"/api-reference/v2/bill-payment-credit-cards/list-bill-payment-credit-cards"},{"title":"Create bill payment credit card","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bill-payment-credit-cards","href":"/api-reference/v2/bill-payment-credit-cards/create-bill-payment-credit-card"}]},{"group":"Bill To Pays","pages":[{"title":"List bill to pays","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bill-to-pays","href":"/api-reference/v2/bill-to-pays/list-bill-to-pays"}]},{"group":"Billing Rates","pages":[{"title":"List billing rates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/billing-rates","href":"/api-reference/v2/billing-rates/list-billing-rates"},{"title":"Create billing rate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/billing-rates","href":"/api-reference/v2/billing-rates/create-billing-rate"}]},{"group":"Bills","pages":[{"title":"List bills","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/bills","href":"/api-reference/v2/bills/list-bills"},{"title":"Update bill","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/bills","href":"/api-reference/v2/bills/update-bill"},{"title":"Create bill","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/bills","href":"/api-reference/v2/bills/create-bill"}]},{"group":"Budget Summary Reports","pages":[{"title":"List budget summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/budget-summary-reports","href":"/api-reference/v2/budget-summary-reports/list-budget-summary-reports"}]},{"group":"Build Assemblies","pages":[{"title":"List build assemblies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/list-build-assemblies"},{"title":"Update build assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/update-build-assembly"},{"title":"Create build assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/build-assemblies","href":"/api-reference/v2/build-assemblies/create-build-assembly"}]},{"group":"Charges","pages":[{"title":"List charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/charges","href":"/api-reference/v2/charges/list-charges"},{"title":"Update charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/charges","href":"/api-reference/v2/charges/update-charge"},{"title":"Create charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/charges","href":"/api-reference/v2/charges/create-charge"}]},{"group":"Checks","pages":[{"title":"List checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/checks","href":"/api-reference/v2/checks/list-checks"},{"title":"Update check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/checks","href":"/api-reference/v2/checks/update-check"},{"title":"Create check","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/checks","href":"/api-reference/v2/checks/create-check"}]},{"group":"Classes","pages":[{"title":"List classes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/classes","href":"/api-reference/v2/classes/list-classes"},{"title":"Update class","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/classes","href":"/api-reference/v2/classes/update-class"},{"title":"Create class","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/classes","href":"/api-reference/v2/classes/create-class"}]},{"group":"Cleared Statuses","pages":[{"title":"Update cleared status","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/cleared-statuses","href":"/api-reference/v2/cleared-statuses/update-cleared-status"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/companies","href":"/api-reference/v2/companies/list-companies"}]},{"group":"Company Activities","pages":[{"title":"List company activities","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/company-activities","href":"/api-reference/v2/company-activities/list-company-activities"}]},{"group":"Credit Card Charges","pages":[{"title":"List credit card charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/list-credit-card-charges"},{"title":"Update credit card charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/update-credit-card-charge"},{"title":"Create credit card charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-card-charges","href":"/api-reference/v2/credit-card-charges/create-credit-card-charge"}]},{"group":"Credit Card Credits","pages":[{"title":"List credit card credits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/list-credit-card-credits"},{"title":"Update credit card credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/update-credit-card-credit"},{"title":"Create credit card credit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-card-credits","href":"/api-reference/v2/credit-card-credits/create-credit-card-credit"}]},{"group":"Credit Memos","pages":[{"title":"List credit memos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/list-credit-memos"},{"title":"Update credit memo","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/update-credit-memo"},{"title":"Create credit memo","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/credit-memos","href":"/api-reference/v2/credit-memos/create-credit-memo"}]},{"group":"Currencies","pages":[{"title":"List currencies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/list-currencies"},{"title":"Update currency","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/update-currency"},{"title":"Create currency","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/currencies","href":"/api-reference/v2/currencies/create-currency"}]},{"group":"Custom Detail Reports","pages":[{"title":"List custom detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/custom-detail-reports","href":"/api-reference/v2/custom-detail-reports/list-custom-detail-reports"}]},{"group":"Custom Summary Reports","pages":[{"title":"List custom summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/custom-summary-reports","href":"/api-reference/v2/custom-summary-reports/list-custom-summary-reports"}]},{"group":"Customer Msgs","pages":[{"title":"List customer msgs","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customer-msgs","href":"/api-reference/v2/customer-msgs/list-customer-msgs"},{"title":"Create customer msg","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customer-msgs","href":"/api-reference/v2/customer-msgs/create-customer-msg"}]},{"group":"Customer Types","pages":[{"title":"List customer types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customer-types","href":"/api-reference/v2/customer-types/list-customer-types"},{"title":"Create customer type","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customer-types","href":"/api-reference/v2/customer-types/create-customer-type"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/customers","href":"/api-reference/v2/customers/list-customers"},{"title":"Update customer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/customers","href":"/api-reference/v2/customers/update-customer"},{"title":"Create customer","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/customers","href":"/api-reference/v2/customers/create-customer"}]},{"group":"Data Event Recovery Infos","pages":[{"title":"List data event recovery infos","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/data-event-recovery-infos","href":"/api-reference/v2/data-event-recovery-infos/list-data-event-recovery-infos"},{"title":"Delete data event recovery info","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-event-recovery-infos","href":"/api-reference/v2/data-event-recovery-infos/delete-data-event-recovery-info"}]},{"group":"Data Ext Defs","pages":[{"title":"List data ext defs","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/list-data-ext-defs"},{"title":"Update data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/update-data-ext-def"},{"title":"Create data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/create-data-ext-def"},{"title":"Delete data ext def","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-ext-defs","href":"/api-reference/v2/data-ext-defs/delete-data-ext-def"}]},{"group":"Data Exts","pages":[{"title":"Update data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/update-data-ext"},{"title":"Create data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/create-data-ext"},{"title":"Delete data ext","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/data-exts","href":"/api-reference/v2/data-exts/delete-data-ext"}]},{"group":"Date Driven Terms","pages":[{"title":"List date driven terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/date-driven-terms","href":"/api-reference/v2/date-driven-terms/list-date-driven-terms"},{"title":"Create date driven terms","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/date-driven-terms","href":"/api-reference/v2/date-driven-terms/create-date-driven-terms"}]},{"group":"Deposits","pages":[{"title":"List deposits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/list-deposits"},{"title":"Update deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/update-deposit"},{"title":"Create deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/deposits","href":"/api-reference/v2/deposits/create-deposit"}]},{"group":"Employee Defaults","pages":[{"title":"List employee defaults","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/employee-defaults","href":"/api-reference/v2/employee-defaults/list-employee-defaults"},{"title":"Update employee default","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/employee-defaults","href":"/api-reference/v2/employee-defaults/update-employee-default"}]},{"group":"Employees","pages":[{"title":"List employees","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/employees","href":"/api-reference/v2/employees/list-employees"},{"title":"Update employee","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/employees","href":"/api-reference/v2/employees/update-employee"},{"title":"Create employee","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/employees","href":"/api-reference/v2/employees/create-employee"}]},{"group":"Entities","pages":[{"title":"List entities","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/entities","href":"/api-reference/v2/entities/list-entities"}]},{"group":"Estimates","pages":[{"title":"List estimates","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/list-estimates"},{"title":"Update estimate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/update-estimate"},{"title":"Create estimate","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/estimates","href":"/api-reference/v2/estimates/create-estimate"}]},{"group":"Form1099 Category Account Mappings","pages":[{"title":"List form1099 category account mappings","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/form1099-category-account-mappings","href":"/api-reference/v2/form1099-category-account-mappings/list-form1099-category-account-mappings"},{"title":"Update form1099 category account mapping","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/form1099-category-account-mappings","href":"/api-reference/v2/form1099-category-account-mappings/update-form1099-category-account-mapping"}]},{"group":"General Detail Reports","pages":[{"title":"List general detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/general-detail-reports","href":"/api-reference/v2/general-detail-reports/list-general-detail-reports"}]},{"group":"General Summary Reports","pages":[{"title":"List general summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/general-summary-reports","href":"/api-reference/v2/general-summary-reports/list-general-summary-reports"}]},{"group":"Hosts","pages":[{"title":"List hosts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/hosts","href":"/api-reference/v2/hosts/list-hosts"}]},{"group":"Inventory Adjustments","pages":[{"title":"List inventory adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/list-inventory-adjustments"},{"title":"Update inventory adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/update-inventory-adjustment"},{"title":"Create inventory adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/inventory-adjustments","href":"/api-reference/v2/inventory-adjustments/create-inventory-adjustment"}]},{"group":"Inventory Sites","pages":[{"title":"List inventory sites","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/list-inventory-sites"},{"title":"Update inventory site","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/update-inventory-site"},{"title":"Create inventory site","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/inventory-sites","href":"/api-reference/v2/inventory-sites/create-inventory-site"}]},{"group":"Invoices","pages":[{"title":"List invoices","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/list-invoices"},{"title":"Update invoice","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/update-invoice"},{"title":"Create invoice","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/invoices","href":"/api-reference/v2/invoices/create-invoice"}]},{"group":"Item Assemblies Can Builds","pages":[{"title":"List item assemblies can builds","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-assemblies-can-builds","href":"/api-reference/v2/item-assemblies-can-builds/list-item-assemblies-can-builds"}]},{"group":"Item Discounts","pages":[{"title":"List item discounts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/list-item-discounts"},{"title":"Update item discount","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/update-item-discount"},{"title":"Create item discount","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-discounts","href":"/api-reference/v2/item-discounts/create-item-discount"}]},{"group":"Item Fixed Assets","pages":[{"title":"List item fixed assets","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/list-item-fixed-assets"},{"title":"Update item fixed asset","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/update-item-fixed-asset"},{"title":"Create item fixed asset","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-fixed-assets","href":"/api-reference/v2/item-fixed-assets/create-item-fixed-asset"}]},{"group":"Item Groups","pages":[{"title":"List item groups","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/list-item-groups"},{"title":"Update item group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/update-item-group"},{"title":"Create item group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-groups","href":"/api-reference/v2/item-groups/create-item-group"}]},{"group":"Item Inventories","pages":[{"title":"List item inventories","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/list-item-inventories"},{"title":"Update item inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/update-item-inventory"},{"title":"Create item inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-inventories","href":"/api-reference/v2/item-inventories/create-item-inventory"}]},{"group":"Item Inventory Assemblies","pages":[{"title":"List item inventory assemblies","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/list-item-inventory-assemblies"},{"title":"Update item inventory assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/update-item-inventory-assembly"},{"title":"Create item inventory assembly","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-inventory-assemblies","href":"/api-reference/v2/item-inventory-assemblies/create-item-inventory-assembly"}]},{"group":"Item Non Inventories","pages":[{"title":"List item non inventories","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/list-item-non-inventories"},{"title":"Update item non inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/update-item-non-inventory"},{"title":"Create item non inventory","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-non-inventories","href":"/api-reference/v2/item-non-inventories/create-item-non-inventory"}]},{"group":"Item Other Charges","pages":[{"title":"List item other charges","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/list-item-other-charges"},{"title":"Update item other charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/update-item-other-charge"},{"title":"Create item other charge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-other-charges","href":"/api-reference/v2/item-other-charges/create-item-other-charge"}]},{"group":"Item Payments","pages":[{"title":"List item payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/list-item-payments"},{"title":"Update item payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/update-item-payment"},{"title":"Create item payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-payments","href":"/api-reference/v2/item-payments/create-item-payment"}]},{"group":"Item Receipts","pages":[{"title":"List item receipts","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/list-item-receipts"},{"title":"Update item receipt","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/update-item-receipt"},{"title":"Create item receipt","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-receipts","href":"/api-reference/v2/item-receipts/create-item-receipt"}]},{"group":"Item Sales Tax Groups","pages":[{"title":"List item sales tax groups","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/list-item-sales-tax-groups"},{"title":"Update item sales tax group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/update-item-sales-tax-group"},{"title":"Create item sales tax group","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-sales-tax-groups","href":"/api-reference/v2/item-sales-tax-groups/create-item-sales-tax-group"}]},{"group":"Item Sales Taxes","pages":[{"title":"List item sales taxes","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/list-item-sales-taxes"},{"title":"Update item sales tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/update-item-sales-tax"},{"title":"Create item sales tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-sales-taxes","href":"/api-reference/v2/item-sales-taxes/create-item-sales-tax"}]},{"group":"Item Services","pages":[{"title":"List item services","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/list-item-services"},{"title":"Update item service","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/update-item-service"},{"title":"Create item service","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-services","href":"/api-reference/v2/item-services/create-item-service"}]},{"group":"Item Sites","pages":[{"title":"List item sites","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-sites","href":"/api-reference/v2/item-sites/list-item-sites"}]},{"group":"Item Subtotals","pages":[{"title":"List item subtotals","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/list-item-subtotals"},{"title":"Update item subtotal","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/update-item-subtotal"},{"title":"Create item subtotal","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/item-subtotals","href":"/api-reference/v2/item-subtotals/create-item-subtotal"}]},{"group":"Items","pages":[{"title":"List items","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/items","href":"/api-reference/v2/items/list-items"}]},{"group":"Job Reports","pages":[{"title":"List job reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/job-reports","href":"/api-reference/v2/job-reports/list-job-reports"}]},{"group":"Job Types","pages":[{"title":"List job types","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/job-types","href":"/api-reference/v2/job-types/list-job-types"},{"title":"Create job type","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/job-types","href":"/api-reference/v2/job-types/create-job-type"}]},{"group":"Journal Entries","pages":[{"title":"List journal entries","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/list-journal-entries"},{"title":"Update journal entry","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/update-journal-entry"},{"title":"Create journal entry","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/journal-entries","href":"/api-reference/v2/journal-entries/create-journal-entry"}]},{"group":"Leads","pages":[{"title":"List leads","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/leads","href":"/api-reference/v2/leads/list-leads"},{"title":"Update lead","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/leads","href":"/api-reference/v2/leads/update-lead"},{"title":"Create lead","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/leads","href":"/api-reference/v2/leads/create-lead"}]},{"group":"List Deleteds","pages":[{"title":"List list deleteds","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/list-deleteds","href":"/api-reference/v2/list-deleteds/list-list-deleteds"}]},{"group":"List Displays","pages":[{"title":"Update list display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/list-displays","href":"/api-reference/v2/list-displays/update-list-display"},{"title":"Create list display","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/list-displays","href":"/api-reference/v2/list-displays/create-list-display"}]},{"group":"List Merge","pages":[{"title":"Execute list merge","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/list-merge","href":"/api-reference/v2/list-merge/execute-list-merge"}]},{"group":"Lists","pages":[{"title":"Delete list","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json delete /connections/{connection_id}/lists","href":"/api-reference/v2/lists/delete-list"}]},{"group":"Other Names","pages":[{"title":"List other names","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/list-other-names"},{"title":"Update other name","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/update-other-name"},{"title":"Create other name","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/other-names","href":"/api-reference/v2/other-names/create-other-name"}]},{"group":"Paychecks","pages":[{"title":"List paychecks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/paychecks","href":"/api-reference/v2/paychecks/list-paychecks"}]},{"group":"Payment Methods","pages":[{"title":"List payment methods","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payment-methods","href":"/api-reference/v2/payment-methods/list-payment-methods"},{"title":"Create payment method","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payment-methods","href":"/api-reference/v2/payment-methods/create-payment-method"}]},{"group":"Payments","pages":[{"title":"Record payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payments","href":"/api-reference/v2/payments/record-payment"}]},{"group":"Payroll Detail Reports","pages":[{"title":"List payroll detail reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-detail-reports","href":"/api-reference/v2/payroll-detail-reports/list-payroll-detail-reports"}]},{"group":"Payroll Item Additions","pages":[{"title":"Update payroll item addition","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-additions","href":"/api-reference/v2/payroll-item-additions/update-payroll-item-addition"},{"title":"Create payroll item addition","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-additions","href":"/api-reference/v2/payroll-item-additions/create-payroll-item-addition"}]},{"group":"Payroll Item Company Contributions","pages":[{"title":"Update payroll item company contribution","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-company-contributions","href":"/api-reference/v2/payroll-item-company-contributions/update-payroll-item-company-contribution"},{"title":"Create payroll item company contribution","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-company-contributions","href":"/api-reference/v2/payroll-item-company-contributions/create-payroll-item-company-contribution"}]},{"group":"Payroll Item Deductions","pages":[{"title":"Update payroll item deduction","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-deductions","href":"/api-reference/v2/payroll-item-deductions/update-payroll-item-deduction"},{"title":"Create payroll item deduction","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-deductions","href":"/api-reference/v2/payroll-item-deductions/create-payroll-item-deduction"}]},{"group":"Payroll Item Direct Deposits","pages":[{"title":"Update payroll item direct deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-direct-deposits","href":"/api-reference/v2/payroll-item-direct-deposits/update-payroll-item-direct-deposit"},{"title":"Create payroll item direct deposit","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-direct-deposits","href":"/api-reference/v2/payroll-item-direct-deposits/create-payroll-item-direct-deposit"}]},{"group":"Payroll Item Non Wages","pages":[{"title":"List payroll item non wages","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-item-non-wages","href":"/api-reference/v2/payroll-item-non-wages/list-payroll-item-non-wages"}]},{"group":"Payroll Item Taxes","pages":[{"title":"Update payroll item tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-taxes","href":"/api-reference/v2/payroll-item-taxes/update-payroll-item-tax"},{"title":"Create payroll item tax","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-taxes","href":"/api-reference/v2/payroll-item-taxes/create-payroll-item-tax"}]},{"group":"Payroll Item Wages","pages":[{"title":"List payroll item wages","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/list-payroll-item-wages"},{"title":"Update payroll item wage","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/update-payroll-item-wage"},{"title":"Create payroll item wage","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-wages","href":"/api-reference/v2/payroll-item-wages/create-payroll-item-wage"}]},{"group":"Payroll Item Workers Compensations","pages":[{"title":"Update payroll item workers compensation","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/payroll-item-workers-compensations","href":"/api-reference/v2/payroll-item-workers-compensations/update-payroll-item-workers-compensation"},{"title":"Create payroll item workers compensation","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-item-workers-compensations","href":"/api-reference/v2/payroll-item-workers-compensations/create-payroll-item-workers-compensation"}]},{"group":"Payroll Items","pages":[{"title":"List payroll items","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-items","href":"/api-reference/v2/payroll-items/list-payroll-items"}]},{"group":"Payroll Last Periods","pages":[{"title":"List payroll last periods","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-last-periods","href":"/api-reference/v2/payroll-last-periods/list-payroll-last-periods"}]},{"group":"Payroll Liability Adjustments","pages":[{"title":"List payroll liability adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-liability-adjustments","href":"/api-reference/v2/payroll-liability-adjustments/list-payroll-liability-adjustments"},{"title":"Create payroll liability adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-liability-adjustments","href":"/api-reference/v2/payroll-liability-adjustments/create-payroll-liability-adjustment"}]},{"group":"Payroll Liability Checks","pages":[{"title":"List payroll liability checks","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-liability-checks","href":"/api-reference/v2/payroll-liability-checks/list-payroll-liability-checks"}]},{"group":"Payroll Prior Payments","pages":[{"title":"List payroll prior payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-prior-payments","href":"/api-reference/v2/payroll-prior-payments/list-payroll-prior-payments"},{"title":"Create payroll prior payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-prior-payments","href":"/api-reference/v2/payroll-prior-payments/create-payroll-prior-payment"}]},{"group":"Payroll Summary Reports","pages":[{"title":"List payroll summary reports","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-summary-reports","href":"/api-reference/v2/payroll-summary-reports/list-payroll-summary-reports"}]},{"group":"Payroll Year To Date Adjustments","pages":[{"title":"List payroll year to date adjustments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/payroll-year-to-date-adjustments","href":"/api-reference/v2/payroll-year-to-date-adjustments/list-payroll-year-to-date-adjustments"},{"title":"Create payroll year to date adjustment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/payroll-year-to-date-adjustments","href":"/api-reference/v2/payroll-year-to-date-adjustments/create-payroll-year-to-date-adjustment"}]},{"group":"Preferences","pages":[{"title":"List preferences","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/preferences","href":"/api-reference/v2/preferences/list-preferences"},{"title":"Update preferences","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/preferences","href":"/api-reference/v2/preferences/update-preferences"}]},{"group":"Price Levels","pages":[{"title":"List price levels","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/list-price-levels"},{"title":"Update price level","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/update-price-level"},{"title":"Create price level","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/price-levels","href":"/api-reference/v2/price-levels/create-price-level"}]},{"group":"Purchase Orders","pages":[{"title":"List purchase orders","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/list-purchase-orders"},{"title":"Update purchase order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/update-purchase-order"},{"title":"Create purchase order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/purchase-orders","href":"/api-reference/v2/purchase-orders/create-purchase-order"}]},{"group":"Qb Command Exec","pages":[{"title":"Execute QB command exec","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/qb-command-exec","href":"/api-reference/v2/qb-command-exec/execute-qb-command-exec"}]},{"group":"Receive Payment To Deposits","pages":[{"title":"List receive payment to deposits","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/receive-payment-to-deposits","href":"/api-reference/v2/receive-payment-to-deposits/list-receive-payment-to-deposits"}]},{"group":"Receive Payments","pages":[{"title":"List receive payments","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/receive-payments","href":"/api-reference/v2/receive-payments/list-receive-payments"},{"title":"Update receive payment","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/receive-payments","href":"/api-reference/v2/receive-payments/update-receive-payment"}]},{"group":"Sales Orders","pages":[{"title":"List sales orders","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json get /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/list-sales-orders"},{"title":"Update sales order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json put /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/update-sales-order"},{"title":"Create sales order","deprecated":null,"version":null,"openapi":"/api-reference/v2/openapi.json post /connections/{connection_id}/sales-orders","href":"/api-reference/v2/sales-orders/create-sales-order"}]},{"group":"Sales Receipts","pages":[{"title":"List sales receipts","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":"Validate a chart without saving it - 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"]}