Skip to main content
This page onboards an individual: a natural person who opens an account in their own name. It goes from requirements discovery to a completed payout. The business path is the Sandbox quickstart. For what an individual owes, see Onboarding an Individual.

Prerequisites

Step 1 - Discover what the person owes

Send subjectType=individual. For an individual, country is the person’s country of residence.
The response (abbreviated: each allowedValues list and most fields are cut):
Top-level fields[] are the account holder’s activity, politically-exposed-person and consent answers. The one ACCOUNT_HOLDER row carries the person’s own fields and documents. A field with conditions is required only while its conditions hold: here the tax ID follows the person’s nationality.

Step 2 - Upload the identity verification report

You verify the person with your own identity-verification provider. Upload the provider’s report with purpose=kyc. See Person-level evidence for what it must contain.
201 Created returns { "id": "doc_...", "purpose": "kyc", "classificationStatus": "pending", ... }.

Step 3 - Submit the application

One person, the account holder, with the report id in their documentIds[]. No business envelope.
202 Accepted returns the application in processing. The phone above is in national format, which the API accepts because the person’s address.country completes it (phone numbers). A second submission for the same tax ID is refused with 409, also when it differs only in dashes or spaces: see Submit an individual application.

Step 4 - Approve and read the customer

Drive the decision with the sandbox decision lever, then wait for the customerId:
Branch on type: "individual". Countries read back as ISO 3166-1 alpha-2, except activity.countriesOfActivity, which keeps the alpha-3 codes you sent. The response does not carry the tax ID number.

Step 5 - Open a USD account

Feature discovery works as for a business. Its country is the person’s country of residence:
The feature application returns 202 with status: "approved". Within a few seconds the account is active:
Its deposit instructions name the person as beneficiary, at their home address:

Step 6 - Fund the account

202 Accepted returns { "externalReference": "sandbox_..." }. The deposit is credited within seconds, though the first one after a quiet period can take up to a minute. The account’s available balance then reads 1000.00. Wait for it before you pay out. Failure paths are in Deposits.

Step 7 - Pay out

Upload a supporting document, send the payout, then approve the document review. On a US rail the recipient’s bankAddress is optional: Conduit derives it from routingNumber.
The document review opens a few seconds after the payout is created, and the transaction.under_review webhook tells you it is open. A review approval sent before that returns 404 PAYOUT_NOT_FOUND, so the loop above sends it again. Sending it again is safe. After a 200 the payout resumes, and the last loop waits for its terminal status. A completed GET /v2/payouts/${TXN_ID} reads status: "completed", with source.assetAmount 25.25, destination.assetAmount 25.00 and a 0.25 fixed fee in fees[]. The account’s available balance reads 974.75. Fee rules and the rest of the payout lifecycle are in Send a payout.

See also