Job cards · v1
jobCard
MockMock. This operation is part of the approved contract but its module is not built yet. Run Core with N1_API_MODE=mock N1_DEV_AUTH=stub to get deterministic demo-shop data from it. The real server answers NOT_IMPLEMENTED until it ships; the schema and examples here will not change when it does.
One job card by id, with its operations
One job card by id. JOB_CARD_NOT_FOUND if the id is not in this shop. Operators open a card with jobCardByQr.
/graphqlapp audienceWho can call this. Owner, admin, accountant, supervisor, QC.
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/jsonYour 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 job card id.
Example:
"0192f0c1-0000-7000-8000-000000d2000b"
Returns
One job card by id.
JOB_CARD_NOT_FOUNDif the id is not in this shop. Operators open a card withjobCardByQr.Show children
UTC time the card was made.
Example:
"2026-09-03T05:00:00.000Z"The customer’s name.
Example:
"Alpha Auto Components 1"The order’s promised date, YYYY-MM-DD in the shop’s timezone.
Example:
"2026-09-30"Stable id (UUIDv7).
Example:
"0192f0c1-0000-7000-8000-000000d2000b"UTC time anything on the card last moved. “Stuck” is measured from here.
Example:
"2026-10-12T00:30:00.000Z"The steps, in order.
Example:
[{"id":"0192f0c1-0000-7000-8000-000000d3006f","seq":1,"name":"Threading","status":"DONE","operatorId":"0192f0c1-0000-7000-8000-0000000000a5","operatorName":"Esha Demo","machineId":null,"machineName":null,"startedAt":"2026-10-11T19:30:00.000Z","endedAt":"2026-10-11T21:30:00.000Z"},{"id":"0192f0c1-0000-7000-8000-000000d30070","seq":2,"name":"Milling","status":"RUNNING","operatorId":"0192f0c1-0000-7000-8000-0000000000a5","operatorName":"Esha Demo","machineId":"0192f0c1-0000-7000-8000-000000d40001","machineName":"Lathe 1","startedAt":"2026-10-12T00:30:00.000Z","endedAt":null},{"id":"0192f0c1-0000-7000-8000-000000d30071","seq":3,"name":"Finishing","status":"PENDING","operatorId":"0192f0c1-0000-7000-8000-0000000000a5","operatorName":"Esha Demo","machineId":null,"machineName":null,"startedAt":null,"endedAt":null}]Show children
UTC time the step finished.
Example:
"2026-10-11T21:30:00.000Z"Stable id (UUIDv7).
Example:
"0192f0c1-0000-7000-8000-000000d3006f"The machine it runs on, if one is assigned.
Example:
nullThat machine’s name.
Example:
nullWhat the step does.
Example:
"Threading"The operator it is assigned to, if any.
Example:
"0192f0c1-0000-7000-8000-0000000000a5"That operator’s name.
Example:
"Esha Demo"Order of the step, from 1.
Example:
1UTC time the step started.
Example:
"2026-10-11T19:30:00.000Z"Where the step is.
Example:
"DONE"DONEFinished.PENDINGNot started.RUNNINGBeing worked on now.
The order (see
order).Example:
"0192f0c1-0000-7000-8000-000000d00001"The order line it was made for.
Example:
"0192f0c1-0000-7000-8000-000000d1000b"Part name or number.
Example:
"Bush 25x30"The order’s PO number.
Example:
"PO-2026-0001"The text printed as a QR code on the card. Unique in the shop;
jobCardByQrresolves it.Example:
"JC-00001"Pieces to make.
Example:
40Worked out from the operations.
Example:
"IN_PROGRESS"DONEEvery operation is done.IN_PROGRESSAt least one operation has started and not every one is done.QUEUEDNo operation has started.
Errors
| Code | HTTP | When |
|---|---|---|
JOB_CARD_NOT_FOUND | 404 | The id or QR value is unknown in this shop (another shop's answer the same). |
FORBIDDEN | 403 | Signed in, but the role or tenant does not allow the action. |
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.