Tutorial de Integração ERP <> CVCRM - Integrações e API

Sua gestão comercial pode ir além: conheça as mais de 50 integrações do ecossistema CV CRM clicando aqui!


Neste artigo, temos o resumo dos endpoints no fluxo simplificado para integrar um ERP ao CVCRM.

A integração entre o ERP e o CVCRM é organizada em fases, respeitando onde o dado nasce e para onde ele deve ser enviado.


Confira neste artigo:


Fase 1 – Cadastrando a Base de Dados

Aqui são enviados os dados de estrutura de venda: empreendimento → etapas → blocos → unidades.

Se a origem for o ERP, utilize POST para enviar ao CVCRM.

Cadastrar Empreendimento

POST /empreendimentos

Empreendimentos

{

"idempreendimento_int": "ERP123",

"nome": "Residencial Jardim das Flores",

"matricula": "12345",

"cidade": "Belo Horizonte",

"estado": "MG",

"idempresa_int": "ERP001",

"nome_empresa": "Incorp ABC",

"razao_social": "Incorp ABC Ltda",

"cnpj": "12345678000190",

"sigla": "ABC",

"ativo": true

}

Cadastrar Etapa

POST /etapas

Etapas

#{

"idetapa_int": "ETP001",

"idempreendimento_int": "ERP123",

"nome": "Etapa 1",

"data_cadastro": "2025-09-15"

}

Se o ERP não tiver etapas, crie uma etapa única com código genérico.

Cadastrar Bloco

POST /blocos

Blocos

{

"idbloco_int": "BL001",

"idetapa_int": "ETP001",

"idempreendimento_int": "ERP123",

"nome": "Bloco A",

"data_cadastro": "2025-09-15"

}

Cadastrar Unidade

POST /unidades

unidades

{

"idunidade_int": "UN001",

"idbloco_int": "BL001",

"idetapa_int": "ETP001",

"idempreendimento_int": "ERP123",

"nome": "Apto 101",

"area_privativa": 65.5,

"situacao": "disponivel"

}

Dica: O CVCRM possui campos extras. Sempre que possível, aproveite-os para enriquecer a base, mesmo que o ERP não os tenha.


Fase 2 – Montando a Equipe de Vendas

O CVCRM depende da equipe para processar reservas.

Cadastrar Imobiliária

POST /imobiliarias

Imobiliárias

{

"idimobiliaria_int": "IMO001",

"nome": "Imobiliária Sol Nascente",

"cnpj": "22345678000190",

"ativo": true

}

Cadastrar Corretor

POST /corretores

Corretores

{

"idcorretor_int": "COR001",

"nome": "João Silva",

"creci": "12345/MG",

"email": "joao.silva@imob.com",

"ativo": true

}

Vincular ao Empreendimento

POST /empreendimento/imobiliaria ou POST /empreendimento/corretores

Vincular equipe

{

"idempreendimento_int": "ERP123",

"idimobiliaria_int": "IMO001"

}


Fase 3 – Propostas, Reservas e Contratos

Webhook - Receber Reserva Criada

Quando uma reserva é feita no CVCRM, o ERP recebe um webhook:

Webhook - Reserva Criada

{

"idreserva": "RES123"

}

Consultar Detalhes da Reserva –

GET /reservas/idreserva

Reservas

{

"idreserva": "RES123",

"idempreendimento": "ERP123",

"idetapa": "ETP001",

"idbloco": "BL001",

"idunidade": "UN001",

"idimobiliaria": "IMO001",

"idcorretor": "COR001",

"titular": "CLI001",

"associados": ["CLI002"]

}

Consultar Cliente da Reserva

GET /clientes/idcliente

Cliente

{

"idcliente": "CLI001",

"nome": "Maria Oliveira",

"cpf": "12345678901",

"email": "maria.oliveira@email.com"

}

Assim, o ERP consegue registrar o contrato.


Fase 4 – Envio de Boletos para o CVCRM

Os boletos sempre têm origem no ERP e precisam ser enviados ao CVCRM para que o cliente final visualize no portal.

Via multipart/form-data (com upload de arquivo PDF)

Esse formato é útil quando você precisa anexar o boleto em PDF diretamente na requisição.

Boletos

curl -X 'POST' \

'https://integracao.cvcrm.com.br/api/v1/financeiro/boletos' \

-H 'accept: application/json' \

-H 'email: email@email.com' \

-H 'token: ' \

-H 'Content-Type: multipart/form-data' \

-F 'valor=1999.99' \

-F 'codigointerno=BOL01' \

-F 'vencimento=2023-05-01' \

-F 'arquivo=@boleto.pdf' \

-F 'tipo=Ato' \

-F 'linha_digitavel=00190500954014481606906809350314337370000000100' \

-F 'titulo=BOL01' \

-F 'codigointerno_reserva=5458954' \

-F 'idreserva=123'

Observações:
-arquivo deve ser um PDF válido.
-codigointerno_reserva ou idreserva relaciona o boleto a uma reserva/contrato já existente no CVCRM.


Via JSON (mais simples, sem upload de arquivo)

Se não precisar anexar o PDF, basta enviar os dados básicos via JSON:

Boletos

curl -X 'POST' \

'https://integracao.cvcrm.com.br/api/v1/financeiro/boletos' \

-H 'accept: application/json' \

-H 'email: email@email.com' \

-H 'token: ' \

-H 'Content-Type: application/json' \

-d '{

"idcliente": "CLI001",

"idcontrato": "CTR001",

"nosso_numero": "1234567",

"valor": 1500.00,

"vencimento": "2025-10-10",

"linha_digitavel": "34191.79001 01043.510047 91020.150008 1 94880000015000"

}

Observações:
-idcliente e idcontrato são retornados quando você busca dados de contratos e clientes no CVCRM.
-nosso_numero é o identificador do boleto no ERP.
-linha_digitavel garante que o boleto seja validado e pago corretamente.


Regra geral:

  • Se o ERP gera o PDF, use multipart/form-data.
  • Se só precisa registrar a cobrança, use JSON.


Envio de Extratos para o CVCRM

O extrato também nasce no ERP (origem do dado). Ele deve ser enviado ao CVCRM para que o cliente final possa visualizar no portal ou no aplicativo.

Envio com PDF em multipart/form-data

Extrato

curl --request POST \

--url https://integracao.cvcrm.com.br/api/v1/financeiro/extratos \

--header 'accept: application/json' \

--header 'email: email@email.com' \

--header 'token: 79d965e5027b7423423f2471824e799949c75f9ce' \

--header 'content-type: multipart/form-data' \

--form idreserva=123 \

--form codigointerno_reserva=123 \

--form 'descricao=Extrato referente a Maio/2025' \

--form arquivo='@Fatura.pdf'

Campos principais:

  • idreserva ou codigointerno_reserva → identifica a reserva/contrato.
  • descricao → texto explicativo que será exibido ao cliente.
  • arquivo → PDF do extrato, enviado direto na requisição.

Envio somente em JSON (sem PDF)

Se o ERP não gera o PDF, mas quer apenas registrar o movimento:

Extrato

curl --request POST \

--url https://integracao.cvcrm.com.br/api/v1/financeiro/extratos \

--header 'accept: application/json' \

--header 'email: email@email.com' \

--header 'token: ' \

--header 'Content-Type: application/json' \

--data '{

"idreserva": "123",

"descricao": "Extrato detalhado de Maio/2025",

"valor_total": 4500.00,

"periodo_inicio": "2025-05-01",

"periodo_fim": "2025-05-31"

}'

Nesse caso:

  • valor_total, periodo_inicio e periodo_fim podem ser usados para exibir um resumo do extrato sem a necessidade de PDF.
  • É opcional, mas recomendado preencher para dar mais contexto ao cliente.

Assim como nos boletos:

  • Use multipart/form-data se precisar anexar o PDF.
  • Use JSON se só quiser registrar os dados resumidos.


Enviar Informe de Rendimentos (IR)

Envio de Informe de Rendimentos (IR) para o CVCRM O ERP gera o IR (geralmente em PDF) e envia ao CVCRM. O cliente final acessa esse documento pelo portal/aplicativo.

Envio com PDF (multipart/form-data)

IR

curl --request POST \

--url https://integracao.cvcrm.com.br/api/v1/financeiro/informe-rendimentos \

--header 'accept: application/json' \

--header 'email: email@email.com' \

--header 'token: ' \

--header 'content-type: multipart/form-data' \

--form idreserva=12 \

--form codigointerno_reserva=12 \

--form ano=2024 \

--form 'descricao=Informe de rendimentos referente ao exercício 2024' \

--form arquivo=@IR.pdf

Campos principais:

  • idreserva ou codigointerno_reserva → identifica a reserva/contrato associado ao cliente.
  • ano → ano-base do informe de rendimentos.
  • descricao → texto explicativo exibido no portal do cliente.
  • arquivo → PDF oficial do informe de rendimentos.

Envio em JSON (sem PDF)

Caso não precise anexar o documento, é possível registrar os dados básicos via JSON:

IR

curl --request POST \

--url https://integracao.cvcrm.com.br/api/v1/financeiro/informe-rendimentos \

--header 'accept: application/json' \

--header 'email: email@email.com' \

--header 'token: ' \

--header 'Content-Type: application/json' \

--data '{

"idreserva": "12",

"ano": 2024,

"descricao": "Informe de rendimentos exercício 2024",

"rendimento_total": 48000.50,

"imposto_retido": 3200.75

}'

Nesse formato:

  • rendimento_total e imposto_retido são opcionais, mas úteis para consulta rápida no sistema.
  • O PDF continua sendo o meio mais comum, mas o JSON pode complementar com valores numéricos.

Resumindo:

  • ERP → POST /financeiro/informe-rendimentos → CVCRM → Cliente final consulta no portal/app.
  • Sempre relacione o IR a uma reserva/contrato (idreserva ou codigointerno_reserva).
  • Prefira PDF (multipart/form-data), mas JSON é aceito para resumo. Assim o CVCRM passa a exibir ao cliente final, via portal ou app, todas as informações financeiras vindas do ERP.


Resumo do Fluxo

  • ERP → CVCRM: Empreendimentos, etapas, blocos, unidades e dados financeiros.
    CVCRM → ERP: Reservas e propostas (via webhook + GET).
  • ERP → Cliente final (via CVCRM): Boletos, extratos, informes de rendimento.


BOAS VENDAS!

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo