Pular para conteúdo

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

?service_id=uuid-svc

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