Skip to main content
Prerequisite: have a session token. See Authentication.

Flow

Steps

1

1) Get fields + values

GET /kyc/values to see required fields and allowed values.
2

2) Submit application

POST /kyc/applications with the fields below. Sandbox: set lastName to approved to auto‑approve.
3

3) Complete verification

We return a completionLink (or externalVerificationLink). Open it in a browser for document upload and face match. Users finish verification there — you don’t need to handle media.
4

4) Check status

Poll GET /kyc/status until the status becomes approved (or an actionable state such as needs_information).
5

5) Accept agreements

After approval, fetch the agreements and collect user consent. See Agreements.

States

  • approved
  • pending
  • needs_information
  • needs_verification
  • manual_review
  • denied
  • locked
  • canceled

Fields (submit application)

string
required
Given name.
string
required
Family name. Sandbox shortcut: set to approved to auto-approve.
string
required
YYYY-MM-DD (e.g., 1990-01-01).
string
required
Government ID number (letters, numbers, dashes only).
string
required
ISO-3166-1 alpha-2 country code (e.g., US). Case-insensitive.
string
required
Email address.
string
Optional phone dial code digits only (e.g., 1).
string
Optional phone number digits only (include area code).
string
required
Street address (line 1).
string
Street address (line 2).
string
required
City.
string
required
State/region (e.g., CA).
string
required
Postal/ZIP code.
string
required
ISO-3166-1 alpha-2 country code (e.g., US). Case-insensitive.
string
required
SOC occupation code (e.g., 49-3023). Full list: KYC Field Values.
string
required
Choose one label (we map to the underlying range for you):
  • <40k
  • 50k–99k
  • 100k–149k
  • 150k+
string
required
Choose one:
  • everyday spend
  • subscriptions
  • business expenses
  • testing
  • other
string
required
Choose one label (we map to the underlying range for you):
  • under $1k
  • 1k1k–5k
  • 5k5k–20k
  • $20k+

Response (status)

string
required
One of: approved, pending, needs_information, needs_verification, manual_review, denied, locked, canceled.
string
Identifier for the submitted application (when available).
string
Additional context for non-approved statuses.
Sandbox shortcut: set lastName to approved to auto‑approve. See KYC Field Values for allowed field values.