Skip to main content

Orders

Create an order

POST /api/v1/create-order

purchase_with_attached_payment controls how the order is paid for that controls how the order is paid for:

  • true: skip credits and charge the attached payment method immediately, on demand.
  • false: pay with prepaid credits. If the credit pool cannot cover the order, the request fails with 400 "Not enough credits"; there is no automatic card fallback on the API path.

Orders can also carry an explicit paymentMethod field that names the payment source directly instead of relying on the boolean flag. Mixed kit-type orders can be paid by card; the earlier 400 on multi-kit-type card orders was lifted in the July 2026 payments refactor. Pay-later (pending payment) orders are created from the admin dashboard flow, not through this API.

tip

Prefer to automate order creation from your own store instead of calling the API directly? Contact support for a current Zapier integration invite; invite links expire periodically, so ask for a fresh one rather than reusing an old link you may have seen in these docs before.

Kit types for B2B Starter panels

Pass one of these values as kitType in the kit_types array of your /create-order request to automate ordering for the standard B2B Starter panels:

PanelkitType
Core HealthED1NL4E3L
GLP & CardioED14KY98G
Women's HealthED2KXO3EE
HRT MonitoringED23L1ELT
Ultimate HealthULTIMATE_METABOLIC_HORMONE_THYROID_EASY_DRAW
note

Only panels provisioned for your account can be ordered. If a request with one of these values is rejected, or the panel is missing from your GET /credits response, contact support to have it enabled for your business. Custom and enterprise panels have their own identifiers, provided during onboarding.

Credits

GET /api/v1/credits

Returns each kit type's credit balance for your business. A few things worth knowing before you integrate against it:

  • Only provisioned kit types are returned. The response is built from your business's own product list, not the full kit-type catalog; a kit type your account was never set up for simply won't appear.
  • An unset balance is omitted, not zero. If a provisioned product has no credit balance configured, its credits field is left out of the response entirely rather than returned as 0. Treat a missing field the same as a zero balance.
  • The type value can differ from the internal kit-type identifier for legacy reasons (ORIGINAL is exposed as BASE). Join on the type string returned by this endpoint, not on your own internal enum, to avoid a silent mismatch.

1 credit = 1 kit

Send Email Notifications to User

If you want your user to receive email notifications upon order and kit status changes, please send isNotifyReceiver:true flag in the body of the request.

This API function matches the checkbox in the manual dashboard order creation.
Open the live API playground

Full request and response schemas for every endpoint, testable with your sandbox token.