Orders · v1
dispatchOrder
LiveDispatch final production to Billing
Dispatch production after every machining and QC step passes. Owner, admin and supervisor. Moves IN_PROGRESS or PAUSED to PAYMENT_DUE (Billing). Idempotent and audited. ORDER_NOT_READY_FOR_DISPATCH if production is not final; ORDER_STATUS_STEP for an invalid status; ORDER_NOT_FOUND outside this shop.
/graphqlapp audienceWho can call this. Owner, admin, supervisor.
Headers
Bearer <token>, issued for this endpoint's audience. The token decides the shop and roles; nothing in the request body can change them.Example:
Bearer eyJhbGciOiJFZERTQSJ9…Always
application/json. Only POST is accepted.Example:
application/jsonA key you generate once per user action (a UUID). Retrying with the same key never applies the change twice.
Example:
0192f0c1-9b2a-7d40-8c3e-1f5a6b7c8d9eYour id for this request (8–128 characters of A–Z a–z 0–9 . _ : -). Echoed back in the response header and in every error, so you can quote it when reporting a problem. Core makes one if you send none.
Example:
app-7f3c2a9e-checkout
Arguments
The work order.
Example:
"0192f0c1-0000-7000-8000-000000d00019"
Returns
Dispatch production after every machining and QC step passes. Owner, admin and supervisor. Moves IN_PROGRESS or PAUSED to PAYMENT_DUE (Billing). Idempotent and audited. ORDER_NOT_READY_FOR_DISPATCH if production is not final; ORDER_STATUS_STEP for an invalid status; ORDER_NOT_FOUND outside this shop.
Show children
Whether to offer Create job card: no card exists, the order is not finished, and this caller can open job cards. Opening still needs the raw material grade and size (
updateOrder(openJobCard: true)).UTC time the order was entered.
The customer’s email, for the order screen.
The customer (see
customer).The customer’s name, so a list needs no second call.
Delivery challan date, YYYY-MM-DD.
Delivery challan number.
Description.
The design file.
Attached documents.
Drawing number.
Promised delivery date, YYYY-MM-DD in the shop’s timezone.
Heat number.
Stable id (UUIDv7).
Example:
"0192f0c1-0000-7000-8000-000000d00019"The job card of this order (open it with
jobCard); null until it is opened withupdateOrder(openJobCard: true), which needs the raw material grade and size.Example:
"0192f0c1-0000-7000-8000-000000d200fb"Job name.
Material to use.
Where the material comes from; null until chosen.
BOUGHT_OUTBought from a supplier.IN_HOUSECut from the shop’s own stock.
Notes.
Permanent per-shop work-order number (WO-<n>).
Part name.
Part number.
PO value in paise (integer). Not on the app’s type; shown when entered.
The customer’s PO number.
How urgently to take it.
HIGHAhead of other orders.LOWFill gaps in the schedule.MEDIUMThe default.
Project id.
Pieces ordered.
The quote this order was converted from, if any (see
quote).Raw material grade.
Raw material size.
Raw material part number.
Route card no.
Shop order number.
Worked out from the job card and invoice.
Example:
"PAYMENT_DUE"COMPLETEDProduction is complete and the invoice is paid.IN_PROGRESSAt least one operation is running or finished, and not all are.NEWEntered; work is not ready to start (design or material not cleared, nobody assigned).PAUSEDWork is paused.PAYMENT_DUEProduction is complete and the invoice is not paid (or not yet raised).YET_TO_STARTReady to start: cleared for work or an operator is assigned, nothing running.
What happened to the order, oldest first.
Show children
UTC ISO timestamp.
Additional context.
Event id.
Activity label.
Badge tone.
DANGERFailure.INFOInformation.NEUTRALNeutral.SUCCESSSuccess.WARNINGWarning.
UTC time of the last change.
Errors
| Code | HTTP | When |
|---|---|---|
FORBIDDEN | 403 | Signed in, but the role or tenant does not allow the action. |
ORDER_NOT_FOUND | 404 | The id is unknown in this shop (another shop's ids answer the same). |
Every error has the same body. See Errors.
Rate limit tier
Tier: per user. Over the limit you get RATE_LIMITED (HTTP 429) with a Retry-After header. See Response handling.