Aller au contenu

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

POST/api/bookings/{bookingId}/reschedule

Auth
Jeton requis
Qui peut l’appeler:
owner
Clé d’API:
bookings:write
X-CommunityId
X-CommunityId Envoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.

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). `payWith` (`own` ou `company`) troca quem paga; pode vir sozinho, sem novo horário. Só o dono da reserva e a equipe (anfitrião: 403); `company` exige o vínculo vivo da pessoa da reserva com uma empresa não encerrada (403 / 409 em `payWith`). Na troca, quem pagava recebe tudo de volta e o novo pagador paga o custo inteiro do novo horário (`refunded` e `charged`). Sem `payWith`, a diferença vai para quem já pagava; quando é a empresa e a remarcação encarece, o vínculo e a empresa são conferidos de novo.

Paramètres

NomEmplacementTypeDescription
bookingIdobligatoirepathstring (uuid)

En-têtes

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

Corps de la requête application/json

NomTypeDescription
startsAtfacultatifstringHora local da comunidade sem sufixo, ou instante com fuso.
endsAtfacultatifstring
durationMinutesfacultatifinteger≥ 5, ≤ 10080
attendeeCountfacultatifinteger≥ 1
payWithfacultatifown | companyTroca quem paga os créditos. Omitido: continua quem pagava.

Réponses

StatutDescription
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; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`).
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409Conflito com o estado atual do recurso.
500Erro interno do servidor.

Exemple 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 '{}'