Supported coins
The coins that can be paid right now, the network each is sent on, and the lowest price a charge in each can have. Read it from the API rather than hard-coding it: coins are added, and a minimum moves with the market.
The coins on offer
In live mode, with prices in USD at the moment this page was loaded.
| Asset | Coin | Network | Confirmations | Lowest price |
|---|---|---|---|---|
BTC
|
Bitcoin | Bitcoin | 2, about 20 minutes | $0.01 |
LTC
|
Litecoin | Litecoin | 3, about 8 minutes | $0.01 |
DOGE
|
Dogecoin | Dogecoin | 10, about 10 minutes | $0.01 |
BCH
|
Bitcoin Cash | Bitcoin Cash | 2, about 20 minutes | $0.01 |
ETH
|
Ether | Ethereum | 6, about a minute | $0.01 |
SOL
|
Solana | Solana | 32, under a minute | $0.01 |
BNB
|
BNB | BNB Chain | 15, under a minute | $0.01 |
USDT
|
Tether USD | Ethereum (ERC-20) | 6, about a minute | $10.00 |
USDC
|
USD Coin | Ethereum (ERC-20) | 6, about a minute | $10.02 |
USDT_BSC
|
Tether USD | BNB Chain (BEP-20) | 15, under a minute | $0.01 |
USDC_BSC
|
USD Coin | BNB Chain (BEP-20) | 15, under a minute | $0.01 |
The asset object
| Field | Type | Description |
|---|---|---|
id
string
|
string | What the API calls the coin: pass it as asset when you create a charge. The same coin on another network is another asset, so USDT is Tether on Ethereum and USDT_BSC is Tether on BNB Chain. |
object
"asset"
|
"asset" | The kind of object. |
name, ticker
string
|
string | The coin's name and symbol. Assets of the same coin share them, and a price. |
network
string
|
string | The network the customer has to send it on. In test mode, the test network. |
contract_address
string|null
|
string|null | The token's contract on that network, or null for a network's own coin. |
decimals
integer
|
integer | The decimal places the coin has on its network. |
required_confirmations, confirmation_wait
integer, string
|
integer, string | How many confirmations a payment needs before it counts, and about how long that takes, in words. |
accepted
boolean
|
boolean | Whether your account takes it right now, which needs a payout address for that network. These are the coins listed under meta.accepted_assets on GET /v1/account. |
currency
string
|
string | The currency exchange_rate and minimum_price are in: ?currency= when you pass it, otherwise your account's default. |
exchange_rate
string|null
|
string|null | What one unit of the coin is worth in that currency right now, or null while no rate is available. A charge locks the rate when it is created. |
minimum_amount
string|null
|
string|null | The least a charge in it can come to, in the coin itself, or null when the coin has no minimum of its own. |
minimum_price
string|null
|
string|null | The lowest price a charge in it can have right now, in that currency: 0.01 for a coin with no minimum of its own, or null while a coin with one has no rate. |
Endpoints
-
GET
/v1/assetsList every coin that can be paid in the key's mode. Pass ?currency= to choose the currency of the prices; an unknown one answers 422. The list is not paged.
curl "https://api.velirapay.com/v1/assets?currency=EUR" \
-H "Authorization: Bearer vp_live_…"
{
"data": [
{
"id": "BTC", "object": "asset", "name": "Bitcoin", "ticker": "BTC", "network": "Bitcoin",
"contract_address": null, "decimals": 8,
"required_confirmations": 2, "confirmation_wait": "about 20 minutes",
"accepted": true, "currency": "EUR", "exchange_rate": "68527.48",
"minimum_amount": null, "minimum_price": "0.01"
},
{
"id": "USDT", "object": "asset", "name": "Tether USD", "ticker": "USDT", "network": "Ethereum (ERC-20)",
"contract_address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "decimals": 6,
"required_confirmations": 6, "confirmation_wait": "about a minute",
"accepted": false, "currency": "EUR", "exchange_rate": "0.8709",
"minimum_amount": "10", "minimum_price": "8.71"
}
],
"meta": { "mode": "live", "currencies": ["USD", "EUR", "GBP", "CAD", "AUD", "CHF", "TRY"] }
}
Minimums
USDT and USDC on Ethereum start at 10 of the token, because paying one out costs enough in gas that a smaller payment would leave you with little. Any other coin can be charged from 0.01 of your currency.
A minimum is in the coin, so minimum_price moves a little with the market: leave some room rather than pricing right on it. It applies to what the customer pays, after any coupon.
POST /v1/charges below a coin's minimum answers 422 under errors.asset. A payment link or an invoice whose price cannot reach it simply does not offer that coin at checkout.
Test mode
With a vp_test_ key, the list holds the coins that can be paid on the test networks, and network names the test network. BNB Chain has no test mode, so its coins are only listed in live mode.