Visão Geral
Esta documentação apresenta todas as APIs disponíveis no sistema CRM Dental, incluindo endpoints para agendamentos, pacientes e integração com IA.
Horários Dinâmicos
Sistema configurável de horários baseado em preferências da clínica
Agendamento Automático
Criação automática de pacientes e sincronização com Google Calendar
Integração IA
API especializada para agentes de IA com processamento inteligente
Validação Robusta
Verificação de conflitos e validação completa de dados
Base URL
https://seudominio.com/ametsistemas/api/
Formato de Resposta
Todas as APIs retornam JSON com a seguinte estrutura:
{
"success": true|false,
"message": "Mensagem descritiva",
"data": {...}
}
APIs Disponíveis
GET
/horarios_dentista.php
Retorna horários disponíveis para um dentista específico baseado nas configurações dinâmicas do sistema.
Parâmetros
| Parâmetro | Tipo | Status | Descrição |
|---|---|---|---|
| dentista_id | integer | Obrigatório | ID do dentista na tabela funcionarios |
| data | string | Opcional | Data inicial (YYYY-MM-DD). Padrão: hoje |
Exemplo de Uso
GET /api/horarios_dentista.php?dentista_id=1&data=2024-12-20
Resposta de Sucesso
{
"success": true,
"horarios": [
{
"data": "20/12/2024",
"hora": "09:00",
"periodo": "manhã"
},
{
"data": "20/12/2024",
"hora": "15:00",
"periodo": "tarde"
}
],
"config": {
"total_dias": 3,
"horarios_por_dia": 4,
"horarios_manha": 2,
"horarios_tarde": 2
}
}
POST
/criar_agendamento.php
Cria um novo agendamento com validação completa. Pode criar paciente automaticamente se não existir.
Cenário 1: Paciente Existente
{
"paciente_id": 26,
"dentista_id": 1,
"data_consulta": "2024-12-20",
"hora_inicio": "09:00",
"hora_fim": "10:00",
"tipo_consulta": "Consulta"
}
Cenário 2: Criar Paciente + Agendamento
{
"paciente_nome": "João Santos",
"paciente_telefone": "11987654321",
"dentista_id": 1,
"data_consulta": "2024-12-20",
"hora_inicio": "09:00",
"hora_fim": "10:00",
"tipo_consulta": "Consulta"
}
Agendamentos & Pacientes
POST
/criar_paciente.php
Cadastra novos pacientes no sistema com dados mínimos ou completos.
Payload Mínimo
{
"nome": "João Santos",
"telefone": "11987654321"
}
Payload Completo
{
"nome": "João Santos",
"email": "joao@email.com",
"telefone": "11987654321",
"data_nascimento": "1990-05-15",
"endereco": "Rua ABC, 123",
"clinica_id": 1
}
Integração com IA
🎯 API Especial para Integração com IA
Esta API foi desenvolvida especificamente para receber dados do agente de IA da Zaia e processar agendamentos automaticamente.
Esta API foi desenvolvida especificamente para receber dados do agente de IA da Zaia e processar agendamentos automaticamente.
POST
/agendamento_zaia.php
API inteligente que processa dados da IA Zaia, cria pacientes automaticamente e sincroniza com Google Calendar.
Dados Vindos da Zaia
| Campo | Tipo | Status | Descrição |
|---|---|---|---|
| nome | string | Obrigatório | Nome do paciente |
| telefone | string | Obrigatório | Telefone do paciente |
| dentista_id | integer | Obrigatório | ID do dentista escolhido |
| data | string | Obrigatório | Data da consulta (YYYY-MM-DD) |
| horario | string | Obrigatório | Horário ("09:00" ou "09:00-10:00") |
| tipo_consulta | string | Opcional | Tipo da consulta (padrão: "Consulta") |
| clinica_id | integer | Opcional | ID da clínica (padrão: 1) |
Exemplo de Payload Mínimo
{
"nome": "João Santos",
"telefone": "11987654321",
"dentista_id": 1,
"data": "2024-12-20",
"horario": "09:00"
}
Exemplo com Campos Opcionais
{
"nome": "Maria Silva",
"telefone": "11999888777",
"dentista_id": 1,
"data": "2024-12-20",
"horario": "14:00-15:00",
"tipo_consulta": "Limpeza",
"clinica_id": 1
}
Fluxo Automático
- ✅ Verifica se paciente existe pelo telefone
- ✅ Cria paciente automaticamente se não existir
- ✅ Valida dentista e disponibilidade
- ✅ Processa horário (aceita "09:00" ou "09:00-10:00")
- ✅ Verifica conflitos de agendamento
- ✅ Cria agendamento automaticamente
Resposta de Sucesso
{
"success": true,
"message": "Agendamento criado com sucesso",
"agendamento_id": 123,
"paciente_id": 28,
"paciente_novo": true,
"google_calendar": true
}
Configurações do Sistema
As APIs utilizam configurações dinâmicas armazenadas no banco de dados:
Configurações de API
- api_total_dias: Quantidade de dias a buscar (padrão: 3)
- api_horarios_por_dia: Total de horários por dia (padrão: 4)
- api_horarios_manha: Horários da manhã (padrão: 2)
- api_horarios_tarde: Horários da tarde (padrão: 2)
- api_pular_fins_semana: Pular sábado/domingo (1=sim, 0=não)
Configurações de Funcionamento
- funcionamento_inicio: Hora de início (padrão: 8)
- funcionamento_fim: Hora de fim (padrão: 18)
- funcionamento_almoco_inicio: Início do almoço (padrão: 12:00)
- funcionamento_almoco_fim: Fim do almoço (padrão: 14:00)
Códigos de Erro
| Erro | Descrição |
|---|---|
| Campo obrigatório: [campo] | Um campo obrigatório não foi enviado |
| Paciente não encontrado | ID do paciente não existe no banco |
| Dentista não encontrado | ID do dentista não existe ou não é dentista |
| Horário não disponível | Já existe agendamento no horário solicitado |
| Método não permitido | Endpoint aceita apenas POST ou GET conforme especificado |
Exemplos de Teste
Teste no Postman
POST https://seudominio.com/ametsistemas/api/agendamento_zaia.php
Content-Type: application/json
{
"nome": "João Santos",
"telefone": "11987654321",
"dentista_id": 1,
"data": "2024-12-20",
"horario": "09:00"
}
Teste via cURL
curl -X POST https://seudominio.com/ametsistemas/api/agendamento_zaia.php \
-H "Content-Type: application/json" \
-d '{
"nome": "João Santos",
"telefone": "11987654321",
"dentista_id": 1,
"data": "2024-12-20",
"horario": "09:00"
}'