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.
Minimum card creation amount is 3.00.Themaximumcardcreationamountandtop−upamountis10,000.00 USD.
Step 1: 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).
Initial funding amount in USD. Minimum 3.00,maximum10,000.00.
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",
"amount": 10.00
}'
{
"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. Minimum 1.00,maximum10,000.00.
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" }'
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": "unfreeze" }'
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.