Developer Portal

Criar um Appointment

Contrato completo de request e response para uma reserva.

Atualizado em 01/09/2026

Request

{
  "locationId": "019...",
  "customer": {
    "name": "Maria Silva",
    "phone": "+5531999999999",
    "email": "maria@example.com"
  },
  "items": [{
    "serviceId": "019...",
    "professionalId": "019...",
    "startsAt": "2026-09-05T14:00:00-03:00"
  }],
  "notes": "Consulta de avaliação"
}

Response

{
  "id": "019...",
  "status": "PENDING",
  "locationId": "019...",
  "timezone": "America/Sao_Paulo",
  "appointmentDate": "2026-09-05",
  "notes": "Consulta de avaliação",
  "customer": {
    "id": "019...",
    "name": "Maria Silva",
    "phone": "+5531999999999",
    "email": "maria@example.com"
  },
  "items": [{
    "serviceId": "019...",
    "serviceName": "Consulta",
    "professionalId": "019...",
    "professionalName": "Ana Souza",
    "startsAt": "2026-09-05T17:00:00.000Z",
    "endsAt": "2026-09-05T18:00:00.000Z",
    "durationMinutes": 60,
    "amount": "150.00",
    "currency": "BRL"
  }],
  "createdAt": "2026-09-01T18:00:00.000Z",
  "updatedAt": "2026-09-01T18:00:00.000Z"
}

O create revalida a seleção e o slot. Se outra reserva vencer a concorrência, a operação retorna 409 SLOT_UNAVAILABLE; faça nova consulta de availability e não altere a Idempotency-Key de uma tentativa cujo resultado ainda é desconhecido.