What you’ll set up
In CVCRM
In the Play2sell panel
- Administrative access to your CVCRM manager (
yourcompany.cvcrm.com.br/gestor). - A dedicated API user (CVCRM recommends naming it “Integração”, so the history stays attributable). If you’ll use the transfer receipt (Step 2.4), this user must be a manager with a panel access password.
- The situations (statuses) you use for sale, deed registration, and cancellation/contract termination already configured in CVCRM.
- Play2sell PAY enabled on your account (if unsure, contact support).
How does the integration work?
The CVCRM is the source of truth for the sale, the parties, the commission split, and the deed registration. Play2sell PAY issues the boleto to the buyer, holds the funds in custody, and distributes the commissions. The two systems stay in sync via webhooks (CVCRM signals when something changes) and write-backs (Play2sell reports the result back in CVCRM).CVCRM creates the contract
Play2sell issues the boleto
The boleto goes back to CVCRM
Buyer pays → CVCRM receives settlement
CVCRM registers the deed → the transfer is released
Play2sell pays and attaches the receipt
{"idreserva": 123}). Play2sell uses that signal merely as a trigger and fetches the full record back from the CVCRM API, authenticated, before acting. That’s why a forged webhook can’t inject data.Step 1 — Get the credentials in CVCRM (email + token)
The connection needs three values from your CVCRM: domain, email, and token.Open Usuários Administrativos
Open the integration user's options

CVCRM manager → Usuários Administrativos → user list
Generate and copy the token
Play2sell), choose the Validade do Token (token expiry), and click Gerar token (Generate token). The token appears in the Listagem de Tokens (token list) — under Ações → Copiar Token (Actions → Copy Token), copy it.
Tokens screen — generate and, under Ações → Copiar Token, copy
Note the email and domain
- Email: the administrative user’s email (must belong to the same CVCRM domain).
- Domain: your account’s subdomain — the part before
.cvcrm.com.br(e.g., inyourcompany.cvcrm.com.br, the domain isyourcompany).
Step 2 — Connect in the Play2sell panel
In the Play2sell panel, go to Integrações → Conectores (Integrations → Connectors), find CVCRM, and click Conectar (Connect).
Integrações → Conectores → CVCRM

“Conectar CRM/ERP” modal — complete form
2.1 — Credentials
Fill in the three values from Step 1:2.2 — Situation mapping
Here you tell Play2sell which situation in your CVCRM corresponds to each action. Enter the name (or the id) of the situation, exactly as it appears in your CVCRM.2.3 — Exit situation (write-back)
The write-back is when Play2sell reports the result back in CVCRM. These fields say which situation your CVCRM should take on for each event. They are optional.2.4 — Transfer receipt (optional)
Makes Play2sell attach the payment receipt (PDF) to the commission in CVCRM when the transfer is paid. It is optional and requires a manager login in CVCRM.2.5 — Role mapping (optional)
Translate your CVCRM’s commission type into the beneficiary’s role in Play2sell. On the left, the text as it comes from CVCRM (e.g.,Corretor); on the right, the role: VENDEDOR, IMOBILIARIA, HOUSE, GERENTE, COORDENADOR, or PARCEIRO. Use ”+ Adicionar papel” (+ Add role) to include as many as you need.
Click Conectar to save.
Step 3 — Copy the webhook URL
When you click Conectar, Play2sell automatically provisions the receiving endpoint and shows the “CRM conectado” screen with your webhook URL and a copy button. Copy that URL — you’ll paste it into CVCRM in the next step.
Integrações → Endpoints — where the URL is available later
Step 4 — Configure CVCRM
Here you tell CVCRM to notify Play2sell on each event (4.1) and ensure two supporting settings (4.2 and 4.3).4.1 — Create the 3 webhooks
In the CVCRM manager, go to Configurações ⚙ → Integrações (Settings → Integrations) and open the Webhooks card (under “Configurar”).
CVCRM manager → Configurações → Integrações → Webhooks card

Webhook list in CVCRM

Registering a new webhook in CVCRM
Webhook 1 — Origination (required)
Webhook 2 — Deed registration → releases the transfer (required)
Webhook 3 — Cancellation / Contract termination (recommended)
4.2 — Register the receipt type (optional)
Do this only if you enabled the Transfer receipt in Step 2.4. It’s a one-time setting that creates the file type used to attach the receipt PDF to the commission. In the CVCRM manager, go to Configurações → Tipos de Arquivos de Pagamento Comissão (Settings → Commission Payment File Types), click ”+ Criar novo Tipo” (+ Create new Type), and fill in:
CVCRM → Tipos de Arquivos de Pagamento Comissão → Criar novo Tipo
4.3 — Ensure “Payment method = Boleto”
For the boleto issued by Play2sell to appear as the commission receivable (and settle correctly), the commission payments in CVCRM must use the “Boleto” payment method. To check: in Financeiro → Comissões (Finance → Commissions), open a commission and click the$ icon (Payments). In the Pagamentos (Payments) section, each beneficiary installment has a “Forma de pagamento” (Payment method) column — it must be set to Boleto.

Commission → Payments: each installment with Forma de pagamento = Boleto (situation “Programado” after issuance)
Step 5 — Test and validate
Before operating for real, run an end-to-end test with low amounts.Create a clean test reservation
Move it to the sale situation
Pay the boleto via Pix
Register the commission deed
Next steps
Once validated, the integration runs on its own. Day to day:- Each sale that enters the commission-payments situation generates the boleto and reflects it on the CVCRM commission, with no manual action.
- Track commission status in Financeiro → Comissões (CVCRM) and sales in the Play2sell panel.
- To adjust the situation mapping or the credentials later, go back to Integrações → Conectores → CVCRM → Editar configuração (Edit configuration).
Frequently asked questions
Do I need a developer to set this up?
Do I need a developer to set this up?
Which webhooks does CVCRM need to have?
Which webhooks does CVCRM need to have?
How is the commission amount calculated?
How is the commission amount calculated?
Does the integration work with a commission smaller than 100% of the sale?
Does the integration work with a commission smaller than 100% of the sale?
How quickly does the broker get paid?
How quickly does the broker get paid?
Is the transfer receipt mandatory?
Is the transfer receipt mandatory?
Troubleshooting
No events reach Play2sell
No events reach Play2sell
The boleto didn't appear on the commission
The boleto didn't appear on the commission
Programado). Reprocessing the reservation usually resolves cases where the configuration was adjusted afterward.A beneficiary wasn't found / the transfer didn't go out
A beneficiary wasn't found / the transfer didn't go out
The paid status didn't reflect immediately
The paid status didn't reflect immediately
Reference
End-to-end lifecycle
Error contract
Error responses follow the{ code, message, hint? } format:
- 4xx — rejection: something is incorrect (e.g., an unmapped situation). Fix it and try again.
- 5xx — transient error: a temporary failure. It is reprocessed automatically.
Technical appendix
- Thin webhook → pull-back: the webhook carries only an id; Play2sell fetches the full record via an authenticated
GETbefore acting. - Idempotency: each contract maps to a stable key derived from the reservation id (
cvcrm:{idreserva}); redelivery never duplicates the sale. - Ordering: if deed registration arrives before origination completes, it is deferred and reprocessed.
- CVCRM may return HTTP 200 with
codigo:404in the body for non-existent routes — always check thecodigofield, not just the HTTP status. - Date filters on some endpoints are ignored — window on the client side.
- Dates in the installments GET use DD/MM/YYYY.
- There are two distinct situation workflows — the commission one and the commission payment one — with ids that can collide. That’s why the situation write-back uses the name (“Programado”/“Pago”), not the id.

