# Settlement and payouts

Every payment passes through VeliraPay on its way to you. This page says exactly what happens to it, and what is recorded at each step.

1. The charge gets an address of its own — Made for that one charge and never used again, which is how two customers paying you at the same moment are told apart without nudging the amounts.
2. The customer pays it — The payment is watched for on the chain and counted once it has the confirmations that coin needs.
3. The books are written — One settlement records what arrived, the fee, what you are owed and the address it is going to, as you had it configured at that moment.
4. The payout goes out — Usually within a minute, unless it is held (see below). What it cost and what landed are written back against the same settlement.

Read them with GET /v1/payouts, in the dashboard, or in its CSV export, described below. No charge field carries them, and the payout.sent and payout.confirmed webhooks bring them to you as a payout goes out and lands. [See the payouts endpoints](https://velirapay.com/docs/payouts)

## Where your money goes

You give one payout address per network under Payment settings, and every coin on that network is paid to it. Ethereum and BNB Chain addresses look alike but are saved apart, so nobody is paid on a chain they did not choose. A network you have given no address for is not offered at checkout at all, because there would be nowhere to send the money.

Changing an address only affects payments made after the change: a payout already on its way keeps the address it was raised with, which is recorded on the settlement.

If you remove an address while a charge for that coin is still unpaid, and the customer then pays it, the money is still yours and is still recorded as owed to you. The settlement is written with no address and waits; the moment you give an address for that coin again, it is paid out on the next run. Nothing has to be claimed and nothing expires.

## The fee

The free plan keeps 3% of each payment, taken out before the rest is forwarded. Pro keeps nothing. Whatever is taken is recorded against the charge in the coin it was paid in, and in your currency at the rate the charge was locked at.

## What the network charges

Forwarding a payment costs a transaction fee on the chain itself. When a platform fee is being kept, that network fee comes out of it, so you receive exactly what you are owed. When no platform fee is being kept, there is nothing to take it from, so it comes out of the payment and you receive slightly less than the full amount. On a small Bitcoin-style payment the network fee can use up the whole platform fee; the payment is then recorded with no platform fee kept, and the network fee comes out of it as above. Either way, the exact figure is recorded.

USDT and USDC work differently, on Ethereum and on BNB Chain alike. Moving a token needs the chain's own coin for gas, so the platform pays the gas and the payout repays it in the token, out of your share, at the network's price when the payout goes out. You therefore receive what you are owed less that network fee, and it shows as network_fee in the token.

TRX usually costs nothing to forward, because the network gives every address enough free bandwidth for a payout and the sweep of the platform's fee. A payout address that has never been used has to be activated, which costs about 1.1 TRX once and comes out as above. Only an ordinary transfer is seen: TRX sent by a smart contract is not detected.

On Ethereum and BNB Chain, a payout in the chain's own coin first records the network fee at the most it could cost, and replaces it with what the chain actually took once the payout confirms.

## Timing

Payouts are attempted every minute, so a confirmed payment normally reaches you within a minute or two. A chain that is busy or unreachable is retried after 1, 5, 15, 60 and 180 minutes; after that the payout is marked failed, the operators are alerted, and it goes back in the queue every day at 05:00 UTC with the retries started afresh. Your money is not lost while that happens, it is still held and still owed, and the reason for each failure is recorded.

## Payouts that wait

A live payout worth more than 2,000 USD, or one that would take what the account was paid out in the last 24 hours past 5,000 USD, is held for review. A live payout is also held for review when it cannot be valued in USD at that moment. A held payout shows as manual with the reason, and goes out on the next run once an operator releases it. Test-mode payouts are never held for review.

Once you have been paid out, payouts to a new address begin 48 hours after it is saved. Until then a live payout to it waits as pending, so a change you did not make can still be undone. Test-mode payouts never wait.

A payout too small to send at the chain's current fee, as a very small Bitcoin payment can be on a busy day, is not a failure. It stays pending and is tried again every 2 hours, without using up an attempt, until the fee comes down far enough.

Operators can also hold a single payout, which then shows as manual, or pause every payout during an incident. Payments are still taken while payouts are paused, and what is owed goes out once they resume.

A payout the chain takes in but refuses to carry out, such as one to a contract address that rejects the coin, moves nothing. The settlement is held as manual with its address cleared, and the owners and admins of the account are emailed; giving an address that accepts the coin sends it again.

## What is recorded

Each payment has one settlement, and every charge in the dashboard shows it. Nothing is ever deleted. A simulated test payment has none, because no coins moved. If more money reaches a paid charge before its payout goes out, the settlement is restated for the larger amount.

| Field | Type | Description |
| --- | --- | --- |
| `gross_amount` | string | What the customer actually paid, in the coin. |
| `fee_amount, fee_percent` | string | What was kept, and the rate it was worked out at. Always adds up to the gross with the net. |
| `net_amount` | string | What you are owed, before the chain's own fee. |
| `payout_address` | string\|null | Where it was sent, as you had it configured when the charge was paid. Null when you had no address for the coin at that moment, in which case it waits for one. |
| `payout_txid` | string\|null | The transaction that carried it, which you can follow on any block explorer. |
| `network_fee, sent_amount` | string\|null | What the chain charged, and what therefore reached your address. |
| `status` | "pending" \| "sending" \| "sent" \| "failed" \| "manual" | Where the payout has got to; see the statuses below. |

| Status | Meaning |
| --- | --- |
| `pending` | Waiting for the next payout run, or for its next attempt after a failure. |
| `sending` | Broadcast, and waiting for the chain to confirm it. |
| `sent` | Confirmed: the money is in your wallet. |
| `failed` | Every attempt failed. The operators are alerted, and it is put back in the queue every day at 05:00 UTC. |
| `manual` | Held: you had no payout address for the coin, it is held for review or by an operator, or the chain refused it. See Payouts that wait. |

## Seeing your payouts

The Payouts page in your dashboard lists one row per paid charge, for the mode you are working in: what came in, the fee, what you are owed, what actually landed after the chain took its cut, where the payout has got to, and the transaction that carried it, linked to a block explorer. Each row opens the charge it came from.

You can narrow the list by status or by coin, and search it by charge code or payout hash. Above it, per coin, are the three figures that matter: what has been paid out to you, what is still owed, and what has been taken in fees.

A payment being held for want of an address is called out there in its own right rather than shown as merely waiting, with a link to Payment settings, because giving an address is what releases it.

Export CSV downloads the rows you are looking at, filters and all, with one line per settlement:

| Field | Type | Description |
| --- | --- | --- |
| `charge, status, asset` | string | The charge the payment was taken for, where its payout has got to, and the coin. |
| `created_at, sent_at, confirmed_at` | string\|null | When the books were written, when the payout was broadcast, and when it confirmed. |
| `gross_amount, fee_percent, fee_amount, net_amount` | string | What came in, the rate the fee was worked out at, what was kept, and what you are owed. |
| `network_fee, sent_amount` | string\|null | What the chain charged to forward it, and what therefore reached you. |
| `fee_fiat_amount, fiat_currency, exchange_rate` | string\|null | What the fee was worth in your currency, at the rate the charge was locked at. |
| `payout_address, payout_txid` | string\|null | Where it was sent and the transaction that carried it. Both empty while it waits for an address. |
| `fee_address, fee_txid, fee_settled_at` | string\|null | Where our own share went once it was moved out of the hot wallet. |
| `attempts, last_error` | int, string\|null | How many times forwarding has been tried, and why the last try did not work. |

## Who holds the money

VeliraPay holds the payment between the moment it confirms and the moment the payout is sent, which is normally a minute or two. It is not an account you keep a balance in: there is no balance to withdraw, because every payment is forwarded as it arrives. The exceptions are a coin you have given no address for, and a payout that is held as described above; both are shown on your payouts page and sent once released.

Because a payment passes through us, a payout cannot be reversed once it is sent, and a refund is still something you send yourself from your own wallet and then record against the charge.
