Countries & Routes

How to read coverage via the API

GET /v1/countries lists every country a customer can be onboarded in. GET /v1/countries/{country} returns one country in full. That response carries everything you need to move money in or out of it.

There are no query parameters, because the country is the resource.

What a route is

country + currency + destinationType + rail

Each entry in routes[] carries:

FieldWhat it tells you
operationsPAYOUT, COLLECTION, or both
identifierTypesWhich identifier kinds register as this destination type here
fieldsExactly what to collect when registering a destination on this route
quoteWhether a payout on it needs a quote, broken down by pair shape
statusLIVE, SANDBOX or TARGET
limitsPer-transaction and daily caps, where they apply

fields saves you the most work. It is the requirement set for registering a destination, carried by the route itself. You can build your form from the API instead of from a document that goes stale.

What a status promises

StatusMeans
LIVETested end to end and enabled in production
SANDBOXAvailable and tested on the sandbox host only
TARGETPlanned. It is not callable anywhere yet

Only LIVE routes accept production traffic. Anything else is refused with route_unsupported. The refusal happens before anything is locked, at registration, at quote and at payout.

That timing is deliberate. You learn that a corridor isn't open at the point you ask for it instead of three days later when a payment fails.

Which routes read LIVE changes as corridors open. Read the registry instead of caching a list from this page.

Rails are scheme families

ACH · WIRE · SPEI · PIX · COELSA · FPS · CHATS · WALLET

A rail never names a country, a provider or an account type.

  • ACH covers any domestic batch bank transfer. That includes US ACH and the local clearing houses in Colombia, Chile, Peru, Bolivia, Paraguay, the Dominican Republic and China.
  • In Colombia, ACH also covers BreB, for collections and payouts. Alfred decides which of the two delivers a payment. You register the account number and don't choose.
  • WIRE covers RTGS, SWIFT and Fedwire.
  • SPEI, PIX, COELSA, FPS and CHATS are named instant schemes with their own behavior. COELSA is deliberately not folded into ACH.
  • WALLET is a stablecoin destination.

Because the rail doesn't carry the country, (rail, currency) is what names a priced route. (ACH, BOB) and (ACH, CLP) price separately. (CHATS, USD) means US dollars delivered in Hong Kong, which is a different route from US dollars delivered in the US.

Wallets are not in the country registry

Stablecoin wallets have no country, so they don't appear in the country registry. A wallet is registered with a chain and an address, and it's reachable on the WALLET rail for every chain in the Chain enum.

When to read it

Read the registry twice. The first time is when you integrate, to build your forms and your validation. Read it again whenever country.route.updated fires, which is how you learn that a corridor opened or a status moved.

Caching the registry is fine as long as you let that event invalidate your cache.


Did this page help you?