Skip to main content
This is the most common Banking flow. You create a virtual card inside a wallet, read its full number and CVV, and hand those details to a merchant (an airline, a hotel, an ad platform) to be charged. The same flow backs single-charge use cases (one ticket, one booking) and reusable cards (an ongoing ad account).

Flow

Step 1: Create the card

Create the card in the target wallet. The card is created ACTIVE and returns its _id (the cardId you use everywhere else).
You can create the card without cardLimits and attach a limit later — useful for reusable cards that get a fresh limit before each charge. See Control card spending.
Reference: POST .../wallets/{walletId}/cards

Step 2: Read the card details

The create response only returns the masked PAN. To get the full number and CVV needed for a charge, call the details endpoint with the cardId from step 1.
The response adds the sensitive fields to the card object:
Use pan, cvv, and expiryDate to complete the charge with the merchant. Reference: GET .../cards/{cardId}/details
pan and cvv are full card credentials. Never log them or store them in plaintext — read them, forward them to the merchant, and discard them.

Cardholder name guidelines

When a merchant requires a cardholder name, follow these rules so the charge isn’t rejected:
  • Use at least two names, ideally three, separated by a space — MARCOS DANTAS or MARCOS O DANTAS, not MARCOS.
  • Always uppercase.
  • No digits or special characters.

Reusing a card for future charges

For a reusable card (singleUse: false), don’t create a new card per charge. Instead, keep the card and add a fresh limit before each new transaction: The request body and the difference between a card limit and a card rule are covered in Control card spending.

Next steps

Control card spending

Add limits and merchant-category rules, and check available balance.

Manage and monitor cards

Block, unblock, and read the transaction history for a card.