Saltar para o conteúdo

Remarca a reserva (outro horário do mesmo recurso)

POST/api/bookings/{bookingId}/reschedule

Auth
Exige token
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

Dono da reserva, anfitrião da agenda e equipe (owner, admin, moderador, financeiro), enquanto a reserva está ativa e **ainda não começou** (400 `startsAt`). Informe `startsAt` e/ou `endsAt` ou `durationMinutes`; o que faltar fica como está (a duração se mantém). Valem as mesmas regras de criar: horário de funcionamento, bloco, antecedência, bloqueios e conflito (a própria reserva não conflita com ela mesma), com a mesma trava; 409 traz `data.nextSlots`. Os créditos são acertados na mesma transação pelo novo custo: mais caro debita a diferença (sem saldo, 409 com `required/balance/shortfall`), mais barato estorna a diferença; reserva em cortesia não mexe no livro. Sem mudança, 400. O convite de calendário é atualizado (mesmo `UID`, `SEQUENCE` maior), o lembrete de 1 hora volta a valer e o e-mail `changed` sai pela fila. Remarcar não é cancelar e não perde crédito, mas quando o próprio dono remarca uma reserva que já está dentro da janela de cancelamento, a reserva fica marcada `lateCancel: true` e um cancelamento posterior perde os créditos conforme `lateCancelLosesCredits`. Se o plano está em atraso ou pausado e a variável de plataforma `credits.useWhileSubscriptionInactive` está desligada, a diferença a debitar é recusada (409, `credits`). Anfitrião (que não é equipe) não pode fazer a remarcação que encarece a reserva do outro (403).

Parâmetros

NomeOndeTipoDescrição
bookingIdobrigatóriopathstring (uuid)

Headers

NomeTipoDescrição
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corpo da requisição application/json

NomeTipoDescrição
startsAtopcionalstringHora local da comunidade sem sufixo, ou instante com fuso.
endsAtopcionalstring
durationMinutesopcionalinteger≥ 5, ≤ 10080
attendeeCountopcionalinteger≥ 1

Respostas

CódigoDescrição
200Remarcada. `charged` e `refunded` trazem a diferença de créditos; `balanceAfter` só quando houve acerto.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409Conflito com o estado atual do recurso.
500Erro interno do servidor.

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/bookings/<bookingId>/reschedule" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'