curl --request GET \
--url https://examples.staging.rampapay.com/v1/accounts \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://examples.staging.rampapay.com/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://examples.staging.rampapay.com/v1/accounts"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "acc_7Hq2Lx9TbR4mW1cZ8kP3sN6v",
"type": "crypto",
"balances": [
{
"currency": "USDT",
"available": "897.960000",
"reserved": "0.000000"
}
],
"funding_instructions": [
{
"network": "tron:0x2b6653dc",
"address": "TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb",
"supported_assets": [
{
"currency": "USDT",
"decimals": 6,
"caip19": "tron:0x2b6653dc/trc20:TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}
]
}
],
"as_of": "2026-09-27T14:06:40.000Z"
},
{
"id": "acc_Qm4Vb8Xc2Nz6Lk1Jh5Gf9Ds3",
"type": "fiat",
"balances": [
{
"currency": "BOB",
"available": "12500.00",
"reserved": null
}
],
"funding_instructions": [],
"as_of": "2026-09-27T14:06:40.000Z"
}
]
}{
"error": {
"code": "AUTHENTICATION_FAILED",
"message": "AUTHENTICATION_FAILED",
"request_id": "req_7KxQ2mVb9TfL4wHs8nRe3jDa"
}
}{
"error": {
"code": "SCOPE_REQUIRED",
"message": "SCOPE_REQUIRED",
"request_id": "req_7KxQ2mVb9TfL4wHs8nRe3jDa"
}
}Your accounts
Each account you hold with Rampa, with its balances (one per currency it holds; one today) as of as_of: your USDT wallet (crypto) and your BOB payout capacity (fiat), what you can pay out right now, net of payments in flight. The BOB account appears once a payout balance is set up for you. available is what you can spend; reserved is held by payments that have not finished (null where not tracked). Check it before quoting a large payment to avoid INSUFFICIENT_FUNDS.
funding_instructions says how to top an account up. A crypto account has one per wallet, and each wallet is on one network, named as a CAIP-2 id (tron:0x2b6653dc is Tron mainnet). Send only a token listed in its supported_assets, on that network, to its address: each asset’s caip19 names the network and the token contract (…/trc20:<contract>), and decimals its precision. Each transfer is credited automatically once it confirms and shows up in the account’s transactions. The address is created on your first read; if funding_instructions is empty, read again a moment later. A fiat account’s is always empty: Rampa funds it.
curl --request GET \
--url https://examples.staging.rampapay.com/v1/accounts \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://examples.staging.rampapay.com/v1/accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://examples.staging.rampapay.com/v1/accounts"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "acc_7Hq2Lx9TbR4mW1cZ8kP3sN6v",
"type": "crypto",
"balances": [
{
"currency": "USDT",
"available": "897.960000",
"reserved": "0.000000"
}
],
"funding_instructions": [
{
"network": "tron:0x2b6653dc",
"address": "TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb",
"supported_assets": [
{
"currency": "USDT",
"decimals": 6,
"caip19": "tron:0x2b6653dc/trc20:TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}
]
}
],
"as_of": "2026-09-27T14:06:40.000Z"
},
{
"id": "acc_Qm4Vb8Xc2Nz6Lk1Jh5Gf9Ds3",
"type": "fiat",
"balances": [
{
"currency": "BOB",
"available": "12500.00",
"reserved": null
}
],
"funding_instructions": [],
"as_of": "2026-09-27T14:06:40.000Z"
}
]
}{
"error": {
"code": "AUTHENTICATION_FAILED",
"message": "AUTHENTICATION_FAILED",
"request_id": "req_7KxQ2mVb9TfL4wHs8nRe3jDa"
}
}{
"error": {
"code": "SCOPE_REQUIRED",
"message": "SCOPE_REQUIRED",
"request_id": "req_7KxQ2mVb9TfL4wHs8nRe3jDa"
}
}rpk_mock_, e.g. rpk_mock_yourname. It answers from the example server with sample data — nothing real moves. Never enter your real key.Errors
Only the ones any endpoint can answer:401 AUTHENTICATION_FAILED, 403 SCOPE_REQUIRED and the 503s in Errors.