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
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
The ID of the activated customer.
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
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}
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
Amount to add to the card.
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}
"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}
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
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
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.