Pede para entrar numa comunidade com cadastro com aprovação
POST/api/auth/signup-request
- Auth
- Public
- Who can call it:
- owner
- admin
- API key:
- No API key accepted
- X-CommunityId
X-CommunityIdSend the X-CommunityId of the community the operation happens in.
Numa comunidade com **cadastro com aprovação** (`signupEnabled` e `signupRequiresApproval`), o candidato pede para entrar com nome, e-mail, idioma, telefone opcional e os campos do cadastro (`fields`, como em `POST /api/auth/register`), **sem senha**. O pedido vai para a fila da equipe (`GET /api/signup-requests`); nada vira membro até owner ou admin aprovar, e a aprovação manda o e-mail com o link para criar a senha.
A resposta é **sempre a mesma** (202, "Pedido enviado"), crie o pedido ou não: e-mail que já é membro, que já tem pedido vivo, que foi recusado ou expirou nos últimos 30 dias, ou que passou do próprio limite (3 pedidos por dia) recebe a mesma resposta e nada é criado. O login nunca revela que existe um pedido.
Comunidade com cadastro fechado: 403. Cadastro aberto sem aprovação: 409 (use `POST /api/auth/register`). Comunidade suspensa pela Memberfy: 403 com a mensagem genérica (`code = COMMUNITY_SUSPENDED`). Campo do cadastro faltando ou inválido: 422, um erro por campo. Exige `altcha`. Limites: 30 cadastros e pedidos por IP em 15 minutos e 10 pedidos por IP por hora (429 com `Retry-After`).
Headers
| Name | Type | Description |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request body application/json
| Name | Type | Description |
|---|---|---|
altcharequired | string | O payload do widget ALTCHA sobre um desafio de `GET /api/auth/challenge`. Uso único. · max 8192 |
fullNamerequired | string | max 200 |
emailrequired | string (email) | |
languageoptional | string | Idioma do candidato (pt-BR, pt-PT, en-US, es-ES, es-MX, es-AR, it-IT, de-DE, de-AT, de-CH). Sem ele, o `Accept-Language`, depois o da comunidade. Os e-mails do pedido saem nesse idioma. |
phoneoptional | string | Opcional, sem confirmação (vai para a conta se o pedido for aprovado). Inválido: 400 com param = phone. |
phoneCountryoptional | string | |
fieldsoptional | object | Os campos do cadastro da comunidade, `{ key: valor }` (`GET /api/member-fields/signup`). Aparecem para a equipe na fila e vão para a conta na aprovação. |
Responses
| Status | Description |
|---|---|
202 | Pedido recebido (resposta genérica; não diz se o pedido foi criado). |
400 | Requisição inválida — falha de validação. |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
409 | O cadastro desta comunidade é aberto, sem aprovação (use `POST /api/auth/register`). |
422 | Campo do cadastro obrigatório faltando, fora da lista ou inválido; ou `altcha` ausente, inválido, vencido ou já usado. |
429 | Tentativas demais. O header `Retry-After` diz em quantos segundos tentar de novo. |
500 | Erro interno do servidor. |
503 | A API não consegue verificar o ALTCHA agora (chave não configurada em produção). `param = altcha`. |
curl example
curl -X POST "https://api.memberfy.net/api/auth/signup-request" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"altcha":"string","fullName":"string","email":"[email protected]"}'