Prerequisites
- A Fluz account with a staging application — Steps 1–2 of any quickstart, or see Prepare your accounts and API credentials.
- A token with
CREATE_VIRTUALCARDto place the order andREVEAL_VIRTUALCARDto poll its status. Without the second, step 2 fails withAUTH-0031. - Enough available balance to cover the order — 100 cards × the spend limit you set.
- A billing address on the account, or a
billingAddresson each order item. Without one, card creation fails and the order completes withfailedCardCreationsequal to the order size.
The full flow
A bulk order is asynchronous. The mutation returns immediately with anorderId and a PENDING status; the cards are created in the background. The order and the cards succeed independently — an order can reach COMPLETED with some cards failed, so the order status alone never tells you whether you got what you asked for.
Always reconcile successfulCardCreations and failedCardCreations against totalCards before treating an order as done. orderStatus has one more possible value not shown above — CANCELED — which, like FAILED, means the order will produce no more cards.
Place the bulk order
One The
createVirtualCardBulkOrder call creates all 100 cards. Each entry in orderItems is a card configuration with a quantity — here, 100 identical single-use disbursement cards.Unlike most money-moving mutations, this one takes no idempotencyKey — the input accepts only offerId and orderItems. See Idempotency for where the key does apply.offerId applies to every card in the order; mix configurations by adding more orderItems entries (e.g. 20 qty of $25 single-use + 80 qty of $100 monthly). lockCardNextUse: true makes each card self-destruct after its first charge — the standard disbursement pattern.Bulk orders are asynchronous — the response is an
orderId and PENDING, not cards. Save the orderId; it’s your handle for everything that follows.Poll the order to completion
Track progress with Poll with backoff until
getVirtualCardBulkOrderStatus. Cards populate incrementally while the order is PENDING:orderStatus is COMPLETED (or FAILED) — while pending, successfulCardCreations climbs toward totalCards and virtualCards fills in.Handle partial failures
A bulk order can partially succeed: Persistent failures usually trace to program limits or funding — check Virtual Card Error Codes and your available balance.
successfulCardCreations: 98, failedCardCreations: 2 on a completed order means 98 real, spendable cards and 2 that need retrying. Reconcile by comparing the counts to totalCards, then re-issue only the shortfall as a new order:You’re done 🎉
One hundred configured cards from one request, with a poll loop that’s production-ready as-is. Next:Get virtual card transactions
Monitor spend across the whole batch — up to 10 cards per query, or account-wide by date.
Send cards to recipients
Distributing to people outside your org? Hosted claim links handle onboarding for you.
Want to learn more? Contact us at support@fluz.app to speak with our experts or request a demo.