Saltar para o conteúdo

Muda os avisos desta comunidade

PUT/api/members/me/notice-preferences

Auth
Exige token
Chave de API:
members:write
X-CommunityId
X-CommunityId Envie 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.** `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

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
emailopcionalobject
email.shortcutopcionalall | campaigns-off | none
email.categoriesopcionalobject
smsopcionalobject
sms.enabledopcionalboolean
sms.categoriesopcionalobject
sms.marketingopcionalboolean
sms.textVersionopcionalstringUm botão para serviço e marketing: a versão de `sms.all` em `GET /api/contact-consent/texts`. Exige `enabled`.
whatsappopcionalobjectComo `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.enabledopcionalboolean
whatsapp.categoriesopcionalobject
whatsapp.momentsopcionalobject
whatsapp.marketingopcionalboolean
whatsapp.textVersionopcionalstringUm botão para serviço e marketing: a versão de `whatsapp.all` em `GET /api/contact-consent/texts`. Exige `enabled`.

Respostas

CódigoDescrição
200Preferências resultantes. Quando a religada tirou um SAIR, a `message` diz que vale para todas as comunidades.
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`).
409Conflito 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 '{}'