Unlike Sumsub Token Sharing, which imports an existing verification without re-review, Universal KYC is reviewed by Reap. The user passes through
AWAITING_DOCUMENTS and IN_REVIEW before a decision.How it works
Universal KYC has two steps: submit the data pack, then upload the supporting documents. Reap reviews the complete submission and delivers the decision to your webhook endpoint.- Submit the verified data pack by advancing the user’s application. Reap responds with
AWAITING_DOCUMENTSand the list of documents to upload. - Upload each document. When the last required document is received, the application moves to
IN_REVIEW. - Reap reviews the submission and sends the decision by webhook.
Step 1: Submit the data pack
Advance the user’s application with theUNIVERSAL_KYC method and the verified data you hold for the user:
- Identity: legal name, date of birth, and nationality.
- Document metadata: the type, number, and issuing country of the identity document and the proof of address.
- Address: the user’s residential address.
- Liveness: the result of your liveness check.
- Provider result: the name of your KYC provider and the outcome it returned.
AWAITING_DOCUMENTS, and the response nextAction lists the documents you need to upload.
You submit document metadata (type, number, country) in the data pack. The document files themselves are uploaded separately in Step 2.
Step 2: Upload the documents
The advance response’snextAction.documents lists the documents to provide, each with a type and its current upload state. Upload the documents as multipart form data, one document type per request:
documentType: which document this request is for, one of the pending types innextAction.documents(IDENTITY,PROOF_OF_ADDRESS, orCURP).files: the file or files for that document. Send more than one to cover multiple pages, or the front and back of a card.
nextAction. When the last required document is received, the application moves to IN_REVIEW and Reap begins its review.
File requirements
- Accepted formats: JPEG, PNG, GIF, PDF, Word (DOC, DOCX), Excel (XLS, XLSX), and CSV.
- Maximum size: 10 MB per file.
- Up to 15 files per request, and 30 MB total per request.
Mexico card programs
Card programs that issue in Mexico require extra jurisdiction data in the data pack. Include thejurisdictionDetails object when you advance the application, with jurisdiction set to MX and the Mexico-specific fields (country of birth, economic activity, the issuer of the government identity document, and a beneficial-ownership attestation).
For Mexican nationals, the contact and identifier fields (phone, email, tax ID, and CURP) are required, and a CURP document must be uploaded alongside the identity and proof-of-address documents. For applicants who are not Mexican nationals, those fields are optional and no CURP document is needed.
See the advance endpoint reference for the exact jurisdictionDetails fields.
jurisdictionDetails applies only to Mexico card programs. Submitting it on a program that does not issue in Mexico is rejected, and omitting it on a Mexico program is rejected.How statuses update
Universal KYC uses two statuses the other methods do not:AWAITING_DOCUMENTS: the data pack was accepted and Reap is waiting for the supporting documents.IN_REVIEW: all required documents are in and Reap is reviewing.
APPROVED, REJECTED, or RETRY_REQUIRED. Reap emits a USER_APPLICATION_STATUS_UPDATED event on each transition. See Application statuses for the full model.
Handling the decision
When review completes, Reap sends aUSER_APPLICATION_STATUS_UPDATED event (see the event reference). Handle application.status as described in the status model. Surface application.rejectionReason to the user on both REJECTED and RETRY_REQUIRED.
For Universal KYC, RETRY_REQUIRED means the user can try again: advance the application again with a corrected data pack, then re-upload any documents the review flagged. Uploads add to the existing set, so you only need to resend what changed.
Constraints
- The data pack comes before the documents. Advance the application first. Uploading documents before the pack is submitted is rejected.
- Required documents depend on the user. Every user needs an identity document and a proof of address. Mexican nationals on a Mexico card program also need a CURP document.
- Uploading a document type that is not required is rejected. Upload only the types listed in
nextAction.
Testing in sandbox
In the sandbox environment, run the two-step flow above, then simulate the decision instead of waiting for a real review: call Simulate user application status withAPPROVED or REJECTED. The result arrives on the USER_APPLICATION_STATUS_UPDATED webhook, so wait for it rather than polling.