Muda os avisos desta comunidade
PUT/api/members/me/notice-preferences
- Auth
- Exige token
- Chave de API:
- members:write
- X-CommunityId
X-CommunityIdEnvie o X-CommunityId da comunidade em que a operação acontece.
Qualquer papel, só a própria. `email` aceita `shortcut` e `categories` como `PUT /api/members/me/email-preferences`. `sms.enabled: true` religa o SMS (precisa do telefone confirmado: 409 `sms.phoneUnverified`; registra o consentimento de serviço na versão atual do texto, origem `profile`, quando falta); `false` desliga, como o link de saída. `sms.categories` liga e desliga por categoria. `sms.marketing` registra ou retira o consentimento de marketing (nada de marketing sai nesta fase). **Um botão por canal (serviço e marketing juntos):** mande `sms.textVersion` (ou `whatsapp.textVersion`) com a versão de `GET /api/contact-consent/texts` → `sms.all.version` (`whatsapp.all.version`) junto com `enabled`. `enabled: true` grava os dois consentimentos, serviço e marketing, com essa versão (origem `profile`) e tira o descadastro; `enabled: false` retira os dois e descadastra o canal. Com `textVersion`, o `marketing` do mesmo canal é ignorado. Só a versão atual é aceita, e só com `enabled` (400 com param = `sms.textVersion`/`whatsapp.textVersion`). Sem `textVersion`, os campos separados valem como antes. **Religar depois do SAIR (API-191).** `enabled: true` no canal também tira a parada que a pessoa mandou ao número da Memberfy (`globalOptOut` no `GET`), mas só no **telefone confirmado da própria pessoa** (sem ele, 409 `sms.phoneUnverified`); nunca no telefone de outra. A religada vale para **todas as comunidades** (o número é um só), e a `message` da resposta avisa isso. Fica registrada a prova: canal, telefone, perfil, data, IP e a versão do texto de consentimento, além do consentimento de serviço (origem `profile`). Se a operadora bloqueou o número (STOP do SMS), responde **409** `sms.globalOptOut.providerBlock` (`param = sms.enabled`) e nada muda: só responder START ao número religa.
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 |
|---|---|---|
emailopcional | object | |
email.shortcutopcional | all | campaigns-off | none | |
email.categoriesopcional | object | |
smsopcional | object | |
sms.enabledopcional | boolean | |
sms.categoriesopcional | object | |
sms.marketingopcional | boolean | |
sms.textVersionopcional | string | Um botão para serviço e marketing: a versão de `sms.all` em `GET /api/contact-consent/texts`. Exige `enabled`. |
whatsappopcional | object | Como `sms` (ligar exige telefone confirmado e grava o consentimento de WhatsApp, origem `profile`). `moments` liga e desliga cada momento (`GET` devolve a lista, com o padrão de cada um; chave desconhecida: 422 `whatsapp.momentInvalid`). `marketing` registra ou retira o consentimento de marketing do WhatsApp, que o momento `checkoutAbandoned` exige. |
whatsapp.enabledopcional | boolean | |
whatsapp.categoriesopcional | object | |
whatsapp.momentsopcional | object | |
whatsapp.marketingopcional | boolean | |
whatsapp.textVersionopcional | string | Um botão para serviço e marketing: a versão de `whatsapp.all` em `GET /api/contact-consent/texts`. Exige `enabled`. |
Respostas
| Código | Descrição |
|---|---|
200 | Preferências resultantes. Quando a religada tirou um SAIR, a `message` diz que vale para todas as comunidades. |
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`). |
409 | Conflito com o estado atual do recurso. |
Exemplo com curl
curl -X PUT "https://api.memberfy.net/api/members/me/notice-preferences" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{}'