📘 Tutorial de Integração ERP ↔ CVCRM
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.
🔹 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
{
"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
#{
"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
{
"idbloco_int": "BL001",
"idetapa_int": "ETP001",
"idempreendimento_int": "ERP123",
"nome": "Bloco A",
"data_cadastro": "2025-09-15"
}
Cadastrar Unidade - POST /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
{
"idimobiliaria_int": "IMO001",
"nome": "Imobiliária Sol Nascente",
"cnpj": "22345678000190",
"ativo": true
}
Cadastrar Corretor POST /corretores
{
"idcorretor_int": "COR001",
"nome": "João Silva",
"creci": "12345/MG",
"email": "[email protected]",
"ativo": true
}
Vincular ao Empreendimento - POST /empreendimento/imobiliaria ou POST /empreendimento/corretores
{
"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:
{
"idreserva": "RES123"
}
Consultar Detalhes da Reserva - GET /reservas/idreserva
{
"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
{
"idcliente": "CLI001",
"nome": "Maria Oliveira",
"cpf": "12345678901",
"email": "[email protected]"
}
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.
curl -X 'POST' \
'https://integracao.cvcrm.com.br/api/v1/financeiro/boletos' \
-H 'accept: application/json' \
-H 'email: [email protected]' \
-H 'token: ' \
-H 'Content-Type: multipart/form-data' \
-F 'valor=1999.99' \
-F 'codigointerno=BOL01' \
-F 'vencimento=2023-05-01' \
-F '[email protected]' \
-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:
curl -X 'POST' \
'https://integracao.cvcrm.com.br/api/v1/financeiro/boletos' \
-H 'accept: application/json' \
-H 'email: [email protected]' \
-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
curl --request POST \
--url https://integracao.cvcrm.com.br/api/v1/financeiro/extratos \
--header 'accept: application/json' \
--header 'email: [email protected]' \
--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:
curl --request POST \
--url https://integracao.cvcrm.com.br/api/v1/financeiro/extratos \
--header 'accept: application/json' \
--header 'email: [email protected]' \
--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)
curl --request POST \
--url https://integracao.cvcrm.com.br/api/v1/financeiro/informe-rendimentos \
--header 'accept: application/json' \
--header 'email: [email protected]' \
--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 [email protected]
📌 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:
curl --request POST \
--url https://integracao.cvcrm.com.br/api/v1/financeiro/informe-rendimentos \
--header 'accept: application/json' \
--header 'email: [email protected]' \
--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.
Updated about 5 hours ago