Skip to main content
Cards represent the core issuance primitive. Once you have provisioned a funding account and linked a card holder, you can seamlessly issue and orchestrate cards programmatically.

Issuing a Card

Use POST /cards to generate a new card. You must supply an active funding account (debitAccountId) and the cardHolderId representing the legal owner.
{
  "debitAccountId": "665f1c4f4a4f4a4f4a4f4a4f",
  "cardHolderId": "665f1c5d5a5f5a5f5a5f5a5f",
  "type": "virtual",
  "brand": "Visa",
  "currency": "USD",
  "status": "active",
  "amount": 100
}
By supplying an initial amount, the system will attempt to deduct funds from the associated debit account and provision the available spend limit in a single step.

Funding an Existing Card

If you didn’t fund the card fully on issuance or are running a prepaid continuous funding model, you can explicitly move money into the card balance using POST /cards/{cardId}/fund.
{
  "debitAccountId": "665f1c4f4a4f4a4f4a4f4a4f",
  "amount": 25,
  "paymentReference": "auto-topup-feb-24",
  "narration": "Card funding"
}
This ensures sufficient capital is staged before settlement authorizations occur.

Secure Reveal (Tokenization)

Sensitive Primary Account Numbers (PAN) and CVVs are heavily restricted. To display full card numbers to users without taking on immense PCI compliance scope, you must utilize our vault tokens.
  1. Generate Token: Request a short-lived provider token using POST /cards/{cardId}/token.
  2. Reveal Details: Have your client application pass the generated token via GET /cards/{cardId}/reveal?token=....
The reveal service will return the unmasked pan, cvv, expiryMonth, and expiryYear, suitable for final rendering.

Managing Lifecycle Changes

Over the life of a card, you can pause, terminate, or modify behavior.
  • State Transitions: Use PUT /cards/{cardId} to update the status to active or inactive. You can also enforce specific spending controls using this endpoint.
  • Permanent Deletion: Use DELETE /cards/{cardId} to terminate the card and effectively purge it. Note that a closed card cannot be re-opened.
For the exhaustive endpoint schemas, refer to the Cards API Reference.