API Backend — Chronos
Visao Geral
O backend expoe BFF (/bff/*) para o dashboard, Public (/bff/public/*) para booking e Webhooks (/webhooks/*) para integracoes.
Base URL: http://localhost:5050
BFF — Auth
| Metodo |
Path |
Descricao |
| POST |
/bff/auth/login |
Login |
| POST |
/bff/auth/signup |
Cadastro |
| POST |
/bff/auth/refresh |
Refresh token |
| GET |
/bff/auth/me |
Dados do usuario + tenants |
| POST |
/bff/auth/select-tenant |
Selecionar tenant |
BFF — Appointments
| Metodo |
Path |
Descricao |
| GET |
/bff/appointments |
Listar agendamentos (filtro por data, profissional) |
| GET |
/bff/appointments/{id} |
Obter agendamento |
| POST |
/bff/appointments |
Criar agendamento (dashboard) |
| PUT |
/bff/appointments/{id}/status |
Atualizar status |
Status Transitions
PENDING → CONFIRMED → IN_PROGRESS → COMPLETED
PENDING → CANCELLED
CONFIRMED → CANCELLED
CANCELLED → CONFIRMED (desfazer)
BFF — Services
| Metodo |
Path |
Descricao |
| GET |
/bff/services |
Listar servicos |
| GET |
/bff/services/{id} |
Obter servico |
| POST |
/bff/services |
Criar servico |
| PUT |
/bff/services/{id} |
Atualizar |
| DELETE |
/bff/services/{id} |
Deletar |
BFF — Professionals
| Metodo |
Path |
Descricao |
| GET |
/bff/professionals |
Listar profissionais |
| GET |
/bff/professionals/{id} |
Obter profissional |
| POST |
/bff/professionals |
Criar |
| PUT |
/bff/professionals/{id} |
Atualizar |
| DELETE |
/bff/professionals/{id} |
Deletar |
BFF — Customers
| Metodo |
Path |
Descricao |
| GET |
/bff/customers |
Listar clientes |
| GET |
/bff/customers/{id} |
Obter cliente |
| POST |
/bff/customers |
Criar |
| PUT |
/bff/customers/{id} |
Atualizar |
| DELETE |
/bff/customers/{id} |
Deletar |
| GET |
/bff/customers/search |
Buscar por nome/email/phone |
BFF — Schedules
| Metodo |
Path |
Descricao |
| GET |
/bff/schedules/professional/{id} |
Agenda do profissional |
| POST |
/bff/schedules |
Criar agenda |
| PUT |
/bff/schedules/{id} |
Atualizar |
| DELETE |
/bff/schedules/{id} |
Deletar |
| POST |
/bff/schedules/exceptions |
Criar excecao |
| DELETE |
/bff/schedules/exceptions/{id} |
Deletar excecao |
Modos de Agenda
- INTERVALS: Horarios com intervalo regular (ex: a cada 30 min)
- FIXED_SLOTS: Horarios fixos predefinidos
Excecoes
BLOCKED — Horario bloqueado
VACATION — Ferias
allDay — Dia inteiro ou parcial
recurring — Recorrente (ex: aniversario)
BFF — Locations
| Metodo |
Path |
Descricao |
| GET |
/bff/locations |
Listar locais |
| POST |
/bff/locations |
Criar local |
| PUT |
/bff/locations/{id} |
Atualizar |
| DELETE |
/bff/locations/{id} |
Deletar |
BFF — Rooms
| Metodo |
Path |
Descricao |
| GET |
/bff/rooms |
Listar salas |
| GET |
/bff/rooms/{id} |
Obter sala |
| POST |
/bff/rooms |
Criar sala |
| PUT |
/bff/rooms/{id} |
Atualizar |
| DELETE |
/bff/rooms/{id} |
Deletar |
| POST |
/bff/rooms/{id}/bookings |
Reservar sala |
| POST |
/bff/rooms/bookings/{id}/cancel |
Cancelar reserva |
| Metodo |
Path |
Descricao |
| GET |
/bff/promotions |
Listar promocoes |
| POST |
/bff/promotions |
Criar |
| PUT |
/bff/promotions/{id} |
Atualizar |
| DELETE |
/bff/promotions/{id} |
Deletar |
| POST |
/bff/promotions/validate |
Validar codigo |
BFF — Dashboard
| Metodo |
Path |
Descricao |
| GET |
/bff/dashboard/summary |
Stats do dia/semana/mes |
| GET |
/bff/dashboard/calendar |
Calendario com agendamentos |
| GET |
/bff/dashboard/upcoming |
Proximos agendamentos |
BFF — Tenant
| Metodo |
Path |
Descricao |
| GET |
/bff/tenant |
Info do tenant |
| PUT |
/bff/tenant |
Atualizar tenant |
| GET |
/bff/tenant/settings |
Config do tenant |
| PUT |
/bff/tenant/settings |
Atualizar config |
Public API (Booking)
Sem autenticacao. Acesso publico para agendamento online.
| Metodo |
Path |
Descricao |
| GET |
/bff/public/c/{slug} |
Info do tenant |
| GET |
/bff/public/c/{slug}/services |
Servicos disponiveis |
| GET |
/bff/public/c/{slug}/professionals |
Profissionais visiveis |
| GET |
/bff/public/c/{slug}/p/{profSlug} |
Perfil do profissional |
| GET |
/bff/public/c/{slug}/availability |
Slots disponiveis |
| POST |
/bff/public/c/{slug}/appointments |
Criar agendamento |
| POST |
/bff/public/c/{slug}/promotions/validate |
Validar promocao |
Availability Query Params
?serviceId={id}&date={YYYY-MM-DD}&professionalId={id?}&locationId={id?}
Create Appointment Body
{
"customerName": "Joao Silva",
"customerEmail": "joao@example.com",
"customerPhone": "+55 11 98765-4321",
"items": [{ "serviceId": "...", "quantity": 1 }],
"date": "2026-02-20",
"startTime": "10:00",
"locationId": "...",
"professionalId": "...",
"notes": "Primeira vez",
"promotionCode": "DESC10"
}
Webhooks
WhatsApp (Herald)
POST /webhooks/whatsapp/incoming (sem auth)
{
"ownerRef": "chronos-{tenantId}",
"phoneFrom": "5511987654321",
"message": "CONFIRMAR",
"timestamp": "2026-02-20T10:00:00Z"
}
Autenticacao
BFF: Authorization: Bearer {jwt} + X-Tenant-Id: {tenantId}
Public: Sem autenticacao
Webhooks: Sem autenticacao (paths publicos no AuthFilter)