Skip to main content
The CVCRM × Commission Payments integration connects your CVCRM to Play2sell PAY to issue the sale’s boleto to the buyer and pay commissions automatically — with the boleto, settlement, deed registration, and receipt reflected back in your CVCRM. Setup is done screen by screen, with no coding, and takes about 15 minutes.

What you’ll set up

1

In CVCRM

Generate an API token, create 3 webhooks, and make sure the commission uses the Boleto payment method.
2

In the Play2sell panel

Connect the CVCRM (credentials + situation mapping) and copy the webhook URL.
Prerequisites
  • 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).
1

CVCRM creates the contract

When the sale is registered, CVCRM has the amount, the beneficiaries, the number of installments, and the due dates.
2

Play2sell issues the boleto

Play2sell originates the sale and issues a boleto (with Pix) to the buyer.
3

The boleto goes back to CVCRM

The issued boleto is written back to the reservation’s commission (situation “Programado”).
4

Buyer pays → CVCRM receives settlement

Upon payment confirmation, Play2sell reports the paid status back to CVCRM.
5

CVCRM registers the deed → the transfer is released

When the commission’s deed is registered, Play2sell releases and distributes the transfer to the beneficiaries.
6

Play2sell pays and attaches the receipt

Transfer via PIX to each beneficiary; the receipt is attached to the commission in CVCRM. On contract termination, the amount is refunded.
Safe synchronization. CVCRM webhooks are thin — they carry only an identifier (e.g., {"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.
Identity is by CPF/CNPJ, never by email. Buyers and beneficiaries are resolved by document. Make sure brokers, the real estate agency, and other beneficiaries have their CPF/CNPJ filled in within CVCRM.

Step 1 — Get the credentials in CVCRM (email + token)

The connection needs three values from your CVCRM: domain, email, and token.
1

Open Usuários Administrativos

In the CVCRM manager, click the gear ⚙ (top-right corner) and go to Usuários Administrativos (Administrative Users).
2

Open the integration user's options

Find the integration user in the list and, under Opções (Options), choose Tokens.
CVCRM Administrative Users page

CVCRM manager → Usuários Administrativos → user list

3

Generate and copy the token

Fill in the Descrição (Description, e.g., 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.
Generating and copying the token in CVCRM (Ações → Copiar Token)

Tokens screen — generate and, under Ações → Copiar Token, copy

4

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., in yourcompany.cvcrm.com.br, the domain is yourcompany).
You have domain, email, and token in hand — the three values for Step 2.
The token is sensitive — treat it like a password. To rotate it later, generate a new one in CVCRM and update the connection in the Play2sell panel.

Step 2 — Connect in the Play2sell panel

In the Play2sell panel, go to Integrações → Conectores (Integrations → Connectors), find CVCRM, and click Conectar (Connect).
CVCRM connector card

Integrações → Conectores → CVCRM

The form has five blocks. Fill in each one as described below.
Connect CRM/ERP form: credentials, situation mapping, exit situation, and transfer receipt

“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.
Use the exact label from your instance. Situations are configurable and vary from company to company — “Vendida”, “Venda Realizada”, “Aprovada”, etc. Copy the text as it appears in your CVCRM.
Many operations record deed registration on the commission (situation “Escriturar”), not on the reservation. In that case, leave Escriturada blank and fill in Escriturada (via comissão).

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.
For the exit situation, always prefer the name (e.g., Programado, Pago) over the id. The payment situation ids vary per instance and may land on misleading values.

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.
Credentials the receipt requires. The attachment uses CVCRM’s v3 API, which — unlike the rest of the integration (which uses the token) — logs in with email + password to the manager panel. Therefore:
  • The E-mail de integração (Step 2.1) must belong to a manager user that signs in to the CVCRM panel with a password.
  • Enter that user’s password in the Senha de gestor field.
  • Access is renewed automatically — you don’t update anything periodically. If you change the password in CVCRM, update it here too.
The receipt type must already exist in your CVCRM, and the name here must be identical to the one registered there. See how to create it in Step 4.2. Without this setup, everything else still works — only the receipt attachment doesn’t happen.

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.
CVCRM shows as connected in the panel and opens the “CRM conectado” (CRM connected) screen with your webhook URL.

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.
The URL is unique to your account. To retrieve it later, go to Integrações → Endpoints — that’s where the webhook endpoints are listed.
Endpoints page in the Play2sell panel

Integrações → Endpoints — where the URL is available later

You have the webhook URL copied — ready to paste into CVCRM.

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 Integrations hub with the Webhooks card

CVCRM manager → Configurações → Integrações → Webhooks card

Webhook list in CVCRM

Webhook list in CVCRM

You’ll create 3 webhooks — all pointing to the same URL (the one from Step 3). What changes in each is the Funcionalidade (Feature) and the trigger situation: For each one, click ”+ Criar novo Webhook” (+ Create new Webhook) and fill in the form:
New webhook registration form in CVCRM

Registering a new webhook in CVCRM

1

Webhook 1 — Origination (required)

Funcionalidade Reserva, on the situation that marks the sale / the send to commission payments (the same as the Vendida field, Step 2.2). Makes Play2sell originate the sale and issue the boleto.
2

Webhook 2 — Deed registration → releases the transfer (required)

Funcionalidade Comissão, on the situation that indicates deed registration/release — e.g., “Escriturar” (the same as the Escriturada (via comissão) field, Step 2.2). Releases the transfer and pays the beneficiaries via PIX.
3

Webhook 3 — Cancellation / Contract termination (recommended)

Funcionalidade Comissão, on the cancellation situation — e.g., “Cancelada” (the same as the Cancelada (via comissão) field, Step 2.2). Cancels the unpaid boleto or refunds the paid one, depending on the state.
Link the webhooks to the integration user (“Integração”) — that way the changes made by the automation stay attributable in the CVCRM history.
Variation by instance. If your CVCRM records deed registration or cancellation on the reservation itself (and not on the commission), create webhooks 2 and 3 with Funcionalidade Reserva and, in Step 2.2, use the Escriturada and Distrato fields instead of the “(via comissão)” ones. The behavior is the same.
Confirm the 3 webhooks are firing. In the webhook list, the Transações (Transactions) column counts each send. If it stays at 0 after moving a record to the trigger situation, review: the Funcionalidade, the situation (it must match Step 2.2), whether the webhook is Ativo no painel, and whether the Endereço is the exact URL from Step 3 (no spaces).

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:
Commission payment file type registration form in CVCRM

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.
If the installment has another method (e.g., “Transferência bancária”/bank transfer), the boleto we issue won’t match the commission. Adjust the method to Boleto in your CVCRM’s commission rule/condition.
Commission payments in CVCRM with Payment method equal 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.
1

Create a clean test reservation

With a buyer (CPF filled in), a valid amount, and commissions summing to 100% for one broker.
2

Move it to the sale situation

This triggers the origination webhook.
The sale appears in the Play2sell panel and the boleto is attached to the commission in CVCRM (situation “Programado”).
3

Pay the boleto via Pix

Use the Pix copy-and-paste code (it clears instantly).
The commission changes to “Pago” in CVCRM.
4

Register the commission deed

Move the commission to the Escriturar situation.
The PIX transfer is paid to the beneficiary and the receipt is attached to the commission (if configured in Step 2.4).

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

No. The entire setup is done through screens, in the CVCRM manager and the Play2sell panel. You only need administrative access to both systems. No code is required.
Three, all pointing to the same URL: (1) Reserva on the sale situation → origination; (2) Comissão on the “Escriturar” situation → releases the transfer; (3) Comissão on the cancellation situation → refund.
CVCRM shows the gross commission. Play2sell applies the service fee (typically 1–3%) and the beneficiary receives the net amount via PIX. The calculation uses the commission amount, not the sale amount.
Yes. The boleto and the split are calculated on the commission amount, so any percentage works.
After the commission’s deed is registered in CVCRM, the PIX transfer is processed within seconds and lands in the beneficiary’s account.
No, it’s optional. Without it, the transfer is paid normally; only the PDF attachment on the CVCRM commission doesn’t happen.

Troubleshooting

Check in CVCRM: is the webhook Ativo (active)? Do the Funcionalidade (Reserva/Comissão) and the trigger situation match what you mapped in the panel? Is the Endereço the exact URL copied in Step 3 (no spaces/line breaks)?
Confirm that the commission’s payment method is Boleto (Step 4.3) and that the exit situation “Comissão com boleto” is filled in (e.g., Programado). Reprocessing the reservation usually resolves cases where the configuration was adjusted afterward.
Identity is by CPF/CNPJ, never by email. Make sure the beneficiary’s document is filled in and correct in CVCRM.
Payment confirmations and write-backs can take a few moments. If it persists, reprocess the reservation or contact support.

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

This section is for technical teams. The setup above requires nothing from here.
CVCRM API families Synchronization and idempotency
  • Thin webhook → pull-back: the webhook carries only an id; Play2sell fetches the full record via an authenticated GET before 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.
Gotchas
  • CVCRM may return HTTP 200 with codigo:404 in the body for non-existent routes — always check the codigo field, 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.

Support

Need help mapping the situations in your instance? Contact support at suporte@play2sell.com with your domain and the list of situations you use for sale / deed registration / contract termination.