This is the build order for a self-serve user signing up in your app. Phases 1–3 are strictly sequential: you can’t open an account before onboarding finishes, and you can’t pay from an account that doesn’t exist yet. Cards and beneficiaries are independent of each other: build either, both, or neither, in any order. Payments need a saved beneficiary.
1

Authentication

Sign up, confirm the code, then complete security setup (passkey or 2FA). Every self-serve user does this to get authentication tokens. See Authentication overview for how challenges and tokens work. Send the resulting access_token as Authorization: Bearer <access_token> on everything below.
2

Onboarding

Create an application, then poll GET /v2/applications and render the screen for each currentStep: KYC/KYB, risk, legal agreements. See Onboarding overview for the full state machine. This ends when currentStep is COMPLETED: the applicant is approved, becomes a customer, and gets a primary account created for them automatically.
3

Accounts

Approval creates the customer’s primary account automatically. You don’t call anything to create it. List accounts to read the accountId that the cards, payments, and beneficiaries endpoints need. See Accounts overview.
4

Cards

Optional. If program capabilities say cards are on, order a card against the account. This doesn’t depend on beneficiaries, so do it in either order. Card spend shows up under transactions, not payments. See Cards overview.
5

Beneficiaries

Needed before payments. Every payment targets a saved beneficiary, so save the payee first, with an optional Verification of Payee check. See Beneficiaries overview.
6

Payments

Move money: domestic, international, scheduled, or batch. See Payments overview.
7

Transactions & statements

Show history and generate statements once there’s money moving. See Transactions overview.