Developer Setup

Use the onboarding surface when you do not have a Flint API key yet.

Most developers should not start here. If you can use the dashboard, create a test API key there and go to Accept Your First Payment.

The flow is a state machine under /v1/onboarding/...:

  1. POST /v1/onboarding/start
  2. POST /v1/onboarding/verify-email
  3. GET /v1/onboarding/state
  4. POST /v1/onboarding/advance as needed
  5. POST /v1/onboarding/api-key
  6. Switch to the normal /v1/... API with that API key

For full request and response shapes, see the Onboarding API reference. For a step-by-step walkthrough, see API & Agent Onboarding.

How It Works#

POST /v1/onboarding/start requires no auth. It emails a verification code and returns a temporary verification_token.

POST /v1/onboarding/verify-email exchanges the emailed code plus verification_token for an onboarding_session_token, provisioning the Flint user, merchant, and a default private sandbox if needed.

From there, read GET /v1/onboarding/state and follow next_step through POST /v1/onboarding/advance calls until status is ready_for_api_key, then create the first external key with POST /v1/onboarding/api-key. The response includes the one-time data.secret_key.

Verification is email-gated. Agents need either a human-in-the-loop or mailbox access to read the emailed code. verification_token currently expires after 15 minutes, and onboarding_session_token is currently minted for 24 hours.

Auth Model#

onboarding_session_token is a short-lived onboarding token. It works on /v1/onboarding/... routes and does not authenticate normal resource requests like /v1/orders. Send it as:

HTTP
Authorization: Bearer <onboarding_session_token>

You can also send:

HTTP
X-Onboarding-Session-Token: <onboarding_session_token>

Authorization: Bearer ... is the recommended default.

After the first key exists, GET /v1/onboarding/state and POST /v1/onboarding/advance also accept a normal external API key for later compliance remediation.

Sandbox-management routes under /v1/developer/sandboxes/... accept the same onboarding_session_token during setup or a normal external API key afterward. See Sandboxes.

Rate Limits#

The onboarding surface has stricter anti-abuse rate limits than the normal /v1 resource API. POST /v1/onboarding/start, POST /v1/onboarding/verify-email, and POST /v1/onboarding/api-key are tightly limited per IP. If you receive 429 rate_limit_error, back off and retry later. See Rate Limits.

Next Steps#

Rate this doc