Pular para o conteúdo

Paginação, datas e dinheiro

Listas que podem crescer (agendamentos, clientes, comandas) são paginadas por número de página:

Parâmetro Padrão Faixa
page 1 a partir de 1
pageSize 20 de 1 a 100

Valores fora da faixa são ajustados ao limite mais próximo (pedir pageSize=500 devolve páginas de 100). A resposta traz os itens, a página, o tamanho e o total; as listas de agendamentos e de comandas trazem também o fuso do salão (timeZone). Agendamentos vêm do mais recente ao mais antigo, e comandas da mais nova para a mais antiga:

Janela do terminal
curl -s -G "https://api.pegavez.com.br/api/salons/$SALON_ID/appointments" \
-H "Authorization: Bearer $PEGAVEZ_TOKEN" \
--data-urlencode "from=2026-11-01" \
--data-urlencode "to=2026-11-30" \
--data-urlencode "page=2" \
--data-urlencode "pageSize=100"
{
"timeZone": "America/Sao_Paulo",
"items": [ { "id": "…", "startsAt": "2026-11-03T14:00:00-03:00" } ],
"page": 2,
"pageSize": 100,
"total": 287
}

Para ler tudo, avance page até page * pageSize >= total. Como a lista pode mudar entre uma página e outra, use sempre um filtro de período e trate itens repetidos pelo id. Para acompanhar mudanças continuamente, prefira webhooks a varrer as listas.

O salão funciona no fuso America/Sao_Paulo, e as listas devolvem o fuso no campo timeZone.

  • Instantes (início de agendamento, criação, chegada…) são strings ISO 8601 com offset: 2026-11-03T14:00:00-03:00. Ao enviar, inclua sempre o offset (ou Z para UTC): sem ele, o horário pode ser interpretado em outro fuso. Segundos são ignorados no início do agendamento.
  • Datas sem hora (filtros from, to, date, a data de movimento das comandas) são dias de calendário no fuso do salão, no formato AAAA-MM-DD. from=2026-11-01&to=2026-11-30 cobre de 1º de novembro 00:00 a 30 de novembro 23:59 em São Paulo.
  • As respostas da API trazem os instantes com o offset do salão. Os webhooks são a exceção: lá os instantes vêm em UTC (+00:00).
  • Ao exibir horários, converta para o fuso do salão. Não suponha -03:00 fixo: use uma biblioteca de fuso (TimeZoneInfo no .NET, Intl/Temporal no JavaScript, zoneinfo no Python).
Janela do terminal
# Agenda de um dia específico
curl -s -G "https://api.pegavez.com.br/api/salons/$SALON_ID/appointments" \
-H "Authorization: Bearer $PEGAVEZ_TOKEN" \
--data-urlencode "from=2026-11-03" \
--data-urlencode "to=2026-11-03"

Valores em dinheiro são reais (BRL), como número JSON com até 2 casas decimais: 59.9 ou 59.90 significam R$ 59,90. Não há campo de moeda: é sempre BRL.

{ "totalPrice": 89.9, "listTotalPrice": 99.9 }

Some e compare valores com um tipo decimal (decimal no C#, Decimal no Python, centavos inteiros ou uma biblioteca decimal no JavaScript), nunca com ponto flutuante binário.

  • Campos em camelCase (startsAt, professionalId).
  • Enums como texto, no nome em inglês com inicial maiúscula: "cancelledBy": "Salon", "status": "InService". Trate valores desconhecidos sem quebrar: um enum pode ganhar valores novos sem mudar de versão (veja compatibilidade).
  • Identificadores são UUIDs.
  • Campos ausentes e campos null significam a mesma coisa: sem valor.

PUT /api/salons/{salonId}/customers/{customerId} substitui o cadastro inteiro: mande todos os campos, não só os que mudaram. Campo omitido vale como vazio (null ou false) e apaga o que estava lá. Para alterar um campo, leia o cliente com GET, mude o que precisa e envie tudo de volta.