Create order
Requires an active API credential with the orders:create permission. Send the complete recipient object advertised by the catalog. A missing Mobile Legends zone_id returns 422 validation_failed with error.details.recipient including 'is missing zone_id'; no order or fulfillment is created. The live examples use illustrative UUIDs: replace product_id with the top-level id returned by your live catalog. With a sandbox credential, product_id selects the static response scenario. Unknown non-blank sandbox product IDs default to the success response.
https://cardzone.ai/api/b2b/v1/ordersAuthorization
Request body JSON required
- product_idstringrequired
Sellable variant UUID: use the id returned by the products endpoint.
For sandbox keys, this selects the static response scenario:
018f0000-0000-7000-8000-000000000001(sandbox-success-voucher): Static sandbox product that returns a fulfilled voucher order. Poll it with order_id1CAYVN8V9qVvrLwnnSZsPE.018f0000-0000-7000-8000-000000000002(sandbox-wallet-topup-required): Static sandbox product that returns an action-required wallet order. Poll it with order_id1CAYVN8V9qVvrLwnnSZsPF.018f0000-0000-7000-8000-000000000003(sandbox-merchant-attention-required): Static sandbox product that returns a fulfillment action-required order. Poll it with order_id1CAYVN8V9qVvrLwnnSZsPG.018f0000-0000-7000-8000-000000000004(sandbox-manual-review-required): Static sandbox product that returns a manual-review action-required order. Poll it with order_id1CAYVN8V9qVvrLwnnSZsPH.018f0000-0000-7000-8000-000000000005(sandbox-failed-order): Static sandbox product that returns a failed fulfillment response. Poll it with order_id1CAYVN8V9qVvrLwnnSZsPJ.
format: uuid - merchant_order_refoptionalstringor null
Optional store-scoped merchant order reference. Reusing the same value for the same store returns
409 merchant_order_ref_already_usedand does not create another order. If you lose the create response, pass this value as{id}when polling order status.maxLength: 128 - recipientoptionalobject
For voucher products, name/email/mobile are optional delivery details. For top-ups, send every canonical key advertised in recipient_fields by the catalog. PUBG normally requires player_id; Mobile Legends requires player_id and zone_id. Other products may require region_id or arbitrary configured safe keys. Send values as nonblank strings to preserve leading zeros. Missing and unconfigured fields return 422 validation_failed before order creation or fulfillment. Never substitute provider-specific keys such as userId or account_id unless that exact canonical key is configured on the Product.
Example requests
{
"product_id": "018f7b75-0194-726a-9814-e26efa39dfa1",
"quantity": 1,
"recipient": {
"player_id": "00123456789"
}
}{
"product_id": "018f7b75-0194-726a-9814-e26efa39dfa2",
"quantity": 1,
"recipient": {
"player_id": "12345678",
"zone_id": "1234"
}
}{
"product_id": "018f7b75-0194-726a-9814-e26efa39dfa3",
"quantity": 1,
"recipient": {
"player_id": "00123",
"region_id": "eu",
"account_tag": "main"
}
}Returns
201
Order accepted. The returned status may be processing, fulfilled, action_required, failed, or canceled.
- statusprocessingorfulfilledoraction_requiredorfailedorcanceledrequired
processing: accepted or still fulfilling.fulfilled: successful; safe to mark the partner order successful.action_required: inspectactionsand take the required action.failed: terminal failure; inspectfailure_reasonwhen present. Replacement codes the store paid for can still be added tocodes, and a dashboard retry moves the order back toprocessing.canceled: terminal cancellation; no fulfillment action remains.
