Skip to main content
Identity verification is handled upstream. No document uploads are required from the API side.

How it works (the flow)

  1. POST /onboarding/start-canada — Registers the CAD wallet address and triggers the onboarding context.
  2. PATCH /kyc — User submits KYC data progressively (partial updates allowed).
  3. POST /kyc/activate — Detects the Canadian address and creates a Customer record. The response either carries a hosted verification URL or does not — branch on it.
  4. Branch on the activation response:
    • A verification URL is returned — open it so the user can finish identity verification, then return them to your app.
    • No URL is returned — the user’s identity was already satisfied by the Global KYC share, so there is nothing to open. Go straight to polling. Global KYC itself never runs in a WebView.
  5. GET /onboarding/status — Poll to check KYC completion (the backend receives the provider’s webhooks). Both branches above land here.

Core requirements

Personal Info Contact (from user account) Address (must be a Canadian address) Valid province codes

Not required (handled upstream)

  • Document uploads — collected directly from the user during verification
  • SIN (Social Insurance Number) — collected directly from the user