---
updatedAt: 2026-09-30T15:54:20.000Z
---

Fetch the complete documentation index at: https://docs.avvio.xyz/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Payout links

Pay someone without ever handling their bank details.

Your server creates a single-use link and sends the URL to the recipient by
SMS, email or your app. They enter their own bank details on a page Avvio
hosts, and the payout is sent from your balance.

![Hosted payout link flow: your server creates the link, the recipient enters their bank details on the hosted page, the payout is sent](/partner-assets/diagrams/hosted-payout-link.svg)

## How it works

1. **Create** the link from your backend with the amount, the destination
   currency and your end user. The response carries a `url` and an
   `expiresAt` (60 minutes by default, up to 7 days).
2. **Send** the URL to the recipient.
3. **Collect.** The hosted page shows your organization's display name, the
   amount, a rate preview and the fields the corridor needs, plus any accounts
   the end user saved before.
4. **Pay.** On submit the page registers the bank details, prices the payout
   and sends it from your balance.
5. **Track** it like any other payout, through webhooks and the event feed.

## Coverage

A payout link can pay the currencies your organization can pay out to. For a
USD link the hosted form asks for your USD corridor's fields, which depend on
your routing: a domestic US account or an international bank's SWIFT details.
See
[Countries and currencies](/coverage/countries/) and read
`GET /recipients/{orgId}/corridors` for your routing.

## Key features

### Bank details stay off your systems

Account and routing numbers never touch your servers, so they stay outside your
compliance and security surface. The recipient's browser holds a single-use
signed token, never your API key.

### A form that follows the corridor

When a corridor changes its required fields, the hosted form changes with it.
Your code does not.

### One payout per link

Your `Idempotency-Key` is stored on the link, and a second submit returns the
original payout with `status: "already_submitted"`. Creating the link twice,
or a double tap on a flaky mobile connection, cannot produce two payouts.

### A regulatory receipt on every payout

A hosted link payout is a remittance transfer under Regulation E (12 CFR 1005
subpart B). On submit, the sender is emailed a receipt with the transfer amount,
fees, total, exchange rate, what the recipient receives, the transaction id and
time, the provider's contact details, and how to dispute an error. The submit
response returns the same figures as `disclosure` for the page to show.
Delivery (address, time, message id) is recorded on the link as evidence.

The receipt states no cancellation right. A link payout is debited from your
balance when it is accepted (the fee on top of the link's amount), and the
sender cannot recall it. On a routing where you fund each payout yourself,
nothing moves until you fund it.

## Integration guides

- [Send a payout link](/payout-links/): create the link and handle the hosted flow.
- [Track status & failures](/status/): what happens after the payout is sent.
- The in-app flow for React Native is `@avvio/payouts-react-native`.
