API Endpoints
Base URL: https://api.agenda.digitalface.dev.br
Todos os endpoints autenticados requerem Authorization: Bearer <access_token> exceto os marcados como publicos.
Auth
| Metodo |
Endpoint |
Descricao |
Auth |
| POST |
/api/v1/auth/register |
Cadastro de org + owner |
Nao |
| POST |
/api/v1/auth/login |
Login com email + senha |
Nao |
| POST |
/api/v1/auth/refresh |
Renovar tokens |
Nao |
| POST |
/api/v1/auth/forgot-password |
Solicitar reset de senha |
Nao |
| POST |
/api/v1/auth/reset-password |
Definir nova senha |
Nao |
| GET |
/api/v1/auth/me |
Dados do usuario autenticado |
Sim |
POST /api/v1/auth/register
{
"org_name": "Barbearia do Joao",
"org_slug": "barbearia-do-joao",
"name": "Joao Silva",
"email": "joao@example.com",
"password": "senha123",
"phone": "82999998888"
}
POST /api/v1/auth/login
{
"email": "joao@example.com",
"password": "senha123"
}
POST /api/v1/auth/refresh
{
"refresh_token": "<refresh_token>"
}
Organization
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/organization |
Dados da organizacao |
Sim |
| PUT |
/api/v1/organization |
Atualizar dados da org |
Sim |
| PUT |
/api/v1/organization/settings |
Atualizar configuracoes |
Sim |
| POST |
/api/v1/organization/logo |
Upload de logo |
Sim |
Services
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/services |
Listar servicos |
Sim |
| POST |
/api/v1/services |
Criar servico |
Sim |
| PUT |
/api/v1/services/{id} |
Atualizar servico |
Sim |
| DELETE |
/api/v1/services/{id} |
Remover servico |
Sim |
| PUT |
/api/v1/services/reorder |
Reordenar servicos |
Sim |
POST /api/v1/services
{
"name": "Corte Masculino",
"description": "Corte com tesoura ou maquina",
"duration_minutes": 30,
"price": 45.00,
"color": "#FF5733",
"requires_deposit": false,
"deposit_amount": null
}
Professionals
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/professionals |
Listar profissionais |
Sim |
| POST |
/api/v1/professionals |
Criar profissional |
Sim |
| PUT |
/api/v1/professionals/{id} |
Atualizar profissional |
Sim |
| DELETE |
/api/v1/professionals/{id} |
Remover profissional |
Sim |
| GET |
/api/v1/professionals/{id}/services |
Servicos do profissional |
Sim |
| PUT |
/api/v1/professionals/{id}/services |
Associar servicos |
Sim |
PUT /api/v1/professionals/{id}/services
{
"service_ids": ["uuid-1", "uuid-2"],
"overrides": {
"uuid-1": { "custom_duration": 40, "custom_price": 50.00 }
}
}
Schedule Rules
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/schedule-rules?professional_id=X |
Regras de horario |
Sim |
| POST |
/api/v1/schedule-rules |
Criar regra |
Sim |
| PUT |
/api/v1/schedule-rules/{id} |
Atualizar regra |
Sim |
| DELETE |
/api/v1/schedule-rules/{id} |
Remover regra |
Sim |
| POST |
/api/v1/schedule-rules/copy/{fromId}/{toId} |
Copiar regras entre profissionais |
Sim |
POST /api/v1/schedule-rules
{
"professional_id": "uuid-prof",
"day_of_week": 1,
"start_time": "08:00",
"end_time": "18:00",
"break_start": "12:00",
"break_end": "13:00",
"is_active": true
}
day_of_week: 0=segunda, 1=terca, 2=quarta, 3=quinta, 4=sexta, 5=sabado, 6=domingo
Schedule Exceptions
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/schedule-exceptions?month=2026-04 |
Excecoes do mes |
Sim |
| POST |
/api/v1/schedule-exceptions |
Criar bloqueio ou dia extra |
Sim |
| PUT |
/api/v1/schedule-exceptions/{id} |
Atualizar excecao |
Sim |
| DELETE |
/api/v1/schedule-exceptions/{id} |
Remover excecao |
Sim |
POST /api/v1/schedule-exceptions
{
"professional_id": "uuid-prof",
"date": "2026-04-21",
"start_time": null,
"end_time": null,
"reason": "Feriado Tiradentes",
"exception_type": "block"
}
exception_type: block (bloqueio) ou extra (dia extra trabalhando)
Availability
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/availability |
Slots disponiveis |
Nao* |
GET /api/v1/availability
?professional_id=uuid-prof&service_id=uuid-svc&date=2026-04-20
Resposta:
{
"date": "2026-04-20",
"professional": "Carlos",
"service": "Corte Masculino",
"duration": 30,
"slots": [
{ "start": "08:00", "end": "08:30" },
{ "start": "08:30", "end": "09:00" },
{ "start": "09:00", "end": "09:30" }
]
}
Appointments
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/appointments |
Listar agendamentos |
Sim |
| GET |
/api/v1/appointments/{id} |
Detalhe do agendamento |
Sim |
| POST |
/api/v1/appointments |
Criar agendamento |
Sim |
| PUT |
/api/v1/appointments/{id} |
Atualizar agendamento |
Sim |
| POST |
/api/v1/appointments/{id}/confirm |
Confirmar |
Sim |
| POST |
/api/v1/appointments/{id}/cancel |
Cancelar |
Sim |
| POST |
/api/v1/appointments/{id}/complete |
Marcar concluido |
Sim |
| POST |
/api/v1/appointments/{id}/noshow |
Marcar no-show |
Sim |
| POST |
/api/v1/appointments/{id}/reschedule |
Reagendar |
Sim |
GET /api/v1/appointments
?date=2026-04-20&status=scheduled&professional_id=uuid&client_id=uuid
POST /api/v1/appointments
{
"client_id": "uuid-client",
"professional_id": "uuid-prof",
"service_id": "uuid-svc",
"start_at": "2026-04-20T10:00:00-03:00",
"notes": "Cliente prefere maquina zero"
}
POST /api/v1/appointments/{id}/cancel
{
"reason": "Cliente solicitou cancelamento"
}
Clients
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/clients |
Listar/buscar clientes |
Sim |
| GET |
/api/v1/clients/{id} |
Detalhe + historico |
Sim |
| POST |
/api/v1/clients |
Criar cliente |
Sim |
| PUT |
/api/v1/clients/{id} |
Atualizar cliente |
Sim |
| GET |
/api/v1/clients/{id}/appointments |
Agendamentos do cliente |
Sim |
| GET |
/api/v1/clients/{id}/payments |
Pagamentos do cliente |
Sim |
GET /api/v1/clients
?search=Joao&page=1&per_page=20
POST /api/v1/clients
{
"name": "Joao Silva",
"phone": "82999998888",
"email": "joao@example.com",
"cpf": "123.456.789-00",
"birth_date": "1990-05-15",
"notes": "Alergico a determinados produtos"
}
Payments
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/payments |
Extrato do mes |
Sim |
| POST |
/api/v1/payments |
Registrar pagamento manual |
Sim |
| POST |
/api/v1/payments/pix |
Gerar cobranca PIX (AbacatePay) |
Sim |
| POST |
/api/v1/payments/webhook/abacatepay |
Webhook AbacatePay |
Nao* |
GET /api/v1/payments
?month=2026-04&status=paid&client_id=uuid
POST /api/v1/payments
{
"appointment_id": "uuid-appt",
"client_id": "uuid-client",
"amount": 45.00,
"method": "pix",
"description": "Corte Masculino - Carlos"
}
method: pix, cash, credit_card, debit_card
Reports
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/reports/dashboard |
KPIs resumo |
Sim |
| GET |
/api/v1/reports/occupancy |
Ocupacao por profissional |
Sim |
| GET |
/api/v1/reports/revenue |
Receita por periodo |
Sim |
| GET |
/api/v1/reports/noshow |
Taxa de no-show |
Sim |
| GET |
/api/v1/reports/clients/inactive |
Clientes inativos (remarketing) |
Sim |
| GET |
/api/v1/reports/services/popular |
Servicos mais agendados |
Sim |
GET /api/v1/reports/dashboard
{
"appointments_today": 12,
"appointments_month": 145,
"revenue_month": 6525.00,
"occupancy_rate": 0.73,
"noshow_rate": 0.08,
"new_clients_month": 18
}
Parametros comuns
?month=2026-04
?period=week|month|quarter|year
?professional_id=uuid (opcional, filtra por profissional)
Public Booking
Endpoints publicos — sem autenticacao. Identificados pelo {slug} da organizacao.
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/public/book/{slug} |
Dados da org para booking |
Nao |
| GET |
/api/v1/public/book/{slug}/services |
Servicos disponiveis |
Nao |
| GET |
/api/v1/public/book/{slug}/professionals |
Profissionais para o servico |
Nao |
| GET |
/api/v1/public/book/{slug}/availability |
Slots disponiveis |
Nao |
| POST |
/api/v1/public/book/{slug}/appointments |
Cliente cria agendamento |
Nao |
| POST |
/api/v1/public/book/{slug}/cancel |
Cliente cancela via token |
Nao |
GET /api/v1/public/book/{slug}
{
"name": "Barbearia do Joao",
"logo_url": "https://...",
"phone": "82999998888",
"timezone": "America/Sao_Paulo",
"currency": "BRL"
}
GET /api/v1/public/book/{slug}/professionals
GET /api/v1/public/book/{slug}/availability
?professional_id=uuid-prof&service_id=uuid-svc&date=2026-04-20
POST /api/v1/public/book/{slug}/appointments
{
"service_id": "uuid-svc",
"professional_id": "uuid-prof",
"start_at": "2026-04-20T10:00:00-03:00",
"client_name": "Maria Santos",
"client_phone": "82988887777",
"client_email": "maria@example.com",
"notes": "Primeira vez"
}
Resposta:
{
"appointment_id": "uuid-appt",
"cancel_token": "tok_abc123",
"cancel_url": "https://agenda.digitalface.dev.br/book/barbearia-do-joao/cancel?token=tok_abc123"
}
Integrations
| Metodo |
Endpoint |
Descricao |
Auth |
| POST |
/api/v1/integrations/connect |
Conectar ChatDigi ou ByClinic |
Sim |
| GET |
/api/v1/integrations/status |
Status das integracoes |
Sim |
| POST |
/api/v1/integrations/webhook |
Receber eventos externos |
Nao* |
| GET |
/api/v1/integrations/search/clients |
Buscar cliente por telefone |
Sim |
| GET |
/api/v1/integrations/search/appointments |
Buscar agendamentos por telefone |
Sim |
| POST |
/api/v1/integrations/action/book |
Agendar via produto externo |
Sim* |
POST /api/v1/integrations/connect
{
"product": "chatdigi",
"api_key_local": "key-agenda-para-chatdigi",
"api_key_remote": "key-chatdigi-para-agenda",
"api_url": "https://api.chatdigi.com.br",
"webhook_url": "https://api.agenda.digitalface.dev.br/api/v1/integrations/webhook",
"features": ["reminders", "booking_bot", "remarketing"]
}
product: chatdigi ou byclinic
Loyalty
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/api/v1/loyalty/config |
Configuracao do programa de fidelidade |
Sim |
| PUT |
/api/v1/loyalty/config |
Atualizar configuracao |
Sim |
| GET |
/api/v1/loyalty/clients/{id} |
Pontos e historico do cliente |
Sim |
Health
| Metodo |
Endpoint |
Descricao |
Auth |
| GET |
/health |
Health check da API |
Nao |
{
"status": "ok",
"service": "Agenda",
"version": "1.0.0",
"db": "connected",
"redis": "connected"
}
Resumo por Grupo
| Grupo |
Endpoints |
Prefix |
| Auth |
6 |
/api/v1/auth/ |
| Organization |
4 |
/api/v1/organization/ |
| Services |
5 |
/api/v1/services/ |
| Professionals |
6 |
/api/v1/professionals/ |
| Schedule Rules |
5 |
/api/v1/schedule-rules/ |
| Schedule Exceptions |
4 |
/api/v1/schedule-exceptions/ |
| Availability |
1 |
/api/v1/availability/ |
| Appointments |
9 |
/api/v1/appointments/ |
| Clients |
6 |
/api/v1/clients/ |
| Payments |
4 |
/api/v1/payments/ |
| Reports |
6 |
/api/v1/reports/ |
| Public Booking |
6 |
/api/v1/public/book/ |
| Integrations |
6 |
/api/v1/integrations/ |
| Loyalty |
3 |
/api/v1/loyalty/ |
| Health |
1 |
/health |
| Total |
~72 |
|