Pular para o conteúdo

Marcar uma sessão com um anfitrião

POST/api/networking/sessions

Auth
Exige token
Chave de API:
networking:write
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

Quem marca só precisa abrir o espaço (sem passo de entrada, desde 2026-10-29); o anfitrião precisa estar `ACTIVE` no lado anfitrião (ou simétrico). A sessão é sempre gratuita e passa pelo motor do Agendamento, na agenda do anfitrião no espaço (mesmo `.ics`, lembrete, cancelamento). `reason` (motivo) é obrigatório. Com `sessionTypeId`, a duração é a do tipo; sem ele, `durationMinutes` precisa ser uma das `durations` do espaço (padrão: `defaultDuration`). Com `requestApproval = ALWAYS` (ou `HOST_CHOOSES` e o tipo com `requiresApproval`) nasce `PENDING_APPROVAL`: o horário fica segurado, o anfitrião recebe o pedido por e-mail (categoria Networking) e aceita ou recusa; sem aceite, os dois recebem a confirmação com `.ics`. Recusas: 403 `spaceAccessDenied` (quem marca não abre o espaço); 403 `notParticipant` (a equipe removeu quem marca do programa); 409 `hostUnavailable`, 409 `hostBusy`/`conflict` (horário ocupado, com `data.nextSlots`), 409 `personBusy` (quem marca ou o anfitrião já tem sessão ativa, de Networking ou de Agendamento, como anfitrião ou participante, que se sobrepõe); 422 `weeklyLimit`, `pairLimit`, `minNotice`, `horizon`, `durationNotAllowed`, `sessionTypeDuration`. Sobreposição e limites são checados sob a trava por perfil do motor: duas marcações ao mesmo tempo não furam o limite.

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
spaceIdobrigatóriostring (uuid)
hostMemberIdobrigatóriostring (uuid)
sessionTypeIdopcionalstring (uuid)
startsAtobrigatóriostringISO 8601; sem fuso, vale o da comunidade.
durationMinutesopcionalinteger
reasonobrigatóriostringmax 1000

Respostas

CódigoDescrição
201Sessão marcada (ou pedido enviado).
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.
422Regra do programa (limite, antecedência, horizonte, duração) ou valor que não serve.
500Erro interno do servidor.

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/networking/sessions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"spaceId":"00000000-0000-0000-0000-000000000000","hostMemberId":"00000000-0000-0000-0000-000000000000","startsAt":"2026-11-04T15:00","reason":"string"}'