Overview
In sandbox, when you create a KYC validation for a person entity, the API can return an immediate mock result based on the entity’s taxId (document number). No external verification is performed; the response and webhooks match the outcome associated with that document in our test set. This lets you test all flows (approved, rejected, cancelled, RENAPER double-check, etc.) without going through a real verification.Format does not matter. The entity’s
taxId can be sent with or without formatting (e.g. 99.990.001 or 99990001). The API normalizes it before matching, so both work the same.How It Works
- The person entity belongs to an organization that is in sandbox mode.
- You call POST /api/kyc/validations with that entity’s
entityId. - The API looks up the entity’s taxId in the sandbox test map (after normalizing: digits and letters only).
- If there is a match, a mock validation is created with
pendingstatus (201 Created) and moments later it’s updated to the final status (e.g.approved,rejected,cancelled). - Webhooks are sent to your configured endpoint with the final result.
- If there is no match, the API follows the normal flow (creates a real verification session and returns
providerSessionUrl).
pending state, then updated and notified via webhook. Do not attempt immediate polling to the GET endpoint after creating the validation - use webhooks to receive the result.
RENAPER in sandbox: If you send doubleCheckRenaper: true when creating the validation and the outcome is approved (or a RENAPER-related rejection), the response and webhook payload will include metadata.responseDoubleChecks.renaper with the same structure as in production.
Default Test Values
We provide a fixed set of test document numbers in four formats. Each number maps to one outcome. The lookup key is the normalized value (no dots, dashes, or spaces).Outcome List (What Each Number Returns)
| # | Outcome | Result |
|---|---|---|
| 01 | approved | KYC approved. If you requested RENAPER double-check, the response includes RENAPER success. |
| 02 | approved_with_renaper | Same as approved; RENAPER in the response only if requested in the creation. |
| 03 | cancelled | Validation cancelled. |
| 04 | rejected | Generic rejection. |
| 05 | rejected_document_mismatch | Rejection due to document number not matching the entity. |
| 06 | rejected_renaper_tramite_not_match | Rejection: transaction number does not match registry. |
| 07 | rejected_renaper_dni_not_match | Rejection: document number does not match registry. |
| 08 | rejected_renaper_verification_unavailable | Rejection: registry verification unavailable. |
| 09 | rejected_renaper_dni_missing | Rejection: no document number available for registry check. |
| 10 | rejected | Generic rejection (second number for testing). |
Argentina – DNI (8 digits)
Use any of these as the entity’staxId (with or without dots). Normalized value is used for matching.
| Example value | Normalized | Outcome |
|---|---|---|
| 99.990.001 or 99990001 | 99990001 | approved |
| 99.990.002 or 99990002 | 99990002 | approved_with_renaper |
| 99.990.003 | 99990003 | cancelled |
| 99.990.004 | 99990004 | rejected |
| 99.990.005 | 99990005 | rejected_document_mismatch |
| 99.990.006 | 99990006 | rejected_renaper_tramite_not_match |
| 99.990.007 | 99990007 | rejected_renaper_dni_not_match |
| 99.990.008 | 99990008 | rejected_renaper_verification_unavailable |
| 99.990.009 | 99990009 | rejected_renaper_dni_missing |
| 99.990.010 | 99990010 | rejected |
Argentina – CUIT (11 digits)
Format:20-XXXXXXXX-X. Example: 20-99990001-9.
| Example value | Normalized | Outcome |
|---|---|---|
| 20-99990001-9 | 20999900019 | approved |
| 20-99990002-9 | 20999900029 | approved_with_renaper |
| 20-99990003-9 | 20999900039 | cancelled |
| 20-99990004-9 | 20999900049 | rejected |
| 20-99990005-9 | 20999900059 | rejected_document_mismatch |
| 20-99990006-9 | 20999900069 | rejected_renaper_tramite_not_match |
| 20-99990007-9 | 20999900079 | rejected_renaper_dni_not_match |
| 20-99990008-9 | 20999900089 | rejected_renaper_verification_unavailable |
| 20-99990009-9 | 20999900099 | rejected_renaper_dni_missing |
| 20-99990010-9 | 20999900109 | rejected |
Brazil – CPF (11 digits)
Format:XXX.XXX.XXX-XX. Example: 999.900.001-01.
| Example value | Normalized | Outcome |
|---|---|---|
| 999.900.001-01 | 99990000101 | approved |
| 999.900.001-02 | 99990000102 | approved_with_renaper |
| 999.900.001-03 | 99990000103 | cancelled |
| 999.900.001-04 | 99990000104 | rejected |
| 999.900.001-05 | 99990000105 | rejected_document_mismatch |
| 999.900.001-06 | 99990000106 | rejected_renaper_tramite_not_match |
| 999.900.001-07 | 99990000107 | rejected_renaper_dni_not_match |
| 999.900.001-08 | 99990000108 | rejected_renaper_verification_unavailable |
| 999.900.001-09 | 99990000109 | rejected_renaper_dni_missing |
| 999.900.001-10 | 99990000110 | rejected |
Brazil – CNPJ (14 digits)
Format:XX.XXX.XXX/XXXX-XX. Example: 99.990.000/0001-01.
| Example value | Normalized | Outcome |
|---|---|---|
| 99.990.000/0001-01 | 99990000000101 | approved |
| 99.990.000/0001-02 | 99990000000102 | approved_with_renaper |
| 99.990.000/0001-03 | 99990000000103 | cancelled |
| 99.990.000/0001-04 | 99990000000104 | rejected |
| 99.990.000/0001-05 | 99990000000105 | rejected_document_mismatch |
| 99.990.000/0001-06 | 99990000000106 | rejected_renaper_tramite_not_match |
| 99.990.000/0001-07 | 99990000000107 | rejected_renaper_dni_not_match |
| 99.990.000/0001-08 | 99990000000108 | rejected_renaper_verification_unavailable |
| 99.990.000/0001-09 | 99990000000109 | rejected_renaper_dni_missing |
| 99.990.000/0001-10 | 99990000000110 | rejected |
Example: Approved with RENAPER
- Create a person entity in sandbox with
taxId:99990001(or99.990.001). - Call POST /api/kyc/validations with
entityIdanddoubleCheckRenaper: true(body or query). - The API returns 201 with the validation; shortly after, the status is approved and the webhook
kyc.validation_approvedis sent. - The webhook payload includes the full validation object, including
metadata.responseDoubleChecks.renaperwithverified: true,matchResult: "match",personalNumber,idTramitePrincipal, andrenaperData(mock registry response).
Example Response (Mock Approved)
The response body and webhook payload follow the same structure as a real validation. Example shape for an approved mock (relevant fields):metadata.responseDoubleChecks is not present for approved; when it is requested, it is present as above. For renaperData on rejections or service errors, see renaperData shape.
Custom Mock Data
The default set above is available to all sandbox organizations with no configuration.See Also
- Create KYC Validation – How to call the API
- Webhook Integration – Receive validation events in real time