Prerequisites
Before issuing a card, the cardholder must have KYC statusapproved. See the cardholders guide for KYC details.
Issue a card
Select a card program and issue a card to a cardholder:Request fields
Response
Asynchronous issuance
Some card programs provision cards asynchronously. On those programs the response returns"status": "pending" instead of "created". The card is not usable yet — provisioning typically completes within a few minutes:
- Issue the card and store the returned
id. - When provisioning completes, the card transitions to
activeand acard.issuedwebhook fires. - Prefer reacting to the webhook; you can also poll
GET /partner/cards/{id}untilstatusisactive.
pending and flip to active (with the same card.issued webhook) after a short delay, so an integration built against sandbox handles the live timing unchanged.
Card lifecycle
Cards progress through the following states:Example: activate a card
Example: freeze a card
Spend control
Set per-transaction-type velocity caps on a card. Each cap is optional; omit a key to leave that bucket uncapped. The endpoint accepts both the newspendControl body and the legacy { limit } body (deprecated, see below).
The legacy
{ "limit": 5000 } body is still accepted and is mapped to { "spendControl": { "sales": { "allTime": 5000 }, "cash": { "allTime": 5000 } } }. It will be removed in a future release.List cards
Retrieve all cards for your partner account:Query parameters
Get a card
Retrieve a single card by ID:Card fields
Transactions
Retrieve transaction history for a card:Transaction fields
Card programs
Card programs define the cardtype and brand available to your integration. Your Contro admin assigns specific card programs to your partner account — only assigned programs can be used to issue cards.
List available card programs
Retrieve the card programs assigned to your account:Card program fields
Issuing a card with a program not assigned to your account will return a
403 error. Contact your Contro admin to request access to additional card programs.