Skip to main content
A payee address is the bank account a payee is paid into. Submitting it through the API makes the payee active immediately, so onboarding happens entirely inside your product and the payee never sees an Infinity page.

How it works

When you add an address, Infinity validates every field against the rules for its currency and rail, then registers the account with the payout network. If both steps succeed, the address is stored with status: active and the payee becomes active. If the network rejects the account, nothing is stored, the payee is unchanged, and the request fails with 400 bank_details_invalid.
  • Addresses are available to accounts paying in USD, EUR and GBP. INR payees add their bank details through hosted onboarding.
  • A payee has one address in v1.
  • The address’s currency sets the payee’s currency if it wasn’t set already; if it was, the two must match.

Rails and required fields

For USD, the rail is your choice and applies to every payout to that address. ACH is the lower-cost rail; wire settles faster.

Bank requirements

GET /bank-requirements returns the same rules the validator applies, field by field, so a form built from it never drifts from the API:
Response (abridged)
Omit currency to get every rail. Nested fields use dotted names (beneficiary_address.state). usd returns two entries, one for ach and one for wire, with identical fields.

Add an address

Response
The full account number is never returned after creation; reads expose account_number_last4 only.

Field reference

Changing a payee’s bank account

A second address for the same payee fails with 409 address_exists, and addresses can’t be updated or replaced through the API in v1. If a payee changes bank, or their bank rejects a payout to the stored account, contact your Infinity team with the payee’s ID.

Liability for bank details

You’re responsible for the accuracy of the bank details you submit. Infinity validates the format and the payout network checks the account when it’s registered, but some errors can’t be detected before funds move: a valid account that belongs to someone else, for example, or a name that doesn’t match the account. Payouts to such accounts end as failed or returned with failure_code: returned_by_bank, and a payout credited to a valid account belonging to the wrong person can’t be recalled.

Errors

In the sandbox

An account number ending in 0000 passes format validation and is then rejected as if by the bank. See Sandbox.