ingestions.start

Retain a document and inspect its contents. Default propose mode creates no financial entries. Explicit auto_record mode can record eligible bills or paid receipts under an explicit recordingPolicy and current authority; unsupported or uncertain sources require review.

What it does

Retain a document and start durable inspection. Supply exact inline text/Markdown, an owned existing source document, or file metadata. Text/Markdown/JSON skips PDF/OCR. Candidate PDF extraction uses verified native conversion or full-page OCR with durable page continuations; primary images use OCR. PDF limits: 50 pages, 8 Mi embedded-image pixels summed per page, 4 Mi rendered-canvas pixels, 100,000 objects per page including form children and form nesting depth 32. OCR inputs are at most 256 KiB and output at most 8,192 tokens per page.

Borderless PDF links with no appearance, background, content or additional action/destination metadata are supported without following links. Nested forms are inventoried within the shared object and image limits before rendering. Visible borders and other annotations report unsupported outcomes. Originals remain available after extraction failure. Supplied text with an optional original remains unverified; optional attachments do not trigger extraction. Completed means classification completed.

Invoice and receipt fields are parsed independently of contract targets or confirmed business ownership; when expenseTargets are supplied, recognized structured invoices and bounded observed text/PDF buyer-invoice spans can return source-backed proposals and ordinary activity or economic-recording previews.

Invoice and receipt header values are read as source spans the kernel verifies against the extraction (invoice-fields-v4/receipt-fields-v4; retained earlier selections stay readable); row judgments use at most 64 questions per request with two concurrent calls: ordinary sources use up to four 48 KiB fast-model requests, sources above 64 money rows or 32 KiB use Clef with up to 1,024 rows and 128 requests of 64 KiB.

Uncertain fast-model judgment groups receive one Clef fallback without replacing confident groups; selections have at most 254 amount candidates per row or date/currency candidates; span headers do not enumerate unused names, identifiers or whole-document total candidates; larger sources fail explicitly. Explicit ISO currency or unambiguous € or US Dollars markers, absolute ISO/English-month dates or day-first slash dates whose day exceeds 12, delivered service evidence and complete reconciled charge lines are required; nonzero tax and unresolved facts need review.

Default propose mode creates no financial entries. Opt-in auto_record requires recordingPolicy with minimumConfidencePercent of 60–100 and frozen existing contract/activity/CID targets; it has no amount limits or currency. Registered structured vendor invoices or complete source-bound PDF/UTF-8 invoice interpretations with a matching business buyer can be eligible. Every used selection must meet the policy confidence, and frozen buyer/source/contract evidence must remain valid.

Historical interpretations without a frozen buyer, inline unverified text, primary images and incomplete/unsupported PDF receipts remain review cases. A separate durable delivery uses ordinary contracts.record under saved and freshly reloaded authority; poll execution.status and commandId for financial completion. Derived and inline text retain at most 64 KiB of UTF-8. The current classifier has a separate 64 KiB whole serialized-request budget including text, instructions and business context; larger accepted sources can fail classification with classifier_input_too_large.

File upload does not increase that classifier budget. File input returns a short-lived URL, PUT method and contentType; sending exact bytes to it starts processing automatically, without an OAuth header or second start call. One optional original has independent upload status. No financial write is authorized by ingestion alone.

Registered complete vendor_receipt JSON or supported complete source-bound PDF/UTF-8 receipt fields or receipt-spans-v1 interpretations can automatically record one bill plus its full same-time payment through receipts.record when recordingPolicy includes explicit existing fundingAccounts snapshots (financialAccountId,currency,last4,kind,glAccountCode,optional ownerPartyId/providerPartyId). Funding must uniquely match paid source evidence and remain current; a person’s own account (ownerPartyId) in the company’s currency pays a foreign receipt at the bill’s booking rate.

Unverified inline automatic sources, image originals, incomplete/unsupported PDF extraction, different or unresolved billing/payment dates, existing-bill settlement, fees and other FX require review. Receipt selection uses a receipt/purchase date and explicit full same-time payment, never invoice-only issue dates or service delivery.

Before you send it

An authorized OAuth connection may call it, including a headless client. Effective membership, application grant and token permissions still apply. Describe ingestions.start through GET /v1/catalog/commands/{name} before acting.

This command does not accept source_document_id in its envelope. Any input evidence requirements remain as documented below.

Inputs

Put these fields inside the envelope’s input object. The outer envelope names the command, a stable idempotency_key and effective_at; request and recovery rules explain those separately. Use exact minor-unit integer strings for monetary fields. Take existing IDs from prior reads or command results; choose a new identity only where the command asks for one.

Required means required within its containing object; an optional parent can be omitted.

FieldTypeRequiredMeaning and accepted values
sourceschema-definedYesChoose a matching alternative in the exact schema below.
modestringNoChoose "propose", "auto_record". Default: "propose".
recordingPolicyobjectNo
recordingPolicy.minimumConfidencePercentintegerYesMinimum: 60. Maximum: 100.
recordingPolicy.fundingAccountsarrayNoItems: object. Minimum items: 1. Maximum items: 20.
recordingPolicy.fundingAccounts[].financialAccountIdstringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.fundingAccounts[].currencystringYesPattern: "^[A-Z]{3}$".
recordingPolicy.fundingAccounts[].last4stringYesPattern: "^[0-9]{4}$".
recordingPolicy.fundingAccounts[].kindstringYesChoose "checking", "savings", "card", "wallet", "other".
recordingPolicy.fundingAccounts[].glAccountCodenumberYesChoose 1110, 1310, 1410, 2190, 2135.
recordingPolicy.fundingAccounts[].ownerPartyIdstringNoMinimum length: 1.
recordingPolicy.fundingAccounts[].providerPartyIdstringNoMinimum length: 1.
recordingPolicy.targetsarrayYesItems: object. Minimum items: 1. Maximum items: 20.
recordingPolicy.targets[].contractIdstringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.targets[].activityKeystringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.targets[].cidstringYesMinimum length: 1. Maximum length: 128.
expenseTargetsarrayNoOptional bounded hints for structured vendor-invoice proposals against existing activities. Requires whole-domain document, subject, party and ledger reads, plus activity_effects report access. Automatic execution requires a separate explicit frozen recordingPolicy. Items: object. Minimum items: 1. Maximum items: 20.
expenseTargets[].contractIdstringYesMinimum length: 1. Maximum length: 128.
expenseTargets[].activityKeystringYesMinimum length: 1. Maximum length: 128.
originalobjectNoRetains exact source bytes. Text/Markdown/JSON bypasses PDF/OCR. Candidate PDF/image extraction retains source-bound text before classification; supported PDFs are limited to 50 pages, with explicit unsupported/limit failures. Optional attachments do not verify supplied transcriptions.
original.filenamestringYesMinimum length: 1. Maximum length: 200.
original.contentTypestringYesChoose "application/pdf", "text/plain", "text/markdown", "text/csv", "application/json", "image/png", "image/jpeg", "image/webp".
original.sizeintegerYesExact byte length. Images are limited to 256 KiB; other files to 10 MiB. Minimum: 1. Maximum: 10485760.
relationshipstringNoCaller-declared relationship between primary text and an optional original; retained as unverified. Choose "transcription", "summary", "related_original".

After acceptance

When the command emits events, its documented effects and receipt are recorded in the command transaction. The response returns commandId, replayed, the command-specific result below and emitted events with their IDs and CIDs. A command is not automatically a cash movement or revenue recognition: use the behavior above to determine what this command records.

Inspect result and the affected records or reports before continuing. Save returned identifiers for later calls. Fetch GET /v1/commands/{id} with commandId to recover the accepted receipt; retry the same intent with the same idempotency key if the response was lost. Some commands can succeed with events: [] and return a transient result and commandId without persisting a receipt. A lookup of that ID can return null; retain the returned result and verify the affected record. Retrying can re-evaluate the current state rather than replay a stored result. A domain no_change is a separate success outcome with no persisted receipt.

Result fields

Required means required within its containing object; an optional parent can be omitted.

FieldTypeRequiredMeaning and accepted values
ingestionIdstringYes
createdAtstringYesFormat: date-time.
statusstringYesChoose "awaiting_upload", "queued", "processing", "completed", "failed".
sourceobjectNo
source.documentIdstringYes
source.cidstringYes
source.formatstringYesChoose "markdown", "text", "document".
source.provenancestringYesChoose "caller_supplied_unverified", "registered_bytes".
expenseTargetsarrayNoItems: object. Minimum items: 1. Maximum items: 20.
expenseTargets[].contractIdstringYesMinimum length: 1. Maximum length: 128.
expenseTargets[].activityKeystringYesMinimum length: 1. Maximum length: 128.
modestringNoChoose "propose", "auto_record".
recordingPolicyobjectNo
recordingPolicy.minimumConfidencePercentintegerYesMinimum: 60. Maximum: 100.
recordingPolicy.fundingAccountsarrayNoItems: object. Minimum items: 1. Maximum items: 20.
recordingPolicy.fundingAccounts[].financialAccountIdstringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.fundingAccounts[].currencystringYesPattern: "^[A-Z]{3}$".
recordingPolicy.fundingAccounts[].last4stringYesPattern: "^[0-9]{4}$".
recordingPolicy.fundingAccounts[].kindstringYesChoose "checking", "savings", "card", "wallet", "other".
recordingPolicy.fundingAccounts[].glAccountCodenumberYesChoose 1110, 1310, 1410, 2190, 2135.
recordingPolicy.fundingAccounts[].ownerPartyIdstringNoMinimum length: 1.
recordingPolicy.fundingAccounts[].providerPartyIdstringNoMinimum length: 1.
recordingPolicy.targetsarrayYesItems: object. Minimum items: 1. Maximum items: 20.
recordingPolicy.targets[].contractIdstringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.targets[].activityKeystringYesMinimum length: 1. Maximum length: 128.
recordingPolicy.targets[].cidstringYesMinimum length: 1. Maximum length: 128.
executionobjectNoDurable financial recording disposition and actual ordinary command receipt reference.
execution.statusstringYesChoose "pending", "recorded", "already_recorded", "needs_review".
execution.proposalRevisionintegerYesMinimum: 1. Maximum: 8.
execution.commandIdstringNoActual ordinary financial command receipt.
execution.occurrenceIdstringNoAn already recorded matching economic fact.
execution.reasonstringNoWhy automatic recording requires review.
proposalobjectNoFrozen source-backed expense proposal. Proposal generation creates no financial entries. Choose a matching alternative in the exact schema below.
proposal.dispositionstringYesChoose "ready", "needs_information", "duplicate", "unsupported".
proposal.sourceobjectYes
proposal.source.documentIdstringYesMinimum length: 1.
proposal.source.cidstringYesMinimum length: 1.
proposal.missingarrayYesItems: string. Maximum items: 100.
proposal.linesarrayYesItems: object. Maximum items: 500.
proposal.lines[].indexintegerYesMinimum: 0.
proposal.lines[].descriptionstringYesMinimum length: 1.
proposal.lines[].amountMinorstringYesPattern: "^[0-9]+$".
proposal.currencystringNoPattern: "^[A-Z]{3}$".
proposal.totalMinorstringNoPattern: "^[0-9]+$".
proposal.matchedOccurrenceIdstringNoAn existing matching economic fact. Minimum length: 1.
proposal.contractobjectNo
proposal.contract.contractIdstringYesMinimum length: 1.
proposal.contract.documentIdstringYesMinimum length: 1.
proposal.contract.cidstringYesMinimum length: 1.
proposal.commandschema-definedNoChoose a matching alternative in the exact schema below.
proposal.interpretationobjectNo
proposal.interpretation.cidstringYesMinimum length: 1.
proposal.interpretation.promptVersionstringYesMinimum length: 1.
proposal.interpretation.buyerstringNoExact observed buyer; historical proposals without this field remain review cases. Minimum length: 1.
proposal.interpretation.spansarrayYesItems: object. Maximum items: 1000.
proposal.interpretation.spans[].startintegerYesMinimum: 0.
proposal.interpretation.spans[].endintegerYesMinimum: 1. Maximum: 65536.
proposal.interpretation.spans[].textstringYesMinimum length: 1.
proposal.previewschema-definedNoRead-only ordinary activity or priced-rights preparation, when validation succeeds.
invoiceCorrectionobjectNo
invoiceCorrection.atstringYesFormat: date-time.
invoiceCorrection.principalstringYes
invoiceCorrection.provenancestringYesMust be "caller_selected_source_spans".
invoiceCorrection.choicesobjectYes
invoiceCorrection.choices.headersobjectYes
invoiceCorrection.choices.headers.vendorstringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.headers.buyerstringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.headers.externalIdstringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.headers.datestringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.headers.currencystringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.headers.totalstringYesPattern: "^(?:none|v[0-9]{1,3})$".
invoiceCorrection.choices.servicestringYesChoose "delivered", "not_delivered", "unclear".
invoiceCorrection.choices.rowsarrayYesItems: object. Maximum items: 64.
invoiceCorrection.choices.rows[].rolestringYesChoose "charge", "tax", "summary", "other", "unclear".
invoiceCorrection.choices.rows[].amountstringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalRevisionintegerNoMinimum: 2. Maximum: 8.
proposalHistoryarrayNoItems: object. Maximum items: 7.
proposalHistory[].revisionintegerYesMinimum: 1. Maximum: 7.
proposalHistory[].atstringYesFormat: date-time.
proposalHistory[].principalstringYes
proposalHistory[].expenseTargetsarrayNoItems: object. Minimum items: 1. Maximum items: 20.
proposalHistory[].expenseTargets[].contractIdstringYesMinimum length: 1. Maximum length: 128.
proposalHistory[].expenseTargets[].activityKeystringYesMinimum length: 1. Maximum length: 128.
proposalHistory[].proposalobjectNoFrozen source-backed expense proposal. Proposal generation creates no financial entries. Choose a matching alternative in the exact schema below.
proposalHistory[].proposal.dispositionstringYesChoose "ready", "needs_information", "duplicate", "unsupported".
proposalHistory[].proposal.sourceobjectYes
proposalHistory[].proposal.source.documentIdstringYesMinimum length: 1.
proposalHistory[].proposal.source.cidstringYesMinimum length: 1.
proposalHistory[].proposal.missingarrayYesItems: string. Maximum items: 100.
proposalHistory[].proposal.linesarrayYesItems: object. Maximum items: 500.
proposalHistory[].proposal.lines[].indexintegerYesMinimum: 0.
proposalHistory[].proposal.lines[].descriptionstringYesMinimum length: 1.
proposalHistory[].proposal.lines[].amountMinorstringYesPattern: "^[0-9]+$".
proposalHistory[].proposal.currencystringNoPattern: "^[A-Z]{3}$".
proposalHistory[].proposal.totalMinorstringNoPattern: "^[0-9]+$".
proposalHistory[].proposal.matchedOccurrenceIdstringNoAn existing matching economic fact. Minimum length: 1.
proposalHistory[].proposal.contractobjectNo
proposalHistory[].proposal.contract.contractIdstringYesMinimum length: 1.
proposalHistory[].proposal.contract.documentIdstringYesMinimum length: 1.
proposalHistory[].proposal.contract.cidstringYesMinimum length: 1.
proposalHistory[].proposal.commandschema-definedNoChoose a matching alternative in the exact schema below.
proposalHistory[].proposal.interpretationobjectNo
proposalHistory[].proposal.interpretation.cidstringYesMinimum length: 1.
proposalHistory[].proposal.interpretation.promptVersionstringYesMinimum length: 1.
proposalHistory[].proposal.interpretation.buyerstringNoExact observed buyer; historical proposals without this field remain review cases. Minimum length: 1.
proposalHistory[].proposal.interpretation.spansarrayYesItems: object. Maximum items: 1000.
proposalHistory[].proposal.interpretation.spans[].startintegerYesMinimum: 0.
proposalHistory[].proposal.interpretation.spans[].endintegerYesMinimum: 1. Maximum: 65536.
proposalHistory[].proposal.interpretation.spans[].textstringYesMinimum length: 1.
proposalHistory[].proposal.previewschema-definedNoRead-only ordinary activity or priced-rights preparation, when validation succeeds.
proposalHistory[].invoiceCorrectionobjectNo
proposalHistory[].invoiceCorrection.atstringYesFormat: date-time.
proposalHistory[].invoiceCorrection.principalstringYes
proposalHistory[].invoiceCorrection.provenancestringYesMust be "caller_selected_source_spans".
proposalHistory[].invoiceCorrection.choicesobjectYes
proposalHistory[].invoiceCorrection.choices.headersobjectYes
proposalHistory[].invoiceCorrection.choices.headers.vendorstringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.headers.buyerstringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.headers.externalIdstringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.headers.datestringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.headers.currencystringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.headers.totalstringYesPattern: "^(?:none|v[0-9]{1,3})$".
proposalHistory[].invoiceCorrection.choices.servicestringYesChoose "delivered", "not_delivered", "unclear".
proposalHistory[].invoiceCorrection.choices.rowsarrayYesItems: object. Maximum items: 64.
proposalHistory[].invoiceCorrection.choices.rows[].rolestringYesChoose "charge", "tax", "summary", "other", "unclear".
proposalHistory[].invoiceCorrection.choices.rows[].amountstringYesPattern: "^(?:none|v[0-9]{1,3})$".
originalobjectNo
original.documentIdstringYes
original.cidstringYes
original.formatstringYesChoose "markdown", "text", "document".
original.provenancestringYesChoose "caller_supplied_unverified", "registered_bytes".
failureobjectNo
failure.reasonstringYes
failure.retryablebooleanYes
lastFailureobjectNo
lastFailure.reasonstringYes
lastFailure.retryablebooleanYes
lastFailure.attemptintegerYesMinimum: 1. Maximum: 12.
lastFailure.atstringYesFormat: date-time.
relationshipobjectNo
relationship.typestringYesChoose "transcription", "summary", "related_original".
relationship.declaredBystringYes
relationship.verificationstringYesMust be "unverified".
uploadsobjectYes
uploads.primaryobjectNo
uploads.primary.filenamestringYesMinimum length: 1. Maximum length: 200.
uploads.primary.contentTypestringYesChoose "application/pdf", "text/plain", "text/markdown", "text/csv", "application/json", "image/png", "image/jpeg", "image/webp".
uploads.primary.sizeintegerYesExact byte length. Images are limited to 256 KiB; other files to 10 MiB. Minimum: 1. Maximum: 10485760.
uploads.primary.expiresAtstringYesFormat: date-time.
uploads.primary.statusstringYesChoose "awaiting_upload", "uploaded", "expired".
uploads.primary.documentIdstringNo
uploads.primary.cidstringNo
uploads.primary.urlstringNoShort-lived upload credential. Send exact bytes to this URL with the returned method and contentType; no OAuth header is required. Present only in the response of the command that issued it (ingestions.start, ingestions.attach_original, ingestions.reissue_upload); replays and reads omit it, so call ingestions.reissue_upload for a fresh one.
uploads.primary.methodstringNoPresent when this response issued the upload URL. Must be "PUT".
uploads.originalobjectNo
uploads.original.filenamestringYesMinimum length: 1. Maximum length: 200.
uploads.original.contentTypestringYesChoose "application/pdf", "text/plain", "text/markdown", "text/csv", "application/json", "image/png", "image/jpeg", "image/webp".
uploads.original.sizeintegerYesExact byte length. Images are limited to 256 KiB; other files to 10 MiB. Minimum: 1. Maximum: 10485760.
uploads.original.expiresAtstringYesFormat: date-time.
uploads.original.statusstringYesChoose "awaiting_upload", "uploaded", "expired".
uploads.original.documentIdstringNo
uploads.original.cidstringNo
uploads.original.urlstringNoShort-lived upload credential. Send exact bytes to this URL with the returned method and contentType; no OAuth header is required. Present only in the response of the command that issued it (ingestions.start, ingestions.attach_original, ingestions.reissue_upload); replays and reads omit it, so call ingestions.reissue_upload for a fresh one.
uploads.original.methodstringNoPresent when this response issued the upload URL. Must be "PUT".
revisionsarrayYesItems: object.
revisions[].revisionintegerYesMinimum: 1.
revisions[].startedAtstringYesFormat: date-time.
revisions[].businessobjectYes
revisions[].business.namestringYes
revisions[].business.legalNamestring or nullYes
revisions[].completedAtstringNoFormat: date-time.
revisions[].statusstringYesChoose "processing", "completed", "failed".
revisions[].sourcesarrayYesItems: object.
revisions[].sources[].documentIdstringYes
revisions[].sources[].cidstringYes
revisions[].sources[].formatstringYesChoose "markdown", "text", "document".
revisions[].sources[].provenancestringYesChoose "caller_supplied_unverified", "registered_bytes".
revisions[].sources[].rolestringYesChoose "primary", "original".
revisions[].failureobjectNo
revisions[].failure.reasonstringYes
revisions[].failure.retryablebooleanYes
revisions[].invoiceSelectionobjectNoObserved source-span choices, bound to the committed UTF-8 extraction. Spans versions pick candidate indices; fields versions carry verified UTF-8 spans for header and payment-identity values. Choice probability is not financial accuracy or authorization.
revisions[].invoiceSelection.textCidstringYes
revisions[].invoiceSelection.promptVersionstringYesChoose "invoice-fields-v5", "receipt-fields-v5", "invoice-spans-v1", "receipt-spans-v1", "invoice-fields-v1", "receipt-fields-v1", "invoice-fields-v2", "receipt-fields-v2", "invoice-fields-v3", "receipt-fields-v3", "invoice-fields-v4", "receipt-fields-v4".
revisions[].invoiceSelection.headersobjectYes
revisions[].invoiceSelection.headers.vendorobjectYes
revisions[].invoiceSelection.headers.vendor.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.vendor.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.vendor.spanobjectNo
revisions[].invoiceSelection.headers.vendor.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.vendor.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.vendor.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.headers.buyerobjectYes
revisions[].invoiceSelection.headers.buyer.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.buyer.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.buyer.spanobjectNo
revisions[].invoiceSelection.headers.buyer.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.buyer.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.buyer.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.headers.externalIdobjectYes
revisions[].invoiceSelection.headers.externalId.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.externalId.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.externalId.spanobjectNo
revisions[].invoiceSelection.headers.externalId.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.externalId.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.externalId.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.headers.dateobjectYes
revisions[].invoiceSelection.headers.date.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.date.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.date.spanobjectNo
revisions[].invoiceSelection.headers.date.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.date.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.date.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.headers.currencyobjectYes
revisions[].invoiceSelection.headers.currency.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.currency.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.currency.spanobjectNo
revisions[].invoiceSelection.headers.currency.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.currency.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.currency.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.headers.totalobjectYes
revisions[].invoiceSelection.headers.total.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.headers.total.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.headers.total.spanobjectNo
revisions[].invoiceSelection.headers.total.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.total.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.headers.total.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.providerobjectNoThe model that chose header values and optional source-line amounts: Clef for spans versions, Clairic for fields versions.
revisions[].invoiceSelection.provider.namestringYesChoose "@cf/cloudflare/clef-flash", "@cf/cloudflare/clef", "@cf/cloudflare/clairic".
revisions[].invoiceSelection.provider.versionstringYesMust be "unreported".
revisions[].invoiceSelection.provider.inputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.provider.outputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.provider.requestBytesintegerYesMinimum: 0.
revisions[].invoiceSelection.provider.latencyMsintegerYesMinimum: 0.
revisions[].invoiceSelection.judgmentProviderobjectNoFields versions only: the Clef model or bounded Flash-to-Clef cascade that answered currency, service, payment status and row judgments. Optional Clairic amount reads are accounted in provider.
revisions[].invoiceSelection.judgmentProvider.namestringYesChoose "@cf/cloudflare/clef-flash", "@cf/cloudflare/clef", "@cf/cloudflare/clef-flash+clef/uncertain-groups-v1".
revisions[].invoiceSelection.judgmentProvider.versionstringYesMust be "unreported".
revisions[].invoiceSelection.judgmentProvider.inputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.judgmentProvider.outputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.judgmentProvider.requestBytesintegerYesMinimum: 0.
revisions[].invoiceSelection.judgmentProvider.latencyMsintegerYesMinimum: 0.
revisions[].invoiceSelection.groupingProviderobjectNoMeasured optional grouping attempt, including a failed attempt that retains physical rows.
revisions[].invoiceSelection.groupingProvider.namestringYesChoose "@cf/moonshotai/kimi-k2.6".
revisions[].invoiceSelection.groupingProvider.versionstringYesMust be "unreported".
revisions[].invoiceSelection.groupingProvider.inputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.groupingProvider.outputTokensintegerYesMinimum: 0.
revisions[].invoiceSelection.groupingProvider.requestBytesintegerYesMinimum: 0.
revisions[].invoiceSelection.groupingProvider.latencyMsintegerYesMinimum: 0.
revisions[].invoiceSelection.rowGroupsarrayNoItems: object. Maximum items: 1024.
revisions[].invoiceSelection.rowGroups[].firstRowintegerYesMinimum: 0. Maximum: 1023.
revisions[].invoiceSelection.rowGroups[].lastRowintegerYesMinimum: 0. Maximum: 1023.
revisions[].invoiceSelection.rowGroups[].anchorRowintegerYesMinimum: 0. Maximum: 1023.
revisions[].invoiceSelection.rowGroups[].descriptionobjectNo
revisions[].invoiceSelection.rowGroups[].description.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rowGroups[].description.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rowGroups[].description.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.serviceobjectYes
revisions[].invoiceSelection.service.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.service.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.service.spanobjectNo
revisions[].invoiceSelection.service.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.service.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.service.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.paymentobjectNo
revisions[].invoiceSelection.payment.statusobjectYes
revisions[].invoiceSelection.payment.status.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.payment.status.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.payment.status.spanobjectNo
revisions[].invoiceSelection.payment.status.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.status.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.status.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.payment.externalIdobjectYes
revisions[].invoiceSelection.payment.externalId.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.payment.externalId.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.payment.externalId.spanobjectNo
revisions[].invoiceSelection.payment.externalId.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.externalId.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.externalId.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.payment.last4objectYes
revisions[].invoiceSelection.payment.last4.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.payment.last4.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.payment.last4.spanobjectNo
revisions[].invoiceSelection.payment.last4.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.last4.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.payment.last4.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.rowsarrayYesItems: object. Maximum items: 1024.
revisions[].invoiceSelection.rows[].roleobjectYes
revisions[].invoiceSelection.rows[].role.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.rows[].role.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.rows[].role.spanobjectNo
revisions[].invoiceSelection.rows[].role.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rows[].role.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rows[].role.span.textstringYesMaximum length: 65536.
revisions[].invoiceSelection.rows[].amountobjectYes
revisions[].invoiceSelection.rows[].amount.choicestringYesMaximum length: 32.
revisions[].invoiceSelection.rows[].amount.probabilitystringYesPattern: "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$".
revisions[].invoiceSelection.rows[].amount.spanobjectNo
revisions[].invoiceSelection.rows[].amount.span.startintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rows[].amount.span.endintegerYesMinimum: 0. Maximum: 65536.
revisions[].invoiceSelection.rows[].amount.span.textstringYesMaximum length: 65536.
revisions[].extractionobjectNo
revisions[].extraction.statusstringYesChoose "not_required", "extracted", "incomplete".
revisions[].extraction.methodstringYesChoose "provided_text", "native_pdf", "image_ocr", "pdf_ocr".
revisions[].extraction.textstringNoReturned only after source-document authorization; raw history contains annex references. Maximum length: 65536.
revisions[].extraction.textBytesintegerYesMinimum: 1. Maximum: 65536.
revisions[].extraction.sourceobjectYes
revisions[].extraction.source.documentIdstringYes
revisions[].extraction.source.cidstringYes
revisions[].extraction.source.formatstringYesChoose "markdown", "text", "document".
revisions[].extraction.source.provenancestringYesChoose "caller_supplied_unverified", "registered_bytes".
revisions[].extraction.derivedobjectYes
revisions[].extraction.derived.cidstringYes
revisions[].extraction.pageCountinteger or nullYesMinimum: 1. Maximum: 50.
revisions[].extraction.locationsarrayYesItems: object. Maximum items: 50.
revisions[].extraction.locations[].pageinteger or nullYesMinimum: 1.
revisions[].extraction.locations[].startintegerYesMinimum: 0.
revisions[].extraction.locations[].endintegerYesMinimum: 0.
revisions[].extraction.providerobjectYes
revisions[].extraction.provider.namestringYes
revisions[].extraction.provider.versionstringYes
revisions[].extraction.usageobjectYes
revisions[].extraction.usage.inputTokensintegerYesMinimum: 0.
revisions[].extraction.usage.outputTokensintegerYesMinimum: 0.
revisions[].extraction.usage.latencyMsintegerYesMinimum: 0.
revisions[].extraction.usage.conversionTokensintegerNoEstimated native conversion tokens, distinct from inference usage. Minimum: 0.
revisions[].classificationobjectNo
revisions[].classification.documentTypestringYesChoose "invoice", "receipt", "agreement", "statement_or_remittance", "credit_or_correction", "reminder", "mixed", "other", "uncertain".
revisions[].classification.probabilitiesobjectYes
revisions[].classification.probabilities.invoicestringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.receiptstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.agreementstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.statement_or_remittancestringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.credit_or_correctionstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.reminderstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.mixedstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.otherstringYesDecimal probability between 0 and 1.
revisions[].classification.probabilities.uncertainstringYesDecimal probability between 0 and 1.
revisions[].classification.modelstringYes
revisions[].classification.modelVersionstringYes
revisions[].classification.promptVersionstringYes
revisions[].classification.confidencestringNoDistribution confidence, not calibrated accuracy or permission to act.
revisions[].classification.invoiceRoleobjectNo
revisions[].classification.invoiceRole.rolestringYesChoose "buyer", "seller", "neither", "unclear".
revisions[].classification.invoiceRole.probabilitiesobjectYes
revisions[].classification.invoiceRole.probabilities.buyerstringYes
revisions[].classification.invoiceRole.probabilities.sellerstringYes
revisions[].classification.invoiceRole.probabilities.neitherstringYes
revisions[].classification.invoiceRole.probabilities.unclearstringYes
revisions[].classification.invoiceRole.confidencestringYes
revisions[].classification.invoiceRole.promptVersionstringYes
revisions[].classification.usageobjectNo
revisions[].classification.usage.inputTokensintegerYesMinimum: 0.
revisions[].classification.usage.outputTokensintegerYesMinimum: 0.
revisions[].classification.usage.requestBytesintegerYesMinimum: 1.
revisions[].classification.usage.latencyMsintegerYesMinimum: 0.

All commands · Operation and errors · Reusable schemas

Keep credentials out of prompts; rehearse writes only in a disposable sandbox.

Exact request schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": {
      "const": "ingestions.start"
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "source": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "const": "text"
                },
                "format": {
                  "enum": [
                    "text",
                    "markdown"
                  ]
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 65536,
                  "description": "Retention limit is 64 KiB of UTF-8; current classification requires the whole serialized request (text, instructions and business context) to fit within 64 KiB, otherwise polling reports classifier_input_too_large."
                }
              },
              "required": [
                "type",
                "format",
                "text"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "const": "document"
                },
                "documentId": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "type",
                "documentId"
              ]
            },
            {
              "type": "object",
              "description": "Retains exact source bytes. Text/Markdown/JSON bypasses PDF/OCR. Candidate PDF/image extraction retains source-bound text before classification; supported PDFs are limited to 50 pages, with explicit unsupported/limit failures. Optional attachments do not verify supplied transcriptions.",
              "additionalProperties": false,
              "properties": {
                "filename": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "contentType": {
                  "enum": [
                    "application/pdf",
                    "text/plain",
                    "text/markdown",
                    "text/csv",
                    "application/json",
                    "image/png",
                    "image/jpeg",
                    "image/webp"
                  ]
                },
                "size": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10485760,
                  "description": "Exact byte length. Images are limited to 256 KiB; other files to 10 MiB."
                },
                "type": {
                  "const": "file"
                }
              },
              "required": [
                "filename",
                "contentType",
                "size",
                "type"
              ]
            }
          ]
        },
        "mode": {
          "enum": [
            "propose",
            "auto_record"
          ],
          "default": "propose"
        },
        "recordingPolicy": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "minimumConfidencePercent": {
              "type": "integer",
              "minimum": 60,
              "maximum": 100
            },
            "fundingAccounts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 20,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "financialAccountId",
                  "currency",
                  "last4",
                  "kind",
                  "glAccountCode"
                ],
                "properties": {
                  "financialAccountId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "last4": {
                    "type": "string",
                    "pattern": "^[0-9]{4}$"
                  },
                  "kind": {
                    "enum": [
                      "checking",
                      "savings",
                      "card",
                      "wallet",
                      "other"
                    ]
                  },
                  "glAccountCode": {
                    "enum": [
                      1110,
                      1310,
                      1410,
                      2190,
                      2135
                    ]
                  },
                  "ownerPartyId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "providerPartyId": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            },
            "targets": {
              "type": "array",
              "minItems": 1,
              "maxItems": 20,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "contractId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "activityKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "cid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "contractId",
                  "activityKey",
                  "cid"
                ]
              }
            }
          },
          "required": [
            "minimumConfidencePercent",
            "targets"
          ]
        },
        "expenseTargets": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "contractId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "activityKey": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            },
            "required": [
              "contractId",
              "activityKey"
            ]
          },
          "description": "Optional bounded hints for structured vendor-invoice proposals against existing activities. Requires whole-domain document, subject, party and ledger reads, plus activity_effects report access. Automatic execution requires a separate explicit frozen recordingPolicy."
        },
        "original": {
          "type": "object",
          "description": "Retains exact source bytes. Text/Markdown/JSON bypasses PDF/OCR. Candidate PDF/image extraction retains source-bound text before classification; supported PDFs are limited to 50 pages, with explicit unsupported/limit failures. Optional attachments do not verify supplied transcriptions.",
          "additionalProperties": false,
          "properties": {
            "filename": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "contentType": {
              "enum": [
                "application/pdf",
                "text/plain",
                "text/markdown",
                "text/csv",
                "application/json",
                "image/png",
                "image/jpeg",
                "image/webp"
              ]
            },
            "size": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10485760,
              "description": "Exact byte length. Images are limited to 256 KiB; other files to 10 MiB."
            }
          },
          "required": [
            "filename",
            "contentType",
            "size"
          ]
        },
        "relationship": {
          "enum": [
            "transcription",
            "summary",
            "related_original"
          ],
          "description": "Caller-declared relationship between primary text and an optional original; retained as unverified."
        }
      },
      "required": [
        "source"
      ]
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "effective_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    }
  },
  "required": [
    "name",
    "input",
    "idempotency_key",
    "effective_at"
  ],
  "additionalProperties": false
}

Accepted command receipt

{
  "type": "object",
  "required": [
    "commandId",
    "replayed",
    "result",
    "events"
  ],
  "properties": {
    "commandId": {
      "type": "string"
    },
    "replayed": {
      "type": "boolean"
    },
    "imported": {
      "const": true,
      "description": "The command's events are history from before the business joined Economico, recorded as an import: free of monthly events."
    },
    "result": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "ingestionId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "enum": [
            "awaiting_upload",
            "queued",
            "processing",
            "completed",
            "failed"
          ]
        },
        "source": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "documentId": {
              "type": "string"
            },
            "cid": {
              "type": "string"
            },
            "format": {
              "enum": [
                "markdown",
                "text",
                "document"
              ]
            },
            "provenance": {
              "enum": [
                "caller_supplied_unverified",
                "registered_bytes"
              ]
            }
          },
          "required": [
            "documentId",
            "cid",
            "format",
            "provenance"
          ]
        },
        "expenseTargets": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "contractId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "activityKey": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            },
            "required": [
              "contractId",
              "activityKey"
            ]
          }
        },
        "mode": {
          "enum": [
            "propose",
            "auto_record"
          ]
        },
        "recordingPolicy": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "minimumConfidencePercent": {
              "type": "integer",
              "minimum": 60,
              "maximum": 100
            },
            "fundingAccounts": {
              "type": "array",
              "minItems": 1,
              "maxItems": 20,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "financialAccountId",
                  "currency",
                  "last4",
                  "kind",
                  "glAccountCode"
                ],
                "properties": {
                  "financialAccountId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "last4": {
                    "type": "string",
                    "pattern": "^[0-9]{4}$"
                  },
                  "kind": {
                    "enum": [
                      "checking",
                      "savings",
                      "card",
                      "wallet",
                      "other"
                    ]
                  },
                  "glAccountCode": {
                    "enum": [
                      1110,
                      1310,
                      1410,
                      2190,
                      2135
                    ]
                  },
                  "ownerPartyId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "providerPartyId": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              }
            },
            "targets": {
              "type": "array",
              "minItems": 1,
              "maxItems": 20,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "contractId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "activityKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "cid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "contractId",
                  "activityKey",
                  "cid"
                ]
              }
            }
          },
          "required": [
            "minimumConfidencePercent",
            "targets"
          ]
        },
        "execution": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "status": {
              "enum": [
                "pending",
                "recorded",
                "already_recorded",
                "needs_review"
              ]
            },
            "proposalRevision": {
              "type": "integer",
              "minimum": 1,
              "maximum": 8
            },
            "commandId": {
              "type": "string",
              "description": "Actual ordinary financial command receipt."
            },
            "occurrenceId": {
              "type": "string",
              "description": "An already recorded matching economic fact."
            },
            "reason": {
              "type": "string",
              "description": "Why automatic recording requires review."
            }
          },
          "required": [
            "status",
            "proposalRevision"
          ],
          "description": "Durable financial recording disposition and actual ordinary command receipt reference."
        },
        "proposal": {
          "type": "object",
          "additionalProperties": false,
          "description": "Frozen source-backed expense proposal. Proposal generation creates no financial entries.",
          "required": [
            "disposition",
            "source",
            "missing",
            "lines"
          ],
          "properties": {
            "disposition": {
              "enum": [
                "ready",
                "needs_information",
                "duplicate",
                "unsupported"
              ]
            },
            "source": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "documentId": {
                  "type": "string",
                  "minLength": 1
                },
                "cid": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "documentId",
                "cid"
              ]
            },
            "missing": {
              "type": "array",
              "maxItems": 100,
              "items": {
                "type": "string",
                "maxLength": 500
              }
            },
            "lines": {
              "type": "array",
              "maxItems": 500,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "index": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1
                  },
                  "amountMinor": {
                    "type": "string",
                    "pattern": "^[0-9]+$"
                  }
                },
                "required": [
                  "index",
                  "description",
                  "amountMinor"
                ]
              }
            },
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            },
            "totalMinor": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "matchedOccurrenceId": {
              "type": "string",
              "minLength": 1,
              "description": "An existing matching economic fact."
            },
            "contract": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "contractId": {
                  "type": "string",
                  "minLength": 1
                },
                "documentId": {
                  "type": "string",
                  "minLength": 1
                },
                "cid": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "contractId",
                "documentId",
                "cid"
              ]
            },
            "command": {
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": false,
                  "description": "Complete ordinary public command envelope; present only when ready.",
                  "required": [
                    "name",
                    "input",
                    "source_document_id",
                    "effective_at",
                    "idempotency_key"
                  ],
                  "properties": {
                    "name": {
                      "const": "contracts.record"
                    },
                    "source_document_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "effective_at": {
                      "type": "string",
                      "minLength": 1,
                      "format": "date-time"
                    },
                    "idempotency_key": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256
                    },
                    "input": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "contractId",
                        "activityKey",
                        "occurrenceKey",
                        "sourceFactId",
                        "effectiveAt",
                        "facts",
                        "evidence"
                      ],
                      "properties": {
                        "contractId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "activityKey": {
                          "type": "string",
                          "minLength": 1
                        },
                        "occurrenceKey": {
                          "type": "string",
                          "minLength": 1
                        },
                        "sourceFactId": {
                          "type": "string",
                          "minLength": 1
                        },
                        "effectiveAt": {
                          "type": "string",
                          "minLength": 1,
                          "format": "date-time"
                        },
                        "phase": {
                          "const": "billing"
                        },
                        "obligationKey": {
                          "type": "string",
                          "minLength": 1
                        },
                        "facts": {
                          "type": "object",
                          "maxProperties": 100,
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "evidence": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "service"
                          ],
                          "properties": {
                            "billing": {
                              "type": "array",
                              "minItems": 1,
                              "maxItems": 1,
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "kind": {
                                    "const": "other"
                                  },
                                  "ref": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "required": [
                                  "kind",
                                  "ref"
                                ]
                              }
                            },
                            "service": {
                              "type": "array",
                              "minItems": 1,
                              "maxItems": 1,
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "kind": {
                                    "const": "other"
                                  },
                                  "ref": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                },
                                "required": [
                                  "kind",
                                  "ref"
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "description": "Complete ordinary public command envelope; present only when ready.",
                  "required": [
                    "name",
                    "input",
                    "source_document_id",
                    "effective_at",
                    "idempotency_key"
                  ],
                  "properties": {
                    "name": {
                      "const": "receipts.record"
                    },
                    "source_document_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "effective_at": {
                      "type": "string",
                      "minLength": 1,
                      "format": "date-time"
                    },
                    "idempotency_key": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256
                    },
                    "input": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "billing",
                        "payment"
                      ],
                      "properties": {
                        "processing": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "rail",
                            "netAmount",
                            "evidence"
                          ],
                          "properties": {
                            "rail": {
                              "enum": [
                                "ach",
                                "ach_same_day",
                                "fedwire",
                                "rtp",
                                "sepa",
                                "sepa_instant",
                                "swift",
                                "onchain",
                                "internal",
                                "card"
                              ]
                            },
                            "netAmount": {
                              "type": "string",
                              "pattern": "^(0|-?[1-9][0-9]*)$"
                            },
                            "feeFacts": {
                              "type": "object",
                              "maxProperties": 20,
                              "additionalProperties": {
                                "type": "string",
                                "pattern": "^(0|[1-9][0-9]*)$"
                              }
                            },
                            "evidence": {
                              "type": "array",
                              "minItems": 1,
                              "maxItems": 20,
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "kind",
                                  "ref"
                                ],
                                "properties": {
                                  "kind": {
                                    "enum": [
                                      "tap_message",
                                      "x402_receipt",
                                      "chain_tx",
                                      "signed_doc",
                                      "stripe_object",
                                      "other"
                                    ]
                                  },
                                  "ref": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "signer": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                }
                              }
                            }
                          }
                        },
                        "billing": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "contractId",
                            "activityKey",
                            "occurrenceKey",
                            "sourceFactId",
                            "effectiveAt",
                            "phase"
                          ],
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "obligationKey": {
                                  "type": "string",
                                  "minLength": 1
                                }
                              },
                              "required": [
                                "obligationKey"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "period": {
                                  "type": "object",
                                  "properties": {
                                    "from": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "through": {
                                      "type": "string",
                                      "minLength": 1
                                    }
                                  },
                                  "required": [
                                    "from",
                                    "through"
                                  ]
                                }
                              },
                              "required": [
                                "period"
                              ]
                            }
                          ],
                          "properties": {
                            "contractId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "activityKey": {
                              "type": "string",
                              "minLength": 1
                            },
                            "occurrenceKey": {
                              "type": "string",
                              "minLength": 1
                            },
                            "obligationKey": {
                              "type": "string",
                              "minLength": 1
                            },
                            "sourceFactId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "effectiveAt": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "phase": {
                              "const": "billing"
                            },
                            "dueDate": {
                              "type": "string",
                              "format": "date"
                            },
                            "exchangeRate": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "base",
                                "quote",
                                "date",
                                "numerator",
                                "denominator",
                                "evidence"
                              ],
                              "description": "An evidenced exchange rate (1 base = numerator/denominator quote), e.g. from a bank statement. It overrides the shared rate store for this command; omit it to use the store.",
                              "properties": {
                                "base": {
                                  "type": "string",
                                  "pattern": "^[A-Z]{3}$"
                                },
                                "quote": {
                                  "type": "string",
                                  "pattern": "^[A-Z]{3}$"
                                },
                                "date": {
                                  "type": "string",
                                  "format": "date"
                                },
                                "numerator": {
                                  "type": "string",
                                  "pattern": "^[1-9][0-9]*$"
                                },
                                "denominator": {
                                  "type": "string",
                                  "pattern": "^[1-9][0-9]*$"
                                },
                                "evidence": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "kind",
                                      "ref"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "tap_message",
                                          "x402_receipt",
                                          "chain_tx",
                                          "signed_doc",
                                          "stripe_object",
                                          "other"
                                        ]
                                      },
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "signer": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "period": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "from",
                                "through"
                              ],
                              "properties": {
                                "from": {
                                  "type": "string",
                                  "format": "date-time"
                                },
                                "through": {
                                  "type": "string",
                                  "format": "date-time"
                                }
                              }
                            },
                            "facts": {
                              "type": "object",
                              "maxProperties": 100,
                              "additionalProperties": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "occurrenceId"
                                    ],
                                    "properties": {
                                      "occurrenceId": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  },
                                  {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "claimId",
                                      "component"
                                    ],
                                    "properties": {
                                      "claimId": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "component": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "required": [
                                          "originLedgerId",
                                          "accountCode"
                                        ],
                                        "properties": {
                                          "originLedgerId": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "accountCode": {
                                            "type": "integer"
                                          }
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "evidence": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "billing": {
                                  "type": "array",
                                  "minItems": 1,
                                  "maxItems": 20,
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "kind",
                                      "ref"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "tap_message",
                                          "x402_receipt",
                                          "chain_tx",
                                          "signed_doc",
                                          "stripe_object",
                                          "other"
                                        ]
                                      },
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "signer": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  }
                                },
                                "service": {
                                  "type": "array",
                                  "minItems": 1,
                                  "maxItems": 20,
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "kind",
                                      "ref"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "tap_message",
                                          "x402_receipt",
                                          "chain_tx",
                                          "signed_doc",
                                          "stripe_object",
                                          "other"
                                        ]
                                      },
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "signer": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  }
                                },
                                "acceptance": {
                                  "type": "array",
                                  "minItems": 1,
                                  "maxItems": 20,
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "kind",
                                      "ref"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "tap_message",
                                          "x402_receipt",
                                          "chain_tx",
                                          "signed_doc",
                                          "stripe_object",
                                          "other"
                                        ]
                                      },
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "signer": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  }
                                },
                                "economic": {
                                  "type": "array",
                                  "minItems": 1,
                                  "maxItems": 20,
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "kind",
                                      "ref"
                                    ],
                                    "properties": {
                                      "kind": {
                                        "enum": [
                                          "tap_message",
                                          "x402_receipt",
                                          "chain_tx",
                                          "signed_doc",
                                          "stripe_object",
                                          "other"
                                        ]
                                      },
                                      "ref": {
                                        "type": "string",
                                        "minLength": 1
                                      },
                                      "signer": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "payment": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "financialAccountId",
                            "direction",
                            "amount",
                            "currency",
                            "partyId",
                            "effectiveAt",
                            "sourceFactId",
                            "evidence"
                          ],
                          "properties": {
                            "financialAccountId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "direction": {
                              "enum": [
                                "in",
                                "out"
                              ]
                            },
                            "amount": {
                              "type": "string",
                              "pattern": "^[1-9][0-9]*$"
                            },
                            "currency": {
                              "type": "string",
                              "minLength": 1
                            },
                            "partyId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "effectiveAt": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "sourceFactId": {
                              "type": "string",
                              "minLength": 1
                            },
                            "evidence": {
                              "type": "array",
                              "minItems": 1,
                              "maxItems": 20,
                              "items": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "kind",
                                  "ref"
                                ],
                                "properties": {
                                  "kind": {
                                    "enum": [
                                      "tap_message",
                                      "x402_receipt",
                                      "chain_tx",
                                      "signed_doc",
                                      "stripe_object",
                                      "other"
                                    ]
                                  },
                                  "ref": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "signer": {
                                    "type": "string",
                                    "minLength": 1
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              ]
            },
            "interpretation": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "cid": {
                  "type": "string",
                  "minLength": 1
                },
                "promptVersion": {
                  "type": "string",
                  "minLength": 1
                },
                "buyer": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Exact observed buyer; historical proposals without this field remain review cases."
                },
                "spans": {
                  "type": "array",
                  "maxItems": 1000,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "start": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "end": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 65536
                      },
                      "text": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "start",
                      "end",
                      "text"
                    ]
                  }
                }
              },
              "required": [
                "cid",
                "promptVersion",
                "spans"
              ]
            },
            "preview": {
              "description": "Read-only ordinary activity or priced-rights preparation, when validation succeeds."
            }
          },
          "oneOf": [
            {
              "properties": {
                "disposition": {
                  "const": "ready"
                },
                "missing": {
                  "maxItems": 0
                },
                "lines": {
                  "minItems": 1
                }
              },
              "required": [
                "command",
                "contract",
                "currency",
                "totalMinor"
              ]
            },
            {
              "properties": {
                "disposition": {
                  "enum": [
                    "needs_information",
                    "duplicate",
                    "unsupported"
                  ]
                }
              },
              "not": {
                "required": [
                  "command"
                ]
              }
            }
          ]
        },
        "invoiceCorrection": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "at": {
              "type": "string",
              "format": "date-time"
            },
            "principal": {
              "type": "string"
            },
            "provenance": {
              "const": "caller_selected_source_spans"
            },
            "choices": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "headers": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "vendor": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    },
                    "buyer": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    },
                    "externalId": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    },
                    "date": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    },
                    "currency": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    },
                    "total": {
                      "type": "string",
                      "pattern": "^(?:none|v[0-9]{1,3})$"
                    }
                  },
                  "required": [
                    "vendor",
                    "buyer",
                    "externalId",
                    "date",
                    "currency",
                    "total"
                  ]
                },
                "service": {
                  "enum": [
                    "delivered",
                    "not_delivered",
                    "unclear"
                  ]
                },
                "rows": {
                  "type": "array",
                  "maxItems": 64,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "role": {
                        "enum": [
                          "charge",
                          "tax",
                          "summary",
                          "other",
                          "unclear"
                        ]
                      },
                      "amount": {
                        "type": "string",
                        "pattern": "^(?:none|v[0-9]{1,3})$"
                      }
                    },
                    "required": [
                      "role",
                      "amount"
                    ]
                  }
                }
              },
              "required": [
                "headers",
                "service",
                "rows"
              ]
            }
          },
          "required": [
            "at",
            "principal",
            "provenance",
            "choices"
          ]
        },
        "proposalRevision": {
          "type": "integer",
          "minimum": 2,
          "maximum": 8
        },
        "proposalHistory": {
          "type": "array",
          "maxItems": 7,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 7
              },
              "at": {
                "type": "string",
                "format": "date-time"
              },
              "principal": {
                "type": "string"
              },
              "expenseTargets": {
                "type": "array",
                "minItems": 1,
                "maxItems": 20,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "contractId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "activityKey": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "contractId",
                    "activityKey"
                  ]
                }
              },
              "proposal": {
                "type": "object",
                "additionalProperties": false,
                "description": "Frozen source-backed expense proposal. Proposal generation creates no financial entries.",
                "required": [
                  "disposition",
                  "source",
                  "missing",
                  "lines"
                ],
                "properties": {
                  "disposition": {
                    "enum": [
                      "ready",
                      "needs_information",
                      "duplicate",
                      "unsupported"
                    ]
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "documentId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "cid": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "documentId",
                      "cid"
                    ]
                  },
                  "missing": {
                    "type": "array",
                    "maxItems": 100,
                    "items": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "lines": {
                    "type": "array",
                    "maxItems": 500,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "index": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "description": {
                          "type": "string",
                          "minLength": 1
                        },
                        "amountMinor": {
                          "type": "string",
                          "pattern": "^[0-9]+$"
                        }
                      },
                      "required": [
                        "index",
                        "description",
                        "amountMinor"
                      ]
                    }
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "totalMinor": {
                    "type": "string",
                    "pattern": "^[0-9]+$"
                  },
                  "matchedOccurrenceId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "An existing matching economic fact."
                  },
                  "contract": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "contractId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "documentId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "cid": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": [
                      "contractId",
                      "documentId",
                      "cid"
                    ]
                  },
                  "command": {
                    "oneOf": [
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "description": "Complete ordinary public command envelope; present only when ready.",
                        "required": [
                          "name",
                          "input",
                          "source_document_id",
                          "effective_at",
                          "idempotency_key"
                        ],
                        "properties": {
                          "name": {
                            "const": "contracts.record"
                          },
                          "source_document_id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "effective_at": {
                            "type": "string",
                            "minLength": 1,
                            "format": "date-time"
                          },
                          "idempotency_key": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "input": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "contractId",
                              "activityKey",
                              "occurrenceKey",
                              "sourceFactId",
                              "effectiveAt",
                              "facts",
                              "evidence"
                            ],
                            "properties": {
                              "contractId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "activityKey": {
                                "type": "string",
                                "minLength": 1
                              },
                              "occurrenceKey": {
                                "type": "string",
                                "minLength": 1
                              },
                              "sourceFactId": {
                                "type": "string",
                                "minLength": 1
                              },
                              "effectiveAt": {
                                "type": "string",
                                "minLength": 1,
                                "format": "date-time"
                              },
                              "phase": {
                                "const": "billing"
                              },
                              "obligationKey": {
                                "type": "string",
                                "minLength": 1
                              },
                              "facts": {
                                "type": "object",
                                "maxProperties": 100,
                                "additionalProperties": {
                                  "type": "string"
                                }
                              },
                              "evidence": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "service"
                                ],
                                "properties": {
                                  "billing": {
                                    "type": "array",
                                    "minItems": 1,
                                    "maxItems": 1,
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "kind": {
                                          "const": "other"
                                        },
                                        "ref": {
                                          "type": "string",
                                          "minLength": 1
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "ref"
                                      ]
                                    }
                                  },
                                  "service": {
                                    "type": "array",
                                    "minItems": 1,
                                    "maxItems": 1,
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "kind": {
                                          "const": "other"
                                        },
                                        "ref": {
                                          "type": "string",
                                          "minLength": 1
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "ref"
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "type": "object",
                        "additionalProperties": false,
                        "description": "Complete ordinary public command envelope; present only when ready.",
                        "required": [
                          "name",
                          "input",
                          "source_document_id",
                          "effective_at",
                          "idempotency_key"
                        ],
                        "properties": {
                          "name": {
                            "const": "receipts.record"
                          },
                          "source_document_id": {
                            "type": "string",
                            "minLength": 1
                          },
                          "effective_at": {
                            "type": "string",
                            "minLength": 1,
                            "format": "date-time"
                          },
                          "idempotency_key": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "input": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": [
                              "billing",
                              "payment"
                            ],
                            "properties": {
                              "processing": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "rail",
                                  "netAmount",
                                  "evidence"
                                ],
                                "properties": {
                                  "rail": {
                                    "enum": [
                                      "ach",
                                      "ach_same_day",
                                      "fedwire",
                                      "rtp",
                                      "sepa",
                                      "sepa_instant",
                                      "swift",
                                      "onchain",
                                      "internal",
                                      "card"
                                    ]
                                  },
                                  "netAmount": {
                                    "type": "string",
                                    "pattern": "^(0|-?[1-9][0-9]*)$"
                                  },
                                  "feeFacts": {
                                    "type": "object",
                                    "maxProperties": 20,
                                    "additionalProperties": {
                                      "type": "string",
                                      "pattern": "^(0|[1-9][0-9]*)$"
                                    }
                                  },
                                  "evidence": {
                                    "type": "array",
                                    "minItems": 1,
                                    "maxItems": 20,
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "required": [
                                        "kind",
                                        "ref"
                                      ],
                                      "properties": {
                                        "kind": {
                                          "enum": [
                                            "tap_message",
                                            "x402_receipt",
                                            "chain_tx",
                                            "signed_doc",
                                            "stripe_object",
                                            "other"
                                          ]
                                        },
                                        "ref": {
                                          "type": "string",
                                          "minLength": 1
                                        },
                                        "signer": {
                                          "type": "string",
                                          "minLength": 1
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "billing": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "contractId",
                                  "activityKey",
                                  "occurrenceKey",
                                  "sourceFactId",
                                  "effectiveAt",
                                  "phase"
                                ],
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "obligationKey": {
                                        "type": "string",
                                        "minLength": 1
                                      }
                                    },
                                    "required": [
                                      "obligationKey"
                                    ]
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "period": {
                                        "type": "object",
                                        "properties": {
                                          "from": {
                                            "type": "string",
                                            "minLength": 1
                                          },
                                          "through": {
                                            "type": "string",
                                            "minLength": 1
                                          }
                                        },
                                        "required": [
                                          "from",
                                          "through"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "period"
                                    ]
                                  }
                                ],
                                "properties": {
                                  "contractId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "activityKey": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "occurrenceKey": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "obligationKey": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "sourceFactId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "effectiveAt": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "phase": {
                                    "const": "billing"
                                  },
                                  "dueDate": {
                                    "type": "string",
                                    "format": "date"
                                  },
                                  "exchangeRate": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "base",
                                      "quote",
                                      "date",
                                      "numerator",
                                      "denominator",
                                      "evidence"
                                    ],
                                    "description": "An evidenced exchange rate (1 base = numerator/denominator quote), e.g. from a bank statement. It overrides the shared rate store for this command; omit it to use the store.",
                                    "properties": {
                                      "base": {
                                        "type": "string",
                                        "pattern": "^[A-Z]{3}$"
                                      },
                                      "quote": {
                                        "type": "string",
                                        "pattern": "^[A-Z]{3}$"
                                      },
                                      "date": {
                                        "type": "string",
                                        "format": "date"
                                      },
                                      "numerator": {
                                        "type": "string",
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "denominator": {
                                        "type": "string",
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "evidence": {
                                        "type": "array",
                                        "minItems": 1,
                                        "items": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "kind",
                                            "ref"
                                          ],
                                          "properties": {
                                            "kind": {
                                              "enum": [
                                                "tap_message",
                                                "x402_receipt",
                                                "chain_tx",
                                                "signed_doc",
                                                "stripe_object",
                                                "other"
                                              ]
                                            },
                                            "ref": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "signer": {
                                              "type": "string"
                                            }
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "period": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "from",
                                      "through"
                                    ],
                                    "properties": {
                                      "from": {
                                        "type": "string",
                                        "format": "date-time"
                                      },
                                      "through": {
                                        "type": "string",
                                        "format": "date-time"
                                      }
                                    }
                                  },
                                  "facts": {
                                    "type": "object",
                                    "maxProperties": 100,
                                    "additionalProperties": {
                                      "anyOf": [
                                        {
                                          "type": "string"
                                        },
                                        {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "occurrenceId"
                                          ],
                                          "properties": {
                                            "occurrenceId": {
                                              "type": "string",
                                              "minLength": 1
                                            }
                                          }
                                        },
                                        {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "claimId",
                                            "component"
                                          ],
                                          "properties": {
                                            "claimId": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "component": {
                                              "type": "object",
                                              "additionalProperties": false,
                                              "required": [
                                                "originLedgerId",
                                                "accountCode"
                                              ],
                                              "properties": {
                                                "originLedgerId": {
                                                  "type": "string",
                                                  "minLength": 1
                                                },
                                                "accountCode": {
                                                  "type": "integer"
                                                }
                                              }
                                            }
                                          }
                                        }
                                      ]
                                    }
                                  },
                                  "evidence": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "billing": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 20,
                                        "items": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "kind",
                                            "ref"
                                          ],
                                          "properties": {
                                            "kind": {
                                              "enum": [
                                                "tap_message",
                                                "x402_receipt",
                                                "chain_tx",
                                                "signed_doc",
                                                "stripe_object",
                                                "other"
                                              ]
                                            },
                                            "ref": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "signer": {
                                              "type": "string",
                                              "minLength": 1
                                            }
                                          }
                                        }
                                      },
                                      "service": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 20,
                                        "items": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "kind",
                                            "ref"
                                          ],
                                          "properties": {
                                            "kind": {
                                              "enum": [
                                                "tap_message",
                                                "x402_receipt",
                                                "chain_tx",
                                                "signed_doc",
                                                "stripe_object",
                                                "other"
                                              ]
                                            },
                                            "ref": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "signer": {
                                              "type": "string",
                                              "minLength": 1
                                            }
                                          }
                                        }
                                      },
                                      "acceptance": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 20,
                                        "items": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "kind",
                                            "ref"
                                          ],
                                          "properties": {
                                            "kind": {
                                              "enum": [
                                                "tap_message",
                                                "x402_receipt",
                                                "chain_tx",
                                                "signed_doc",
                                                "stripe_object",
                                                "other"
                                              ]
                                            },
                                            "ref": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "signer": {
                                              "type": "string",
                                              "minLength": 1
                                            }
                                          }
                                        }
                                      },
                                      "economic": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 20,
                                        "items": {
                                          "type": "object",
                                          "additionalProperties": false,
                                          "required": [
                                            "kind",
                                            "ref"
                                          ],
                                          "properties": {
                                            "kind": {
                                              "enum": [
                                                "tap_message",
                                                "x402_receipt",
                                                "chain_tx",
                                                "signed_doc",
                                                "stripe_object",
                                                "other"
                                              ]
                                            },
                                            "ref": {
                                              "type": "string",
                                              "minLength": 1
                                            },
                                            "signer": {
                                              "type": "string",
                                              "minLength": 1
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "payment": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "financialAccountId",
                                  "direction",
                                  "amount",
                                  "currency",
                                  "partyId",
                                  "effectiveAt",
                                  "sourceFactId",
                                  "evidence"
                                ],
                                "properties": {
                                  "financialAccountId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "direction": {
                                    "enum": [
                                      "in",
                                      "out"
                                    ]
                                  },
                                  "amount": {
                                    "type": "string",
                                    "pattern": "^[1-9][0-9]*$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "partyId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "effectiveAt": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "sourceFactId": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "evidence": {
                                    "type": "array",
                                    "minItems": 1,
                                    "maxItems": 20,
                                    "items": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "required": [
                                        "kind",
                                        "ref"
                                      ],
                                      "properties": {
                                        "kind": {
                                          "enum": [
                                            "tap_message",
                                            "x402_receipt",
                                            "chain_tx",
                                            "signed_doc",
                                            "stripe_object",
                                            "other"
                                          ]
                                        },
                                        "ref": {
                                          "type": "string",
                                          "minLength": 1
                                        },
                                        "signer": {
                                          "type": "string",
                                          "minLength": 1
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    ]
                  },
                  "interpretation": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "cid": {
                        "type": "string",
                        "minLength": 1
                      },
                      "promptVersion": {
                        "type": "string",
                        "minLength": 1
                      },
                      "buyer": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Exact observed buyer; historical proposals without this field remain review cases."
                      },
                      "spans": {
                        "type": "array",
                        "maxItems": 1000,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "start": {
                              "type": "integer",
                              "minimum": 0
                            },
                            "end": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 65536
                            },
                            "text": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "text"
                          ]
                        }
                      }
                    },
                    "required": [
                      "cid",
                      "promptVersion",
                      "spans"
                    ]
                  },
                  "preview": {
                    "description": "Read-only ordinary activity or priced-rights preparation, when validation succeeds."
                  }
                },
                "oneOf": [
                  {
                    "properties": {
                      "disposition": {
                        "const": "ready"
                      },
                      "missing": {
                        "maxItems": 0
                      },
                      "lines": {
                        "minItems": 1
                      }
                    },
                    "required": [
                      "command",
                      "contract",
                      "currency",
                      "totalMinor"
                    ]
                  },
                  {
                    "properties": {
                      "disposition": {
                        "enum": [
                          "needs_information",
                          "duplicate",
                          "unsupported"
                        ]
                      }
                    },
                    "not": {
                      "required": [
                        "command"
                      ]
                    }
                  }
                ]
              },
              "invoiceCorrection": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "principal": {
                    "type": "string"
                  },
                  "provenance": {
                    "const": "caller_selected_source_spans"
                  },
                  "choices": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "headers": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vendor": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          },
                          "buyer": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          },
                          "externalId": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          },
                          "date": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          },
                          "total": {
                            "type": "string",
                            "pattern": "^(?:none|v[0-9]{1,3})$"
                          }
                        },
                        "required": [
                          "vendor",
                          "buyer",
                          "externalId",
                          "date",
                          "currency",
                          "total"
                        ]
                      },
                      "service": {
                        "enum": [
                          "delivered",
                          "not_delivered",
                          "unclear"
                        ]
                      },
                      "rows": {
                        "type": "array",
                        "maxItems": 64,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "role": {
                              "enum": [
                                "charge",
                                "tax",
                                "summary",
                                "other",
                                "unclear"
                              ]
                            },
                            "amount": {
                              "type": "string",
                              "pattern": "^(?:none|v[0-9]{1,3})$"
                            }
                          },
                          "required": [
                            "role",
                            "amount"
                          ]
                        }
                      }
                    },
                    "required": [
                      "headers",
                      "service",
                      "rows"
                    ]
                  }
                },
                "required": [
                  "at",
                  "principal",
                  "provenance",
                  "choices"
                ]
              }
            },
            "required": [
              "revision",
              "at",
              "principal"
            ]
          }
        },
        "original": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "documentId": {
              "type": "string"
            },
            "cid": {
              "type": "string"
            },
            "format": {
              "enum": [
                "markdown",
                "text",
                "document"
              ]
            },
            "provenance": {
              "enum": [
                "caller_supplied_unverified",
                "registered_bytes"
              ]
            }
          },
          "required": [
            "documentId",
            "cid",
            "format",
            "provenance"
          ]
        },
        "failure": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "reason": {
              "type": "string"
            },
            "retryable": {
              "type": "boolean"
            }
          },
          "required": [
            "reason",
            "retryable"
          ]
        },
        "lastFailure": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "reason": {
              "type": "string"
            },
            "retryable": {
              "type": "boolean"
            },
            "attempt": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            },
            "at": {
              "type": "string",
              "format": "date-time"
            }
          },
          "required": [
            "reason",
            "retryable",
            "attempt",
            "at"
          ]
        },
        "relationship": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "type": {
              "enum": [
                "transcription",
                "summary",
                "related_original"
              ]
            },
            "declaredBy": {
              "type": "string"
            },
            "verification": {
              "const": "unverified"
            }
          },
          "required": [
            "type",
            "declaredBy",
            "verification"
          ]
        },
        "uploads": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "primary": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "filename": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "contentType": {
                  "enum": [
                    "application/pdf",
                    "text/plain",
                    "text/markdown",
                    "text/csv",
                    "application/json",
                    "image/png",
                    "image/jpeg",
                    "image/webp"
                  ]
                },
                "size": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10485760,
                  "description": "Exact byte length. Images are limited to 256 KiB; other files to 10 MiB."
                },
                "expiresAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "status": {
                  "enum": [
                    "awaiting_upload",
                    "uploaded",
                    "expired"
                  ]
                },
                "documentId": {
                  "type": "string"
                },
                "cid": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "description": "Short-lived upload credential. Send exact bytes to this URL with the returned method and contentType; no OAuth header is required. Present only in the response of the command that issued it (ingestions.start, ingestions.attach_original, ingestions.reissue_upload); replays and reads omit it, so call ingestions.reissue_upload for a fresh one."
                },
                "method": {
                  "const": "PUT",
                  "description": "Present when this response issued the upload URL."
                }
              },
              "required": [
                "filename",
                "contentType",
                "size",
                "expiresAt",
                "status"
              ]
            },
            "original": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "filename": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "contentType": {
                  "enum": [
                    "application/pdf",
                    "text/plain",
                    "text/markdown",
                    "text/csv",
                    "application/json",
                    "image/png",
                    "image/jpeg",
                    "image/webp"
                  ]
                },
                "size": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10485760,
                  "description": "Exact byte length. Images are limited to 256 KiB; other files to 10 MiB."
                },
                "expiresAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "status": {
                  "enum": [
                    "awaiting_upload",
                    "uploaded",
                    "expired"
                  ]
                },
                "documentId": {
                  "type": "string"
                },
                "cid": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "description": "Short-lived upload credential. Send exact bytes to this URL with the returned method and contentType; no OAuth header is required. Present only in the response of the command that issued it (ingestions.start, ingestions.attach_original, ingestions.reissue_upload); replays and reads omit it, so call ingestions.reissue_upload for a fresh one."
                },
                "method": {
                  "const": "PUT",
                  "description": "Present when this response issued the upload URL."
                }
              },
              "required": [
                "filename",
                "contentType",
                "size",
                "expiresAt",
                "status"
              ]
            }
          }
        },
        "revisions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "revision": {
                "type": "integer",
                "minimum": 1
              },
              "startedAt": {
                "type": "string",
                "format": "date-time"
              },
              "business": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "legalName": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "name",
                  "legalName"
                ]
              },
              "completedAt": {
                "type": "string",
                "format": "date-time"
              },
              "status": {
                "enum": [
                  "processing",
                  "completed",
                  "failed"
                ]
              },
              "sources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "documentId": {
                      "type": "string"
                    },
                    "cid": {
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "markdown",
                        "text",
                        "document"
                      ]
                    },
                    "provenance": {
                      "enum": [
                        "caller_supplied_unverified",
                        "registered_bytes"
                      ]
                    },
                    "role": {
                      "enum": [
                        "primary",
                        "original"
                      ]
                    }
                  },
                  "required": [
                    "documentId",
                    "cid",
                    "format",
                    "provenance",
                    "role"
                  ]
                }
              },
              "failure": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "reason": {
                    "type": "string"
                  },
                  "retryable": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "reason",
                  "retryable"
                ]
              },
              "invoiceSelection": {
                "type": "object",
                "additionalProperties": false,
                "description": "Observed source-span choices, bound to the committed UTF-8 extraction. Spans versions pick candidate indices; fields versions carry verified UTF-8 spans for header and payment-identity values. Choice probability is not financial accuracy or authorization.",
                "properties": {
                  "textCid": {
                    "type": "string"
                  },
                  "promptVersion": {
                    "enum": [
                      "invoice-fields-v5",
                      "receipt-fields-v5",
                      "invoice-spans-v1",
                      "receipt-spans-v1",
                      "invoice-fields-v1",
                      "receipt-fields-v1",
                      "invoice-fields-v2",
                      "receipt-fields-v2",
                      "invoice-fields-v3",
                      "receipt-fields-v3",
                      "invoice-fields-v4",
                      "receipt-fields-v4"
                    ]
                  },
                  "headers": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "vendor": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "buyer": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "externalId": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "date": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "currency": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "total": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      }
                    },
                    "required": [
                      "vendor",
                      "buyer",
                      "externalId",
                      "date",
                      "currency",
                      "total"
                    ]
                  },
                  "provider": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The model that chose header values and optional source-line amounts: Clef for spans versions, Clairic for fields versions.",
                    "properties": {
                      "name": {
                        "enum": [
                          "@cf/cloudflare/clef-flash",
                          "@cf/cloudflare/clef",
                          "@cf/cloudflare/clairic"
                        ]
                      },
                      "version": {
                        "const": "unreported"
                      },
                      "inputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "requestBytes": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "latencyMs": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "required": [
                      "name",
                      "version",
                      "inputTokens",
                      "outputTokens",
                      "requestBytes",
                      "latencyMs"
                    ]
                  },
                  "judgmentProvider": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Fields versions only: the Clef model or bounded Flash-to-Clef cascade that answered currency, service, payment status and row judgments. Optional Clairic amount reads are accounted in provider.",
                    "properties": {
                      "name": {
                        "enum": [
                          "@cf/cloudflare/clef-flash",
                          "@cf/cloudflare/clef",
                          "@cf/cloudflare/clef-flash+clef/uncertain-groups-v1"
                        ]
                      },
                      "version": {
                        "const": "unreported"
                      },
                      "inputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "requestBytes": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "latencyMs": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "required": [
                      "name",
                      "version",
                      "inputTokens",
                      "outputTokens",
                      "requestBytes",
                      "latencyMs"
                    ]
                  },
                  "groupingProvider": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Measured optional grouping attempt, including a failed attempt that retains physical rows.",
                    "properties": {
                      "name": {
                        "enum": [
                          "@cf/moonshotai/kimi-k2.6"
                        ]
                      },
                      "version": {
                        "const": "unreported"
                      },
                      "inputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "requestBytes": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "latencyMs": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "required": [
                      "name",
                      "version",
                      "inputTokens",
                      "outputTokens",
                      "requestBytes",
                      "latencyMs"
                    ]
                  },
                  "rowGroups": {
                    "type": "array",
                    "maxItems": 1024,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "firstRow": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1023
                        },
                        "lastRow": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1023
                        },
                        "anchorRow": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 1023
                        },
                        "description": {
                          "type": "object",
                          "properties": {
                            "start": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 65536
                            },
                            "end": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 65536
                            },
                            "text": {
                              "type": "string",
                              "maxLength": 65536
                            }
                          },
                          "required": [
                            "start",
                            "end",
                            "text"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "firstRow",
                        "lastRow",
                        "anchorRow"
                      ]
                    }
                  },
                  "service": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "choice": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "probability": {
                        "type": "string",
                        "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                      },
                      "span": {
                        "type": "object",
                        "properties": {
                          "start": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65536
                          },
                          "end": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 65536
                          },
                          "text": {
                            "type": "string",
                            "maxLength": 65536
                          }
                        },
                        "required": [
                          "start",
                          "end",
                          "text"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "choice",
                      "probability"
                    ]
                  },
                  "payment": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "status": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "externalId": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      },
                      "last4": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "choice": {
                            "type": "string",
                            "maxLength": 32
                          },
                          "probability": {
                            "type": "string",
                            "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                          },
                          "span": {
                            "type": "object",
                            "properties": {
                              "start": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "end": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 65536
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 65536
                              }
                            },
                            "required": [
                              "start",
                              "end",
                              "text"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "choice",
                          "probability"
                        ]
                      }
                    },
                    "required": [
                      "status",
                      "externalId",
                      "last4"
                    ]
                  },
                  "rows": {
                    "type": "array",
                    "maxItems": 1024,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "role": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "choice": {
                              "type": "string",
                              "maxLength": 32
                            },
                            "probability": {
                              "type": "string",
                              "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                            },
                            "span": {
                              "type": "object",
                              "properties": {
                                "start": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 65536
                                },
                                "end": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 65536
                                },
                                "text": {
                                  "type": "string",
                                  "maxLength": 65536
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "text"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "choice",
                            "probability"
                          ]
                        },
                        "amount": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "choice": {
                              "type": "string",
                              "maxLength": 32
                            },
                            "probability": {
                              "type": "string",
                              "pattern": "^(?:0(?:\\.[0-9]{1,15})?|1(?:\\.0{1,15})?)$"
                            },
                            "span": {
                              "type": "object",
                              "properties": {
                                "start": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 65536
                                },
                                "end": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 65536
                                },
                                "text": {
                                  "type": "string",
                                  "maxLength": 65536
                                }
                              },
                              "required": [
                                "start",
                                "end",
                                "text"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "choice",
                            "probability"
                          ]
                        }
                      },
                      "required": [
                        "role",
                        "amount"
                      ]
                    }
                  }
                },
                "required": [
                  "textCid",
                  "promptVersion",
                  "headers",
                  "service",
                  "rows"
                ]
              },
              "extraction": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "status": {
                    "enum": [
                      "not_required",
                      "extracted",
                      "incomplete"
                    ]
                  },
                  "method": {
                    "enum": [
                      "provided_text",
                      "native_pdf",
                      "image_ocr",
                      "pdf_ocr"
                    ]
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 65536,
                    "description": "Returned only after source-document authorization; raw history contains annex references."
                  },
                  "textBytes": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 65536
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "documentId": {
                        "type": "string"
                      },
                      "cid": {
                        "type": "string"
                      },
                      "format": {
                        "enum": [
                          "markdown",
                          "text",
                          "document"
                        ]
                      },
                      "provenance": {
                        "enum": [
                          "caller_supplied_unverified",
                          "registered_bytes"
                        ]
                      }
                    },
                    "required": [
                      "documentId",
                      "cid",
                      "format",
                      "provenance"
                    ]
                  },
                  "derived": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "cid": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "cid"
                    ]
                  },
                  "pageCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1,
                    "maximum": 50
                  },
                  "locations": {
                    "type": "array",
                    "maxItems": 50,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "page": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "start": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "end": {
                          "type": "integer",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "page",
                        "start",
                        "end"
                      ]
                    }
                  },
                  "provider": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "version": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "version"
                    ]
                  },
                  "usage": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "inputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "latencyMs": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "conversionTokens": {
                        "type": "integer",
                        "minimum": 0,
                        "description": "Estimated native conversion tokens, distinct from inference usage."
                      }
                    },
                    "required": [
                      "inputTokens",
                      "outputTokens",
                      "latencyMs"
                    ]
                  }
                },
                "required": [
                  "status",
                  "method",
                  "textBytes",
                  "source",
                  "derived",
                  "pageCount",
                  "locations",
                  "provider",
                  "usage"
                ]
              },
              "classification": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "documentType": {
                    "enum": [
                      "invoice",
                      "receipt",
                      "agreement",
                      "statement_or_remittance",
                      "credit_or_correction",
                      "reminder",
                      "mixed",
                      "other",
                      "uncertain"
                    ]
                  },
                  "probabilities": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "invoice": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "receipt": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "agreement": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "statement_or_remittance": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "credit_or_correction": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "reminder": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "mixed": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "other": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      },
                      "uncertain": {
                        "type": "string",
                        "description": "Decimal probability between 0 and 1."
                      }
                    },
                    "required": [
                      "invoice",
                      "receipt",
                      "agreement",
                      "statement_or_remittance",
                      "credit_or_correction",
                      "reminder",
                      "mixed",
                      "other",
                      "uncertain"
                    ]
                  },
                  "model": {
                    "type": "string"
                  },
                  "modelVersion": {
                    "type": "string"
                  },
                  "promptVersion": {
                    "type": "string"
                  },
                  "confidence": {
                    "type": "string",
                    "description": "Distribution confidence, not calibrated accuracy or permission to act."
                  },
                  "invoiceRole": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "role": {
                        "enum": [
                          "buyer",
                          "seller",
                          "neither",
                          "unclear"
                        ]
                      },
                      "probabilities": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "buyer": {
                            "type": "string"
                          },
                          "seller": {
                            "type": "string"
                          },
                          "neither": {
                            "type": "string"
                          },
                          "unclear": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "buyer",
                          "seller",
                          "neither",
                          "unclear"
                        ]
                      },
                      "confidence": {
                        "type": "string"
                      },
                      "promptVersion": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "probabilities",
                      "confidence",
                      "promptVersion"
                    ]
                  },
                  "usage": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "inputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outputTokens": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "requestBytes": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "latencyMs": {
                        "type": "integer",
                        "minimum": 0
                      }
                    },
                    "required": [
                      "inputTokens",
                      "outputTokens",
                      "requestBytes",
                      "latencyMs"
                    ]
                  }
                },
                "required": [
                  "documentType",
                  "probabilities",
                  "model",
                  "modelVersion",
                  "promptVersion"
                ]
              }
            },
            "required": [
              "revision",
              "startedAt",
              "business",
              "status",
              "sources"
            ]
          }
        }
      },
      "required": [
        "ingestionId",
        "createdAt",
        "status",
        "uploads",
        "revisions"
      ],
      "x-relative-urls": [
        "/uploads/primary/url",
        "/uploads/original/url"
      ]
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "cid": {
            "type": "string"
          }
        }
      }
    }
  }
}

Example request

{
  "name": "ingestions.start",
  "input": {
    "source": {
      "type": "text",
      "format": "markdown",
      "text": "# Vendor invoice\nUSD 12.00"
    }
  },
  "effective_at": "2026-09-01T00:00:00Z",
  "idempotency_key": "ingestions.start-example-0"
}
Navigate documentation