Skip to main content
Nothing in this service moves money or stores anything of yours. It answers four questions that everything else depends on: Reading these first turns a class of runtime errors into decisions you make before sending a request.

Currency

A currency is a code, its display data, and six independent switches.
A currency is not simply on or off. Each switch gates a different operation, and one transfer can read four of them. See capabilities and corridors for which check fires where. minorUnits is the one field that changes your arithmetic: 2 for most currencies, 0 for UGX, 8 for every crypto asset.

Route

A route is a way to deliver money to a destination currency — a scheme, a payment method, and the exact fields a payout needs. The important field is id. That is the routeId you send when creating a payment detail or an external destination; the rest of the object tells you what to collect first.
A route is scoped to one country, or serves many through its scheme — sepa and cemac each cover a set of countries rather than one.

Corridor

A corridor is the same route, presented differently: the currency resolved to its display data, the countries it serves listed out, and the field descriptors alongside. It is the shape to build a UI from. The two views exist because they answer different questions. Corridors are provider-neutral and complete; the routes endpoint returns the row as stored, including internal routing detail you should not depend on.
Use corridors to drive a form. Use routes when you already know the currency and just need routeId values.

Country

The country list is every jurisdiction Sakawave will onboard — alphabetical, with dial codes and flags, ready to render into a picker. Twenty jurisdictions are deliberately absent, under sanctions or with no financial system to route to. A country missing from this list is a position, not an oversight: sending its code as a jurisdiction will be refused. This endpoint is public and unversioned. It takes no Authorization header and does not live under /v1, because the picker it feeds is drawn before anyone has an account.

How they compose

What this service does not do

  • It does not tell you what you may do. A currency with accountIssuanceEnabled: true opens for any business, but issuing its details and moving money through it depend on your verification, international access, and tier. Capability is platform-wide; those checks are yours.
  • It emits no events. Reference data changes on a deploy, not through a webhook. Cache it and refresh on a schedule.
  • It holds nothing of yours. Every response here is identical for every business.