The onboarding API takes a merchant from an email address to an active Flint account and makes the first sandbox API key available after email verification, without sending the developer through the Flint dashboard. It is a state machine: start with an email, verify it to receive an onboarding_session_token, then read GET /v1/onboarding/state. Submit machine-completable work to advance. When next_step.launch requires a human browser, mint credentials separately with POST /v1/merchant-account-sessions, render the returned embedded components, then poll state.
Before key issuance, onboarding routes authenticate with the onboarding_session_token. Afterward, the same flow accepts a normal API key for later compliance work. The initial key is sandbox-bound and can be issued while provider verification is still outstanding. Payment and payout operations stay gated by their requested capabilities. Browser exit is never completion. State and readiness are backend-observed, pending_verification means wait, and merchant-account-session refresh uses POST /v1/merchant-account-sessions/refresh with the latest signed launch_token.
The API and agent onboarding guide walks through the full state machine, including document handling and first-key issuance.
