Skip to main content
An account is a balance. It belongs either to your business or to one of your customers, holds exactly one asset, and is the only place money lives — customers, recipients, and transfers all resolve to accounts in the end. An account is not reachable from the outside world when it is first opened. Money arrives through an account detail: a bank account number, a mobile-money handle, or an on-chain address, issued by a payment provider on request. An account with no detail can still hold and move value inside Sakawave; it just has no address anyone can pay into.

The object

Four gates, not one

Whether an account can move money is the conjunction of four separate things. Reading only status will mislead you. transferReady is the one that surprises people. A freshly opened account is active, canDebit, canCredit — and still cannot reach the outside world.

Types

operational and savings are the only types you can open, and they behave identically: transactable, no interest, no lock. savings is a bucket you choose, not a different backend treatment. The other types — settlement, collection, fee, revenue, suspense — describe the platform’s own structure. You may see them on accounts Sakawave opened, so read type defensively, but you cannot ask for one.

Lifecycle

There is no close endpoint on the Business API. Closing an account is a dashboard action. Plan for it: any offboarding flow you build with this API stops one step short and has to be finished by a person.
A frozen account cannot be closed at all, even from the dashboard. The hold was put there by compliance or a provider, and lifting it comes first.

Account details

A detail is how the outside world reaches the account. Every block is always present. A block the destination does not offer is null, and so is a field inside a block that the corridor does not use. A GBP detail has a sortCode and a null routingNumber. You cannot name your own account number. A destination is allocated by the provider — a business that could assert its own number could publish one it does not own and have its customers pay a stranger. Issuance can complete asynchronously: 201 means issued, 202 means the provider is still working and you should poll.

Events

account.updated is the intended way to learn that transferReady flipped. Subscribe rather than poll.

Next

Introduction

Your money versus your customers’ money.

Get started

Open an account and give it a payable destination.

Setup and configuration

What is checked on opening and issuing details, rate limits, and webhooks.

Currencies and funding rails

What you may hold, and how each kind is funded.