📋 Índice
🎯 Visão Geral
A API North CRM permite integração externa para cadastro de leads, consulta de horários disponíveis e criação de agendamentos. Todos os endpoints requerem autenticação via token.
🔐 Autenticação
Token de Acesso
Todas as requisições devem incluir um token de autenticação válido no corpo da requisição. Este token identifica automaticamente sua clínica e é fornecido dentro do sistema North CRM.
👤 Cadastrar Lead
Cadastra um novo lead no sistema. O endpoint verifica automaticamente se o cliente já existe pelo telefone antes de criar um novo registro.
📝 Parâmetros Obrigatórios
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
token |
string | Token de autenticação (identifica automaticamente a clínica) | "abc123xyz789" |
telefone |
string | Telefone do lead (usado para verificar duplicatas) | "54999887766" |
nome |
string | Nome completo do lead | "Maria Silva" |
• O sistema verifica se já existe um cliente com o telefone informado
• Se existir, retorna os dados do cliente existente
• Se não existir, cria um novo lead com as informações fornecidas
📨 Exemplo de Requisição
curl -X POST https://api.northcrm.com.br/cadastrar-lead \
-H "Content-Type: application/json" \
-d '{
"token": "abc123xyz789",
"telefone": "54999887766",
"nome": "Maria Silva"
}'
✅ Exemplo de Resposta (Cliente Existente)
{
"cliente_existente": true,
"cliente_id": 12345,
"nome": "Maria Silva Santos",
"telefone": "54999887766",
"mensagem": "Cliente já cadastrado no sistema"
}
✅ Exemplo de Resposta (Novo Lead Criado)
{
"sucesso": true,
"lead_id": 67890,
"nome": "Maria Silva",
"telefone": "54999887766",
"mensagem": "Lead cadastrado com sucesso"
}
❌ Exemplo de Resposta (Erro)
{
"erro": "Obrigatório informar um telefone."
}
⏰ Consultar Horários Disponíveis
Retorna os horários disponíveis para agendamento em um período específico.
📝 Parâmetros Obrigatórios
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
token |
string | Token de autenticação (identifica automaticamente a clínica) | "abc123xyz789" |
data_inicial |
string | Data inicial no formato YYYY-MM-DD | "2025-06-23" |
data_final |
string | Data final no formato YYYY-MM-DD | "2025-06-30" |
• Período máximo: 7 dias entre data_inicial e data_final
• Formato de data: Obrigatório usar formato YYYY-MM-DD
• Autenticação: Token deve ser válido e ativo
📨 Exemplo de Requisição
curl -X POST https://api.northcrm.com.br/horarios-disponiveis \
-H "Content-Type: application/json" \
-d '{
"token": "abc123xyz789",
"data_inicial": "2025-06-23",
"data_final": "2025-06-30"
}'
✅ Exemplo de Resposta (Sucesso)
[
{
"data": "2025-06-23",
"horaDisponivel": "09:30",
"codigoFuncionario": 4406,
"codigoSala": 1052
},
{
"data": "2025-06-23",
"horaDisponivel": "09:45",
"codigoFuncionario": 4406,
"codigoSala": 1052
},
{
"data": "2025-06-23",
"horaDisponivel": "10:00",
"codigoFuncionario": 4406,
"codigoSala": 1052
}
]
📅 Criar Agendamento
Cria um novo agendamento no sistema.
📝 Parâmetros Obrigatórios
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
token |
string | Token de autenticação (identifica automaticamente a clínica) | "abc123xyz789" |
id_cliente |
number | ID do cliente/paciente | 123 |
id_funcionario |
number | ID do funcionário (obtido da consulta de horários) | 4406 |
id_sala |
number | ID da sala (obtido da consulta de horários) | 1052 |
data_agendamento |
string | Data do agendamento no formato YYYY-MM-DD | "2025-06-25" |
hora_inicial |
string | Hora de início no formato HH:MM | "14:00" |
hora_final |
string | Hora de término no formato HH:MM | "15:00" |
📨 Exemplo de Requisição
curl -X POST https://api.northcrm.com.br/agendamento \
-H "Content-Type: application/json" \
-d '{
"token": "abc123xyz789",
"id_cliente": 123,
"id_funcionario": 4406,
"id_sala": 1052,
"data_agendamento": "2025-06-25",
"hora_inicial": "14:00",
"hora_final": "15:00"
}'
✅ Exemplo de Resposta (Sucesso)
{
"sucesso": true,
"agendamento_id": 456789,
"mensagem": "Agendamento criado com sucesso",
"detalhes": {
"data": "2025-06-25",
"hora_inicio": "14:00",
"hora_fim": "15:00",
"cliente": "Maria Santos",
"funcionario": "Dr. João Silva",
"sala": "Consultório 1"
}
}
🛑 Cancelar Agendamento
Cancela um agendamento existente no sistema.
📝 Parâmetros Obrigatórios
| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
token |
string | Token de autenticação (identifica automaticamente a clínica) | "abc123xyz789" |
id_agendamento |
number | ID do agendamento a ser cancelado | 456789 |
motivo |
string (opcional) | Motivo do cancelamento (armazenado no histórico) | "Paciente desmarcou" |
📨 Exemplo de Requisição
curl -X POST https://api.northcrm.com.br/cancelar-agendamento \
-H "Content-Type: application/json" \
-d '{
"token": "abc123xyz789",
"id_agendamento": 456789,
"motivo": "Paciente desmarcou"
}'
✅ Exemplo de Resposta (Sucesso)
{
"sucesso": true,
"agendamento_id": 456789,
"status": "cancelado",
"mensagem": "Agendamento cancelado com sucesso"
}
❌ Exemplo de Resposta (Erro)
{
"erro": "Agendamento não encontrado ou já cancelado."
}
🔄 Fluxo de Integração
🔑 Obter Token
No sistema North CRM você encontrará seu token de autenticação e esta documentação
👤 Cadastrar Lead
Use o endpoint /cadastrar-lead para criar novos leads ou verificar clientes existentes
🔍 Consultar Horários
Use o endpoint /horarios-disponiveis para obter os horários disponíveis
✅ Criar Agendamento
Use os dados retornados (codigoFuncionario e codigoSala) para criar o agendamento via /agendamento
🛑 Cancelar Agendamento (opcional)
Se necessário, utilize o endpoint /cancelar-agendamento para cancelar um agendamento existente
💻 Exemplo Prático Completo
// 1. Cadastrar lead
const leadResponse = await fetch('https://api.northcrm.com.br/cadastrar-lead', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: 'seu_token_aqui',
telefone: '54999887766',
nome: 'Maria Silva'
})
});
const leadData = await leadResponse.json();
console.log('Lead:', leadData);
// 2. Consultar horários disponíveis
const horariosResponse = await fetch('https://api.northcrm.com.br/horarios-disponiveis', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: 'seu_token_aqui',
data_inicial: '2025-06-23',
data_final: '2025-06-25'
})
});
const horarios = await horariosResponse.json();
console.log('Horários disponíveis:', horarios);
// 3. Selecionar um horário e criar agendamento
const horarioEscolhido = horarios[0]; // Primeiro horário disponível
const agendamentoResponse = await fetch('https://api.northcrm.com.br/agendamento', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: 'seu_token_aqui',
id_cliente: leadData.cliente_id || leadData.lead_id,
id_funcionario: horarioEscolhido.codigoFuncionario,
id_sala: horarioEscolhido.codigoSala,
data_agendamento: horarioEscolhido.data,
hora_inicial: horarioEscolhido.horaDisponivel,
hora_final: '15:00'
})
});
const agendamentoData = await agendamentoResponse.json();
console.log('Agendamento:', agendamentoData);
// 4. (Opcional) Cancelar o agendamento
const cancelarResponse = await fetch('https://api.northcrm.com.br/cancelar-agendamento', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: 'seu_token_aqui',
id_agendamento: agendamentoData.agendamento_id,
motivo: 'Cancelamento de teste'
})
});
const cancelamentoData = await cancelarResponse.json();
console.log('Cancelamento:', cancelamentoData);
🆘 Suporte
Em caso de dúvidas sobre a integração, entre em contato com nossa equipe de suporte através dos canais disponíveis no sistema North CRM.