Cria um campo customizado
POST/api/member-fields
- Auth
- Jeton requis
- Qui peut l’appeler:
- owner
- admin
- moderator
- Clé d’API:
- members:write
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
Owner e admin. A `key` é gerada do rótulo (sem acento, minúsculas, espaço e hífen viram `_`) e ganha `_2`, `_3`… quando já existe na comunidade (inclusive em campo apagado). Sem `order`, o campo vai para o fim. `SELECT` exige `options` (texto ou `{ value?, label }`; sem `value`, ele sai do rótulo). Até 100 campos por comunidade. **Na página do membro:** `profileVisibility` diz se outros membros veem o campo no perfil: `NEVER` ("Nunca no perfil": só a pessoa e a equipe, em `fields`), `MEMBER_CHOOSES` ("A pessoa escolhe", começando em Membros; a pessoa pode passar para Privado) ou `ALWAYS` ("Sempre no perfil", para quem é da comunidade). Campo de cadastro nunca vai para a página pública. `null` = automático: campos de telefone, e-mail e data e os rotulados como dado sensível (CPF e outros documentos, registro profissional, endereço, nascimento, nacionalidade, salário, dados bancários, senha, saúde, biometria, sexo/gênero, estado civil, filiação, religião, orientação, raça/etnia, política, sindicato; nas 5 línguas, sem acento e sem caixa) ficam `NEVER`, os outros `MEMBER_CHOOSES`. O `NEVER` automático fica gravado no campo: renomear um campo nunca o abre (um rótulo ou tipo novo sensível volta o campo para `NEVER`, mesmo com escolha anterior, a não ser que a mesma requisição reafirme `MEMBER_CHOOSES` ou `ALWAYS`; um rótulo novo comum mantém o `NEVER`). `null` num campo que está `NEVER` o mantém `NEVER`: abrir pede `MEMBER_CHOOSES` ou `ALWAYS` explícito. As respostas trazem `profileVisibility` (o valor que vale) e `profileVisibilityAutomatic`. Só owner e admin (moderador: 403). Valor inválido: 400 `memberFields.errors.profileVisibilityInvalid`. `MULTI_SELECT` (múltipla escolha) exige de 2 a 50 `options`, cada rótulo com até 80 caracteres, e aceita `minSelections` e `maxSelections` (inteiros de 1 a 50, mínimo até o máximo e até o número de opções). O valor do membro é uma lista de `value` das opções. `required` equivale a mínimo 1; com `minSelections` e sem `required`, o membro pode deixar vazio, mas, se marcar, marca ao menos o mínimo. `minSelections` ou `maxSelections` em outro tipo: 400. Tipos e o valor gravado: `EMAIL` (minúsculas), `PHONE` (E.164, `+5541999998888`; sem `+`, vale o país da comunidade), `URL` (só http/https; sem esquema ganha `https://`). Só em `TEXT`: `pattern` é uma expressão regular (sintaxe RE2, sem retrovisor nem lookaround, até 200 caracteres) que o valor inteiro precisa casar (é ancorada com `^…
En-têtes
| Nom | Type | Description |
|---|---|---|
X-CommunityIdfacultatif | string (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
| Nom | Type | Description |
|---|---|---|
labelobligatoire | string | max 120 |
typeobligatoire | TEXT | NUMBER | DATE | SELECT | BOOLEAN | EMAIL | PHONE | URL | MULTI_SELECT | |
optionsfacultatif | object[] | |
minSelectionsfacultatif | integer | Só em MULTI_SELECT. · ≥ 1, ≤ 50 |
maxSelectionsfacultatif | integer | Só em MULTI_SELECT. · ≥ 1, ≤ 50 |
requiredfacultatif | boolean | |
askOnSignupfacultatif | boolean | |
profileVisibilityfacultatif | NEVER | MEMBER_CHOOSES | ALWAYS | Na página do membro. null = automático. |
patternfacultatif | string | max 200 |
patternMessagefacultatif | string | max 120 |
orderfacultatif | integer | ≥ 0 |
Réponses
| Statut | Description |
|---|---|
201 | Campo criado. |
400 | Requisição inválida — falha de validação. |
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`). |
403 | Autenticado, mas sem permissão para esta operação. |
409 | Conflito com o estado atual do recurso. |
422 | `pattern` inválido, longo demais, recusado pelo RE2 ou enviado em tipo que não é `TEXT`. |
500 | Erro interno do servidor. |
Exemple curl
curl -X POST "https://api.memberfy.net/api/member-fields" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"label":"string","type":"TEXT"}'