webViewUrl your app opens in a webview for the provider to capture document, selfie, and liveness).
KYC runs on a configured provider (BigDataCorp is active; ZKPassport is the future target). If no provider is configured on the instance, calls return
503 at call time.Access gate: the KYC gate is binary. Only
kycStatus === APPROVED unlocks the payment operations (cash-out, cash-in). There are no KYC levels or per-level limits. The gate is enforced on the payment routes, not on the KYC routes themselves./api/v1/users/kyc.
Document lookup and verify
POST /api/v1/users/kyc/lookup returns the registry data for a document; POST /api/v1/users/kyc/verify returns a validity check. Both take the same body.
string
required
Partner credentials:
Bearer sk_live_... or the HMAC header.string
required
One of
CPF, CNPJ, RG, PASSPORT, SSN, DNI, CURP, RUT, CC, NIT, OTHER.string
required
The document number (minimum 3 characters).
string
required
ISO 3166-1 alpha-2 country code, for example
BR or US.A document not found returns
404. A provider failure returns 502.Onboarding sessions
Start an individual (PF) session
POST /api/v1/users/kyc/sessions/natural-person
string
required
The user’s id in your system (1 to 128 chars).
string
required
CPF (11 to 14 chars).
string
required
Full legal name.
string
required
Date of birth.
string
required
Mother’s name.
string
required
Contact email.
boolean
required
Whether the person is a politically exposed person (PEP).
string
default:"BR"
ISO 3166-1 alpha-2 country code.
object
Optional address (
postalCode, street, number, neighborhood, city, state).string
Optional phone number.
Start a company (PJ) session
POST /api/v1/users/kyc/sessions/legal-person
string
required
The company’s id in your system.
string
required
CNPJ (14 to 18 chars).
string
required
Legal business name.
string
required
Trading name.
string
required
One of
MEI, EI, EIRELI, LTDA, SA, SLU.string
required
Contact phone.
string
required
Business email.
object
required
The company address (
postalCode, street, number, neighborhood, city, state).array
required
One or more owners, each with
ownerType (PARTNER, LEGAL_REPRESENTATIVE, or BOTH), documentNumber, fullName, birthDate, motherName, phoneNumber, email, and address.Manage sessions
list
List the partner’s sessions. Query:
limit (1 to 200), status, externalUserId.lookup
Get a session by id.
refresh
Force a status refresh from the provider.
reopen
Get a fresh documentoscopy
webViewUrl, reopening the session if it expired.status
The latest session for one of your users. Returns
hasSession: false when none exists.Session status
A session moves through these statuses (also delivered asKYC_* webhooks):