Skip to main content
Pods KYC normalizes several identity and verification flows behind a single status model so your application can enable fiat-to-crypto money movement without integrating each local KYC/AML provider yourself. You pick the flow that fits your users, onboard them, and poll one status endpoint until a capability is unlocked.
Whatever flow you use, approval is asynchronous and every profile is customer-scoped. Poll GET /api/v1/kyc/status until the profile reaches a terminal state and the capability flag you need (brlaEnabled for Brazil, usdEnabled for foreign USD) is true.

Introduction

Authentication

Every request requires:
  • The key identifies your customer. Fee configuration and strategy catalog are scoped to it.
  • Success responses are the bare JSON body (HTTP 200). Errors use { "error": { "code", "message", "details?" } }.
  • Keep the API key on your backend β€” never expose it in a browser app.
Don’t have a key yet? Get an API key.

Integration flow

1

Choose your KYC flow

Pick the flow that matches your users: bring-your-own capture (external evidence), foreign USD onboarding, or Brazil Pix Sumsub reusable KYC.
2

Onboard the applicant

Create a session and submit the evidence you captured, or submit a Sumsub reusable share token β€” depending on the flow. Each call returns a kycUserId β€” store it for status polling.External evidence
Full guide: External evidence KYCBrazil Pix reusable KYC
Full guide: Set up Pods RampForeign USD
Full guide: Foreign USD KYC and ramps
3

Poll status

Verification is asynchronous. Poll until the profile reaches a terminal state:
Full guide: Track Pods Ramp status.
4

Unlock capability (foreign USD)

Level 1 approval does not enable USD ramps by itself. Request the currency unlock and poll status until usdEnabled is true:
Full guide: Foreign USD KYC and ramps.
5

Move money

Once the capability flag is true, use the same Swap v2 quote routes to onramp, offramp, or ramp to yield:
Full guide: Move money with Pods Ramp.