Skip to main content
Every affiliation that waits for the merchant carries a link in onboarding_url, and for almost all of them it is Rinne’s onboarding link: a Rinne page, mobile-first and in Portuguese, where the merchant’s contact supplies whatever the provider still needs. You send it to the contact or embed it in your app; Rinne does the rest and submits the affiliation the moment the last item arrives. The exception is an attempt that was already on the provider’s own page, which keeps that page until it finishes (see Use onboarding_url as it is). The page runs on the same building blocks as the API. Anything collected through it shows up in your integration at once, and anything you supply through the API disappears from the page.
Onboarding link gate in Portuguese: the organization name Acme Pagamentos above the title 'Para concluir seu cadastro, digite seu CPF', a CPF field, a Continuar button and the link's expiry date
  1. The contact confirms their CPF
Onboarding link checklist in Portuguese: 'Faltam 3 itens para enviar o cadastro' for Padaria Doce Sabor LTDA, with the biometric verification and identity document under 'Sobre você' and the articles of incorporation under 'Sobre a empresa'
  1. What is pending, in any order
Identity document step in Portuguese: the contact chooses a digital driver's license, a physical driver's license, an RG or an RNE before sending the document
  1. One screen for each item

What the contact sees

1

Opens the link and confirms their CPF

The page names your organization in text and asks for the CPF of the merchant’s registered contact. Nothing about the merchant appears before the CPF matches.
2

Sees what is pending, and what was already received

The pending items are grouped by person and by merchant: their own identity document and biometric verification, the merchant’s articles of incorporation, a question the provider asked. What was already received, through the link, through your API calls or from another merchant of your organization, stays in its group as a closed row marked as received, with the date, so nothing is asked twice and nothing is left in doubt.
3

Completes each item, in any order

  • Documents: a photo taken in the page or a file for each one (PDF, PNG or JPEG, up to 10 MB), with one image per side of an identity document.
  • Biometric verification: a selfie with liveness check on the verification partner’s own capture page, which the link opens in a new tab. The link updates by itself when the result arrives, and the contact can go on with the other items meanwhile.
  • Questions and evidence: a text answer to a provider’s question, or an explanation with the files that back it.
The contact can stop at any point and come back through the same link. Nothing already done is asked again.
4

Continues on the phone, if they want

On a computer, every step after the CPF offers Continuar no celular: a QR code, valid for five minutes, opens the same step on the phone without asking for the CPF again. What was already sent is in place there, and the computer keeps working too.
5

Done

When the last item arrives, the page says everything was sent and Rinne submits the affiliation to the provider.
Your system follows along through webhooks: onboarding-document.status-changed and biometric-verification.status-changed for each item, then affiliation.status-changed as the affiliation moves to PENDING, PENDING_APPROVAL and on.
Onboarding link checklist in Portuguese after a provider review: the identity document marked 'Enviar de novo', a power of attorney, and a proof of address and a question about revenue both tagged 'Pedido do provedor'

After a review: a refused item comes back, a new request appears

Onboarding link screen in Portuguese reading 'Este cadastro já foi enviado': everything pending arrived and was sent for analysis, with nothing left to do

Everything sent: the link's job is done

The link exists while the affiliation is WAITING_DOCUMENTS. Where it reaches you depends on how the affiliation got there:
An affiliation created already waiting reports no affiliation.status-changed. An integration that reads the link only from affiliation.status-changed never sees it: read it from the create response or from affiliation.created as well.
The affiliation.created handler that forwards the link is in the webhooks guide. Rinne does not deliver the link: you send it to the merchant’s contact through the channel you already use with them, such as e-mail, WhatsApp or your app’s inbox. Only the person registered as the merchant’s contact can open it, so a forwarded link shows nothing to anyone else.
Tell the contact who is asking and why before they open it. The page names your organization, but a message from you that they recognize gets the link opened sooner.
You can open the link inside your own site or app instead of sending it. Two things decide whether every step works there:
  • New windows. The biometric step opens the verification partner’s capture in a new tab, because the partner’s page does not run inside a frame, and resumes by itself when the contact comes back. The frame or webview that holds the page must let it open that window and hand it back to the page.
  • The camera, for the photos of the identity document. Without it the contact can still choose a file.
onboarding.html
allow="camera" delegates the camera to the frame, and your page’s own Permissions-Policy must not block it. A frame with no sandbox attribute opens new tabs as is; a sandboxed one needs allow-popups allow-popups-to-escape-sandbox on top of what your page already grants it.
Wherever no tab can open, no verification starts and the page tells the contact to open the link in the browser; nothing gets stuck. The page keeps the contact’s visit in the tab’s own storage, not in a cookie, so nothing on your side has to pass anything through. After the capture, the partner returns the contact to a small Rinne page that only says to go back to the registration tab; the result reaches the page from Rinne.
Embedding the page and keeping the contact inside your app? Ask Rinne support to turn off Continuar no celular for your organization: the QR code opens the page at Rinne’s own address, in the phone’s browser.
A link works until onboarding_url_expires_at; read that field rather than assuming a lifetime. It never outlives the affiliation’s own deadline: an affiliation that waits 30 days in WAITING_DOCUMENTS before its first submission becomes CANCELLED with cancellation_reason EXPIRED, and its link stops working with it. Once the affiliation leaves WAITING_DOCUMENTS, onboarding_url is null. Issue a new link when the contact lost it, it leaked, it went to the wrong person, or it expired before the merchant finished. The previous link stops working at once, together with every visit opened from it; the affiliation, its requirements and everything already sent are kept.
integer
default:"30"
How long the new link lasts, from 1 to 30 days. It is capped at the affiliation’s own deadline, so onboarding_url_expires_at in the response is always the effective date.
Organizations onboarding themselves call POST /v1/affiliations/{id}/onboarding-link. Both routes require the affiliation.edit permission (merchant.affiliation.edit on the merchant route). Full contract: Reissue the onboarding link.

Security and privacy

The page compares the CPF typed with the contact registered on the merchant at that moment. Any other CPF is refused with the same neutral message, which never says whether it belongs to this merchant or to any other. From the sixth attempt in 15 minutes, right or wrong, the page refuses until the window ends, and a match resets the count. Failures never kill the link, so a stranger holding it cannot lock the contact out for good.
A received item shows as a closed row with the date it arrived. The page never displays a file, a file name or an answer that was already sent, to the contact or to anyone else.
After the CPF check the visit lasts two hours, in that tab. A longer visit asks for the CPF again and picks up where the contact stopped. The QR code of Continuar no celular lives five minutes and opens only the visit the CPF already opened.
The link is the secret: it expires, you can revoke it with a reissue, and the CPF check keeps a leaked link useless to anyone but the contact.

Appearance

The page carries Rinne’s brand and names your organization in text, so the contact knows who asked for the registration. It shows no organization logo. Three things can be set for your organization by Rinne support, at your request:
  • An accent colour, one hex value; Rinne’s purple when none is set. A colour too light to carry white text is darkened until it reads at 4.5:1, so a bright colour renders a little darker than configured.
  • The header style: light or graphite.
  • Whether the page offers Continuar no celular, on by default.

Frequently asked questions

No. The link collects documents, biometric verifications and answers. Merchant data is changed through the API, and an answer to a provider’s question never changes the merchant’s registration.
No. They can close the page and open the same link again until it expires. Each item is saved the moment it is sent.
The link of a cancelled affiliation shows that the registration was closed, so nothing more is sent through it. Documents and verifications sent before the cancellation stay with the merchant and satisfy its next affiliation, which comes with a new link.

Next steps

Build with the API

Supply some or all items from your own application.

Statuses and events

Every status, deadline and webhook of the flow.