Avvio Payouts API reference llms.txt

Going live

The sandbox proves the flow. This page is what changes when the money is real, and what to have working before it is.

Swap the credential, not the code#

A live key addresses the same organization id and the same endpoints. Only the prefix changes: ak_test_…ak_live_…. If anything else in your integration has to change, that is a bug on our side — tell us.

export AVVIO_API_KEY=ak_live_…

Keys are bearer credentials for your money. Server-side only; our CORS policy does not allow the header, so a browser cannot send one even by accident.

What genuinely differs in production#

Sandbox Live
Settlement Seconds Hours to days, per corridor
Rates Fixed Real, and they move between quoting and sending
Balance sandbox/fund Funded by wire — see payin-accounts
Failure triggers Account-number suffix Whatever actually happens
Corridors A handful What your routing supports — read the corridors call

The last row is the one that surprises people. The corridor list and the field *names* within it depend on how your organization is routed, and we may re-route you. A form built against hardcoded field names breaks on a routing change; a form built from GET /recipients/{orgId}/corridors does not.

The checklist#

Before your first live payout

Operationally

Rate limits#

Per credential, plus a per-source ceiling. The response carries x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset — read them rather than guessing, and back off on 429 (which is retryable).

If your volume needs a higher ceiling, tell us before you go live rather than discovering it in a payroll run.

Tell us before you scale#

We would rather hear "we are about to send 5,000 payouts on Friday" than find out from a graph. Corridor limits, balance headroom and rate ceilings are all things we can raise, and none of them can be raised retroactively.