All sequence diagrams below show the SDK method calls on the left and the underlying API endpoints on the right. The SDK is a thin wrapper — you can call the REST API directly if you prefer.
Model 1 — Direct Onboard
Mippo owns the full KYC/AML flow. Your app collects CPF, selfie, and wallet address; Mippo handles everything else. Best for partners launching without an existing KYC vendor. KYC responsibility: MippoLiability: Zero partner liability
Model 2 — Client via Partner
Your platform already runs KYC using your own vendor (e.g. Idwall, unico check, or Sumsub directly). Mippo accepts your KYC token, adds independent sanctions screening and KYT, then issues its ownkycToken to proceed.
KYC responsibility: Partner (primary) + Mippo (independent screen)Liability: Shared — your vendor clears the user; Mippo clears the transaction
Model 3 — Shared Onboard
Both layers contribute to KYC. Your app collects CPF and basic data; Mippo collects the biometric (via the Sumsub WebSDK embedded in your interface). A cross-check of both data sets produces the joint KYC result. KYC responsibility: Partner (CPF + document) + Mippo (biometric + liveness)Liability: Joint — both parties contribute to and share the verification outcome
In Shared mode, Mippo generates a Sumsub
applicantId for you when you call kyc.submit. You only need to pass biometricHash — the SDK handles the Sumsub embedding automatically.Transaction states
Regardless of model, every transaction passes through the same state machine after KYC clears: Pollmippo.transactions.status(transactionId) or listen for webhooks — see the Webhooks guide for the event reference.