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
- Fase 2 – Montando a Equipe de Vendas
- Fase 3 – Propostas, Reservas e Contratos
- Fase 4 – Envio de Boletos para o CVCRM
- Envio de Extratos para o CVCRM
- Resumo do Fluxo
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
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo