Create an order
POST/api/v1/create-order
Creates an order and ships kits to the recipient, deducting credits when your balance covers it.
If credits are insufficient, the API charges your saved payment method, creates a pending order
({ pending: true, orderId }) to be paid later from the Admin Dashboard, or returns 409 —
depending on purchase_with_attached_payment and your business settings. Poll
GET /api/v1/orders/{id} to track fulfillment.
Bulk creation: send bulkUploadData (an array of { kit_type, quantity, ...recipient } rows).
Arrays with 20 or more rows are processed asynchronously: credits are reserved up front and
a jobId is returned (status 202) — poll GET /api/v1/bulk-order-jobs/{jobId} for progress.
Called with a sandbox API token, this endpoint creates sandbox orders and mock kits instead
(the is_test_order flag on live tokens is deprecated).
Request
Responses
- 200
- 201
- 202
- 400
- 401
- 404
- 409
Charged via attached payment method, or pending order created to be paid later
Order created (single or synchronous bulk)
Async bulk job accepted — poll GET /api/v1/bulk-order-jobs/{jobId}
Invalid kitType, multiple kit types without credits, or zip > 12 chars
Missing or invalid API token
Bulk row references an unknown kit_type
Insufficient credits and no verified payment method, or kit purchases disabled for this business