CARD PREPAID top-up
Topping up your card using cryptocurrency involves a series of steps that ensure a secure and accurate transaction. Below is a detailed guide to execute this process.
Step 1. Verify Asset Top-Up Availability
Before initiating a top-up, verify that the selected cryptocurrency supports card funding. Use the Get All Currencies API endpoint and check the features array of the selected asset.
For card top-ups:
- CP1 cards require CARD_TOP_UP
- CP2 cards require CP2_TOP_UP
Example of features array:
Response:
<features>
<features>CP2_TOP_UP</features>
<features>CARD_TOP_UP</features>
</features>For the full list of supported features, refer to the Supported Features per Asset guide.
If the required feature is not present, the asset cannot be used to fund the selected card program.
Step 2. Check Cryptocurrency Balances
Before executing a top-up, initiate a dry run to validate the transaction details and calculate fees. Use the Get Total Balance API endpoint.
Response:
{
"balances": [
{
"account": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"balance": "9.87",
"currency": "EPI",
"lastUpdated": "2025-05-27T16:07:11.593Z"
}
],
"total": 0
}Make sure the source account has enough balance to cover the top-up amount and any applicable fees. This applies to both CP1 and CP2 card top-ups.
Step 3. Perform a Dry Run for Card Top-Up
Before executing a top-up, initiate a dry run to validate the transaction details and calculate fees. Use the Direct Exchange API with dryRun=true.
Guidelines:
fromAccount– always use the ID of an account of type CHECKING (retrieved via List All Accounts ).toAccount– use the ID of the card’s settlement account:- CARD_PREPAID if the card is CP1
- CP2 if the card is CP2
You can also find this ID in List All Cards V2 (
accountIdof the desired card). toCurrency– alwaysUSDCfor both card programs.
Request:
POST https://api.sandbox-v2.vault.ist/wallet/direct-exchange?dryRun=true
{
"fromAccount": "abc12345-6789-def0-1234-56789abcdef0",
"toAccount": "xyz98765-4321-fedc-0987-6543210fedcb",
"fromCurrency": "USDT",
"toCurrency": "USDC",
"fromAmount": "0.01567823456789012345"
}Response:
{
"id": "1234abcd-5678-ef90-1234-56789abcdef0",
"fromAmount": "0.015678",
"toAmount": "0.015675",
"feeAmount": "0.000300",
"feeCurrency": "USDT",
"status": "PENDING"
}Review the response to confirm
fromAmount,toAmount, and applicable fees. This dry run applies to both CP1 and CP2 card top-ups.
Step 4. Execute the Top-Up
After validating the transaction details, execute the top-up by setting dryRun=false in the API call.
Request:
POST https://api.pre-v2.vault.ist/wallet/direct-exchange?dryRun=false
{
"fromAccount": "abc12345-6789-def0-1234-56789abcdef0",
"toAccount": "xyz98765-4321-fedc-0987-6543210fedcb",
"fromCurrency": "USDT",
"toCurrency": "USDC",
"fromAmount": "0.01567823456789012345",
"id": "1234abcd-5678-ef90-1234-56789abcdef0",
"feeAmount": "0.000300",
"feeCurrency": "USDT"
}Response:
{
"id": "abcd1234-5678-90ef-1234-56789abcdef0",
"fromAmount": "0.015678",
"toAmount": "0.015675",
"feeAmount": "0.000300",
"feeCurrency": "USDT",
"status": "SUCCESS",
"note": "Reserve Funds Successful; Direct Exchange Success"
}Step 5. Verify Card Top-Up
After executing the top-up, confirm that the card balance has been updated and that the transaction is recorded in the card’s history.
5.1 Check Updated Card Balance
Use the List All Cards V2 endpoint to retrieve the card’s current balance and account details.
Response Example:
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"userId": "string",
"accountId": "string",
"additionalCardInfo": {},
"status": "ACTIVE",
"plasticCardStatus": "ORDERED",
"cardDesign": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"description": "string",
"image": "string",
"thumbnail": "string"
},
"last4": "string",
"balance": {
"amount": 100,
"currency": "USD"
},
"cardType": "VIRTUAL",
"deliveryInfo": {
"estimatedDeliveryDate": "2026-02-23T17:00:17.080Z",
"trackingNumber": "string",
"trackingUrl": "string"
},
"orderedAt": "2026-02-23T17:00:17.080Z",
"cardProgram": "CP1"
}
]5.2 Verify Top-Up Transaction
Use the Get Reap Card Transactions API to confirm that the top-up operation is recorded in the card's transaction history.
Response Example:
{
"operationId": "string",
"operationDate": "2026-02-23T17:01:06.580Z",
"operationStatus": "INIT",
"reapTopUpModel": {
"amount": 0,
"currency": "string"
},
"reapAuthTransactionModel": {
"amount": 0,
"currency": "string",
"feeAmount": 0,
"feeCurrency": "string",
"billAmount": 0,
"billCurrency": "string",
"creationDate": "2026-02-23T17:01:06.580Z",
"processingDate": "2026-02-23T17:01:06.580Z",
"category": "string",
"merchantName": "string"
}
}By following these steps, you can securely and efficiently top-up your card using cryptocurrency. Always verify the details and double-check balances to avoid any discrepancies.
Updated 1 day ago
