API reference
Orders
Quote shipping, place, read, list, and cancel orders.
POST
/api/intake/shipping/ratesBody: { items, ship_to }. 200 { rates: [{ rate_id, carrier, service, amount_cents, currency, estimated_days }] }. 502 if the address cannot be rated.
POST
/api/intake/ordersPlace an order. Body: items[], ship_to, optional shipping { method | rate_id }, external_reference, notes. Supports Idempotency-Key. 201 paid; 402 payment failed (order recorded); 409 lines cannot be priced; 422 no rate; 503 shipping or storage unavailable.
GET
/api/intake/orders?limit=50This key's orders, newest first.
GET
/api/intake/orders/{id}One order with lines and job statuses.
POST
/api/intake/orders/{id}/cancelCancel while paid or payment_failed; refunds in full. 200 again on a cancelled order. 409 once in production or shipped; 502 if the refund failed.
The Order object
| id, status, next | status: received, paid, payment_failed, in_production, shipped, cancelled. |
|---|---|
| external_reference | Your order number. |
| currency, subtotal_cents, shipping_cents, total_cents | usd; parts, shipping, and what was charged. |
| ship_to | The address as sent. |
| shipping | { method, carrier, service, rate_id } |
| payment | { status: pending | paid | failed | refunded, paid_at, refunded_at, error } |
| shipment | null, or { carrier, tracking_number, tracking_url, shipped_at } |
| items | [{ id, variant_id, product_id, product_name, variant_name, sku, quantity, unit_price_cents, line_total_cents, job: { id, status } }] |
| notes, created_at, updated_at |