Conclui a tela atual das boas-vindas
POST/api/welcome/progress
- Auth
- Exige token
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
A pessoa pendente conclui a tela `step` (a atual). Com regras, exige `rulesAccepted: true` (o aceite fica registrado com a data e o texto aceito). Com vídeo enviado e "Continuar só depois do vídeo", exige `videoFinished: true`. Os campos da tela vão em `fields` (`{ chave: valor }`) com as validações de sempre (422 por campo, `errors[].param` = `fields.<chave>`); um campo obrigatório da tela precisa terminar preenchido. A última tela conclui as boas-vindas e dispara o gatilho "Concluiu as boas-vindas" (`member.welcome_completed`). Repetir uma tela já concluída devolve o estado atual; pular uma tela é 409.
Headers
| Nome | Tipo | Descrição |
|---|---|---|
X-CommunityIdopcional | string (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
| Nome | Tipo | Descrição |
|---|---|---|
stepobrigatório | integer | ≥ 0 |
rulesAcceptedopcional | boolean | |
videoFinishedopcional | boolean | |
fieldsopcional | object |
Respostas
| Código | Descrição |
|---|---|
200 | O estado depois da tela. |
401 | Token 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`). |
409 | A pessoa não está pendente (`welcome.notPending`: equipe, concluída, pulada, desligada) ou a tela não é a atual (`welcome.stepOutOfOrder`). |
422 | Regras sem aceite (`welcome.rulesNotAccepted`), vídeo não assistido (`welcome.videoNotFinished`) ou campo inválido (um erro por campo). |
Exemplo com curl
curl -X POST "https://api.memberfy.net/api/welcome/progress" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"step":0}'