API, webhooks e MCP. Conecte o CRM da MIP ao seu checkout, ao seu sistema e às IAs que você usa.
Receba no CRM os eventos do checkout (Pix expirado, carrinho abandonado, compra aprovada), leia e crie contatos, negócios e tarefas pela API, seja avisado quando algo acontece no CRM e converse com ele pelo Claude ou pelo ChatGPT.
Começar
- No CRM, abra Empresa > Integrações (dono ou gestor) e crie uma chave de API. Ela aparece uma vez só: guarde num lugar seguro.
- Mande a chave em todo pedido, no cabeçalho
Authorization: Bearer mip_...(ouX-API-Key). - A chave é da empresa: tudo o que a API lê e grava é da empresa dela. Revogue na mesma tela quando não usar mais.
Endereço base: https://api.usemip.com.br/v1. Corpo e resposta em JSON.
Rotas
| GET/contatos | Lista os contatos mais recentes. Filtros: busca (nome, e-mail ou telefone), limite (até 200), antes (data ISO, pra paginar). |
| GET/contatos/{id} | Um contato com os negócios e as tarefas abertas. |
| POST/contatos | Cria um contato: nome (obrigatório), telefone, email, organizacao, origem, tags, observacoes. Mesmo telefone ou e-mail devolve o que já existe, com existente: true. |
| PATCH/contatos/{id} | Muda os mesmos campos. |
| GET/funis | Os funis e as etapas de cada um (tipo: aberta, ganho ou perdido). |
| GET/negocios | Negócios recentes. Filtros: funil_id, etapa_id, contato_id, limite. |
| POST/negocios | Cria um negócio: contato_id (ou contato com os campos pra criar), titulo, valor, funil_id, etapa_id ou etapa pelo nome. Sem etapa, entra na primeira aberta do primeiro funil. |
| PATCH/negocios/{id} | Muda a etapa (etapa_id ou etapa pelo nome), o valor, o titulo ou o motivo_perda. |
| GET/tarefas | Tarefas abertas. todas=true inclui as feitas; contato_id filtra. |
| POST/tarefas | Cria uma tarefa: titulo (obrigatório), vence_em (ISO com fuso), descricao, prioridade (alta, media, baixa), contato_id, negocio_id, responsavel_id. |
| POST/tarefas/{id}/concluir | Marca a tarefa como feita. |
| GET/reunioes | Reuniões entre de e ate (ISO; padrão: de agora a 14 dias). |
| GET/resumo | Contatos novos, negócios e valor por etapa e as próximas reuniões. dias de 1 a 90. |
Exemplo
Criar um contato e abrir um negócio pra ele:
curl -X POST https://api.usemip.com.br/v1/negocios \
-H "Authorization: Bearer $MIP_CHAVE" \
-H "Content-Type: application/json" \
-d '{"contato": {"nome": "Ana Ribeiro", "telefone": "54999990000", "origem": "site"},
"titulo": "Clareamento", "valor": 890}'
{
"negocio": {
"id": "8a1f...", "numero": 42, "titulo": "Clareamento", "valor": 890,
"contato_id": "c3d9...", "funil_id": "f12b...", "etapa_id": "e7a0...",
"criado_em": "2026-10-18T14:02:11Z"
}
}
Receber eventos
Pra cada compra, Pix gerado ou expirado e carrinho abandonado virar contato no CRM, com etiqueta, negócio na etapa que você escolher e tarefa pra recuperar a venda.
- No CRM, abra Empresa > Integrações > Receber eventos do checkout e escolha a plataforma: Hotmart, Kiwify, Eduzz, Ticto, Braip, Yampi, Cartpanda, AbacatePay ou outro sistema.
- Copie o endereço, no formato
https://api.usemip.com.br/receber/rcb_..., e cole no webhook da plataforma, marcando todos os eventos. A MIP reconhece o formato de cada uma. - Escolha o que fazer com cada evento: pra qual etapa vai o negócio e quando criar tarefa. Quando a compra é aprovada, as etiquetas e tarefas de recuperar saem sozinhas.
Sistema próprio
Mande um POST em JSON (ou formulário) pro endereço a cada evento. Precisa de e-mail ou telefone de quem comprou:
curl -X POST https://api.usemip.com.br/receber/rcb_... \
-H "Content-Type: application/json" \
-d '{"evento": "pix_expirado", "nome": "Ana Ribeiro", "email": "ana@exemplo.com",
"telefone": "54999990000", "produto": "Clareamento", "valor": 890, "forma": "pix"}'
O evento é lido pelo sentido: compra_aprovada (ou pago), pix_gerado (ou aguardando), pix_expirado (ou vencido), carrinho_abandonado, compra_recusada, reembolso e assinatura_cancelada. O mesmo corpo mandado duas vezes entra uma vez só, e "teste": true só registra, sem criar nada. A resposta é 200 com {"ok": true}.
O endereço é a senha da conexão: quem tem ele consegue mandar eventos pro seu CRM. Se vazar, apague a conexão e crie outra.
Avisos pro seu sistema (webhooks)
O caminho contrário: a MIP avisa o seu sistema quando algo acontece no CRM. Cadastre o endereço (https) em Empresa > Integrações > Avisar outro sistema e escolha os eventos. Cada aviso é um POST JSON:
POST /seu-endereco
X-MIP-Evento: negocio.etapa_mudou
X-MIP-Entrega: 5b0e... (o mesmo em cada tentativa: use pra não processar duas vezes)
X-MIP-Assinatura: t=1760796131,v1=9f2c...
{
"id": "5b0e...", "evento": "negocio.etapa_mudou", "criado_em": "2026-10-18T14:05:00Z",
"dados": { "id": "8a1f...", "titulo": "Clareamento", "valor": 890, "contato_id": "c3d9...",
"etapa_id": "e9c2...", "etapa": "Reunião marcada", "etapa_tipo": "aberta",
"etapa_anterior_id": "e7a0..." }
}
Conferir a assinatura
Calcule o HMAC SHA-256 de <t>.<corpo cru> com o segredo do webhook (aparece uma vez, ao criar) e compare com v1. Recuse avisos com t de mais de 5 minutos.
import crypto from 'node:crypto'
function avisoDaMip(corpoCru, cabecalho, segredo) {
const { t, v1 } = Object.fromEntries(cabecalho.split(',').map(p => p.split('=')))
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false
const esperado = crypto.createHmac('sha256', segredo).update(`${t}.${corpoCru}`).digest('hex')
return crypto.timingSafeEqual(Buffer.from(esperado), Buffer.from(v1))
}
Entrega e novas tentativas
Responda 2xx em até 10 segundos. Se não, a MIP tenta de novo depois de 1 minuto, 5 minutos, 30 minutos, 2 horas e 6 horas, e desiste na sexta tentativa. Vinte falhas seguidas desligam o webhook, que volta a ligar na mesma tela.
Claude e ChatGPT (MCP)
O conector MCP deixa você perguntar e mandar no CRM conversando: "como está o funil esta semana?", "cria uma tarefa pra ligar pra Ana amanhã às 10h", "move o negócio do Paulo pra proposta".
1. Gere o endereço
No CRM, abra Empresa > Integrações > Claude e ChatGPT e clique em Gerar endereço. Ele vem no formato https://api.usemip.com.br/mcp/mip_..., com a sua chave no fim, e aparece uma vez só. Quem tem o endereço acessa o CRM: não compartilhe.
2. Cole no app que você usa
- Claude (site ou app): Configurações, Conectores, Adicionar conector personalizado. Nome MIP, cole o endereço e salve.
- ChatGPT: Configurações, Aplicativos e conectores, Avançado, e ligue o modo desenvolvedor. Depois crie um conector com o nome MIP, cole o endereço e escolha Sem autenticação.
- Claude Code: rode no terminal
claude mcp add --transport http mip https://api.usemip.com.br/mcp/mip_... - Cursor e outros: adicione um servidor MCP do tipo HTTP com o endereço. Se o app aceitar cabeçalho, também dá pra usar
https://api.usemip.com.br/mcpcomAuthorization: Bearer mip_....
O Claude e o ChatGPT podem pedir plano pago pra conector personalizado.
3. Pergunte
Numa conversa nova, ligue o conector MIP e pergunte: "como está o meu funil?". Pra cortar o acesso, revogue a chave "Claude e ChatGPT" em Chaves de API.
Ferramentas:
Erros e limites
Erro vem com status HTTP e {"erro": "...", "codigo": "..."}: chave (401, chave ausente ou revogada), pedido (400), nada (404), limite (429), erro (500).
Até 120 pedidos por minuto por chave, 200 itens por lista, 10 chaves ativas, 10 avisos e 20 conexões de recebimento por empresa. Os eventos recebidos ficam 30 dias.
Veja funcionando no seu caso. A demonstração é por vídeo e sem custo.
A gente mostra o agente de IA e o CRM num caso parecido com o seu e olha onde o seu WhatsApp perde venda hoje.
Agendar demonstração