Enter at least two characters to search. Searching documentation… No matching sections. Try an endpoint, field or event name.

Payout addresses

View as Markdown

Where your share of each payment is sent: one plain address per network, kept apart for live and test mode. Every network with coins on offer is listed, with no address where you have not given one yet. They are changed under Payment settings in the dashboard, and through the API only once an owner allows it.

On this page

The payout address object

Field Description
object "payout_address" The kind of object.
network string The network the address is on, one of bitcoin, litecoin, dogecoin, bitcoincash, evm, bsc, tron, monero, solana. One address takes every coin of its network.
name string The network's name, as the dashboard shows it.
address string|null Where payouts on this network go. Null while the account has none: a paid charge in one of its coins then waits for one before it is paid out.
assets array The coins on offer on this network, such as ETH, USDT and USDC on evm.
payouts_held_until string|null After an address is changed on an account that has been paid out before, payouts to it wait 48 hours; this is when they resume.
updated_at string|null When the address was last saved, as an ISO 8601 timestamp in UTC.

Endpoints

  • GET /v1/payout-addresses One entry per network with coins on offer in the mode of the key, with meta.mode and meta.api_payout_address_changes. Needs payout_addresses:read.
  • PUT /v1/payout-addresses/{id} Set the address of one network, whose name is the id, such as bitcoin, from {"address": "…"}. Needs payout_addresses:write and the owner's switch.
  • DELETE /v1/payout-addresses/{id} Remove the address of one network. Needs payout_addresses:write and the owner's switch.

Example: read the payout addresses

GET /v1/payout-addresses

Copy failed. Select the code and copy it manually.

curl 'https://api.velirapay.com/v1/payout-addresses' \
  --fail-with-body --silent --show-error --max-time 30 \
  -H "Authorization: Bearer ${VELIRAPAY_API_KEY:?Set VELIRAPAY_API_KEY}" \
  -H 'Accept: application/json'
Response

Copy failed. Select the code and copy it manually.

{
  "data": [
    {
      "object": "payout_address",
      "network": "bitcoin",
      "name": "Bitcoin",
      "address": "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4",
      "assets": ["BTC"],
      "payouts_held_until": null,
      "updated_at": "2026-10-02T08:14:51.000000Z"
    },
    {
      "object": "payout_address",
      "network": "evm",
      "name": "Ethereum",
      "address": null,
      "assets": ["ETH", "USDT", "USDC"],
      "payouts_held_until": null,
      "updated_at": null
    }
  ],
  "meta": { "mode": "live" }
}

Changing an address

Where the money goes is the one setting a mistake cannot undo, so changing it through the API takes three things: a restricted key with payout_addresses:write ticked, made by someone who is still an owner or admin; an owner having switched on Let API keys and AI apps change payout addresses under Payment settings in the dashboard; and an address of the network named in the path, of the key's mode. Until the switch is on, both endpoints answer 403 saying so, whatever they are sent.

Only the network named changes. Every owner and admin of the account is emailed about it, naming the key, as for a change in the dashboard; once the account has been paid out, payouts to a new address wait 48 hours; and payouts that were waiting for an address on that network go to the new one. Both answer with the payout address as it now stands.

PUT /v1/payout-addresses/bitcoin

Copy failed. Select the code and copy it manually.

curl -X PUT 'https://api.velirapay.com/v1/payout-addresses/bitcoin' \
  --fail-with-body --silent --show-error --max-time 30 \
  -H "Authorization: Bearer ${VELIRAPAY_API_KEY:?Set VELIRAPAY_API_KEY}" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"address": "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"}'

Read how a payment becomes a payout, and which payouts wait