Submit a document order
Some teams still work in buysheets, and some sellers still want them. The document workflow accepts a file, interprets it, and asks you to confirm the interpretation before anything commits. It is slower than the catalog path on purpose; use it when a file is genuinely how the trade exists.
POST /v1/orders
{ "seller": "acme", "workflow": "document",
"external_order_id": "q4-buysheet-007",
"document": { "upload_id": "up_3fc2", "format": "xlsx" },
"notify_url": "https://yourapp.example.com/webhooks/switchboard" }
- The pipeline parses the file (rules first, models second) and emits
parsed_ioandvalidation_resultartifacts, then parks atneeds_confirmation. - Review the parsed interpretation, then
POST /orders/{id}/confirmwithconfirmorrejectand a reason (persisted either way). - Documents the platform generates back to you are hash-bound renderings of the authoritative JSON: verify the
sha256, trust the JSON. Field parity is guaranteed; if a column exists on the sheet, it exists in the payload. - A file that cannot be interpreted fails fast with
PARSE_FAILEDand the specific rows at issue, not a silent partial read.
If you control the source system, the catalog path is faster and skips the confirmation round-trip entirely. The document lane exists for the trades that still live in spreadsheets, not as the recommended integration.