Skip to main content
Issue prepaid virtual cards to your customers for online spending. Cards are funded from your wallet balance and can be frozen, unfrozen, topped up, or terminated via the API.
Before issuing cards, customers must be activated for virtual card usage. Activation is separate from KYC — it enrolls the customer in the card program.

Step 1: Activate Customer for Virtual Cards

Enroll a customer in the virtual card program:
POST /customer/virtual/cards/activate
customer_id
string
required
The ID of the customer to activate.
curl -X POST 'https://api.yativo.com/api/v1/customer/virtual/cards/activate' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{
    "customer_id": "da44a3e6-eb5d-429f-8d17-357aa5a6cdf2"
  }'

Step 2: Issue a Card

Create a virtual card for an activated customer:
POST /customer/virtual/cards/create
customer_id
string
required
The ID of the activated customer.
currency
string
required
Card currency (e.g. USD).
curl -X POST 'https://api.yativo.com/api/v1/customer/virtual/cards/create' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{
    "customer_id": "da44a3e6-eb5d-429f-8d17-357aa5a6cdf2",
    "currency": "USD"
  }'
{
  "status": "success",
  "data": {
    "card_id": "card_01HX9KZMB3F7VNQP8R2WDGT4E5",
    "card_number": "4111 **** **** 1234",
    "expiry": "04/29",
    "cvv": "***",
    "currency": "USD",
    "balance": "0.00",
    "status": "active",
    "customer_id": "da44a3e6-eb5d-429f-8d17-357aa5a6cdf2"
  }
}

List Cards

Retrieve all virtual cards with pagination:
GET /customer/virtual/cards/list
page
number
Page number.
per_page
number
Results per page.
curl -X GET 'https://api.yativo.com/api/v1/customer/virtual/cards/list?page=1&per_page=20' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Get Card Details

Retrieve a specific virtual card, including sensitive details:
GET /customer/virtual/cards/get/{cardId}
cardId
string
required
The virtual card ID.
curl -X GET 'https://api.yativo.com/api/v1/customer/virtual/cards/get/card_01HX9KZMB3F7VNQP8R2WDGT4E5' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Fund a Card

Top up a card from your wallet balance:
POST /customer/virtual/cards/topup
card_id
string
required
The virtual card ID.
amount
number
required
Amount to add to the card.
debit_wallet
string
required
Wallet currency to debit from (e.g. USD).
curl -X POST 'https://api.yativo.com/api/v1/customer/virtual/cards/topup' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{
    "card_id": "card_01HX9KZMB3F7VNQP8R2WDGT4E5",
    "amount": 100,
    "debit_wallet": "USD"
  }'

Freeze / Unfreeze a Card

Temporarily freeze or unfreeze a card:
PUT /customer/virtual/cards/update/{cardId}
cardId
string
required
The virtual card ID.
action
string
required
"freeze" to block the card, "unfreeze" to re-enable it.
curl -X PUT 'https://api.yativo.com/api/v1/customer/virtual/cards/update/card_01HX9KZMB3F7VNQP8R2WDGT4E5' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{ "action": "freeze" }'

Get Card Transactions

Retrieve transaction history for a specific card:
GET /customer/virtual/cards/transactions/{cardId}
cardId
string
required
The virtual card ID.
curl -X GET 'https://api.yativo.com/api/v1/customer/virtual/cards/transactions/card_01HX9KZMB3F7VNQP8R2WDGT4E5' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Withdraw from Card

Move funds from a card back to your wallet:
POST /customer/virtual/cards/withdraw
card_id
string
required
The virtual card ID.
amount
number
required
Amount to withdraw from the card.
curl -X POST 'https://api.yativo.com/api/v1/customer/virtual/cards/withdraw' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{
    "card_id": "card_01HX9KZMB3F7VNQP8R2WDGT4E5",
    "amount": 50
  }'

Terminate a Card

Permanently cancel a card. This action is irreversible:
POST /customer/virtual/cards/terminate
card_id
string
required
The virtual card ID to terminate.
curl -X POST 'https://api.yativo.com/api/v1/customer/virtual/cards/terminate' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: unique-key-here' \
  -d '{
    "card_id": "card_01HX9KZMB3F7VNQP8R2WDGT4E5"
  }'
Card termination is permanent. Withdraw remaining funds before terminating.