Skip to main content
The sandbox runs the whole onboarding flow, link included, with deterministic outcomes. Two values you control decide them: the last digit of the merchant contact’s phone number decides the affiliation, and the last digit of the person’s CPF decides the biometric verification. The same data works from your integration all the way to the provider’s sandbox. Sandbox requests go to https://api-sandbox.rinne.com.br/core with a sandbox API key, as in the testing guide. Onboarding links issued in the sandbox open on sandbox.cadastro.rinne.com.br.

Affiliation outcomes

The last digit of contact.phone decides a CELCOIN affiliation once its requirements are satisfied and Rinne submits it: Any other digit runs the provider’s real checks, which need real data.
cURL
The contact’s phone ends in 1, so this merchant’s CELCOIN affiliations are approved once their requirements are satisfied.
The sandbox refuses an affiliation whose contact e-mail, phone number or merchant document is already linked to an account at the provider: POST on the affiliation answers 409 and the affiliation is kept as FAILED. Use fresh contact data for every merchant you test.

Biometric outcomes

A biometric verification resolves only after a person completes the capture on verification_url, so the sandbox capture takes a real person with a camera. The person’s CPF then decides: The sandbox verification_url lasts about one hour. Read verification_url_expires_at rather than assuming it, here and in production.

Rejection reviews

The provider’s sandbox sends no rejection text, so a sandbox rejection is reviewed automatically with a fixed outcome per scenario: The phone’s last digit decides every attempt, so a correction journey ends by changing the contact’s phone to end in 1 with PATCH /v1/merchants/{merchantId} (or PATCH /v1/companies/me) before you create the new affiliation. With the same digit the sandbox rejects again.

A full run

1

Create the merchant

A merchant with a fresh CNPJ, contact e-mail and phone, the phone ending in 3 to exercise a document rejection, and a contact CPF ending in an even digit.
2

Create the affiliation

POST /v1/merchants/{merchantId}/affiliations with "provider": "CELCOIN". It is created WAITING_DOCUMENTS with an onboarding_url.
3

Complete it through the link or the API

Open onboarding_url on a phone and go through it, or upload the documents and run the biometric verification through the API. When the last item arrives, Rinne submits the affiliation on its own.
4

Watch the rejection and its review

affiliation.status-changed reports REJECTED, and affiliation.requirements-changed follows with the review: DOCUMENT_UNREADABLE on the contact’s identity document.
5

Correct and try again

Change the contact’s phone to end in 1, upload a new identity document and create a new affiliation. Only the identity document was pending, so the new one is submitted as soon as it is created.
6

Check the approval

The new affiliation becomes ACTIVE, and the documents it sent become VALIDATED.
The run exercised the link or the API, a rejection, its review, the reuse of the approved biometric verification and an approval, with the same events production sends.