Rascunho

Endpoints

Todos os endpoints da v1 num relance, com os formatos mais comuns de requisição e resposta.

O contrato legível por máquina fica no repositório em packages/openapi/openapi.yaml (OpenAPI 3.1).

Agenda

MétodoPathEscopoDescrição
GET/slotsslots:readHorários disponíveis para um serviço
POST/holdsbookings:writeCriar pré-reserva de 10 minutos
POST/holds/{id}/confirmbookings:writeConfirmar (ou pending_payment se exigir sinal)
DELETE/holds/{id}bookings:writeLiberar pré-reserva
GET/bookingsbookings:readListar (filtros: from, to, status, resource_id, customer_id)
POST/bookingsbookings:writePré-reserva + confirmação numa chamada
GET / PATCH/bookings/{id}bookings:read / writeLer, atualizar notas ou dados de cadastro
POST/bookings/{id}/cancelbookings:writeCancelar
POST/bookings/{id}/reschedulebookings:writeMudar para um novo início
POST/bookings/{id}/check-inbookings:writeMarcar chegada
POST/bookings/{id}/no-showbookings:writeMarcar falta
MétodoPathEscopo
GET / POST/servicesconfig:read / config:write
GET / POST/resourcesconfig:read / config:write
GET/resource-groupsconfig:read
POST/schedules/{id}/overridesconfig:write

Clientes e conversas

MétodoPathEscopo
GET/customerscustomers:read
DELETE/customers/{id}customers:read + papel owner (anonimiza, LGPD)
GET/conversationsmessages:read
GET / POST/conversations/{id}/messagesmessages:read / messages:write
POST/conversations/{id}/handoffmessages:write

Plataforma

MétodoPathEscopo
GET/mequalquer
GET / POST/webhook-endpointswebhooks:manage
GET/eventsbookings:read

Exemplo: slots

GET /v1/slots?service_id=svc_laser&from=2026-10-20T09:00:00-03:00&to=2026-10-20T20:00:00-03:00&around=2026-10-20T18:00:00-03:00
{
  "data": [
    { "start": "2026-10-20T17:45:00-03:00", "end": "2026-10-20T18:30:00-03:00", "resource_ids": ["res_ana", "res_laser1", "res_room2"] },
    { "start": "2026-10-20T18:45:00-03:00", "end": "2026-10-20T19:30:00-03:00", "resource_ids": ["res_carla", "res_laser1", "res_room1"] }
  ],
  "unavailable_reason": null
}

Exemplo: objeto de agendamento

{
  "id": "bkg_7Qx1",
  "status": "confirmed",
  "service_id": "svc_laser",
  "start": "2026-10-20T17:45:00-03:00",
  "end": "2026-10-20T18:30:00-03:00",
  "party_size": 1,
  "customer": { "id": "cus_31", "name": "Marina", "phone": "+5521988887777", "locale": "pt" },
  "allocations": [
    { "resource_id": "res_ana", "start": "2026-10-20T17:45:00-03:00", "end": "2026-10-20T18:40:00-03:00", "units": 1 },
    { "resource_id": "res_laser1", "start": "2026-10-20T17:45:00-03:00", "end": "2026-10-20T18:40:00-03:00", "units": 1 },
    { "resource_id": "res_room2", "start": "2026-10-20T17:45:00-03:00", "end": "2026-10-20T18:40:00-03:00", "units": 1 }
  ],
  "payment": { "status": "paid", "amount_cents": 5000 },
  "source": "whatsapp",
  "created_at": "2026-10-19T11:02:13-03:00"
}

As alocações incluem o buffer (aqui 10 minutos depois do serviço).