Saltar al contenido

Registrar consentimento de SMS ou WhatsApp atestado pela equipe

POST/api/contact-consent/attestations

Auth
Requiere token
Clave de API:
members:write
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Owner e admin do `X-CommunityId`. Grava, para um ou vários membros (até 200), o consentimento de SMS e/ou WhatsApp que a comunidade **declara ter coletado** (`attestation: true` é obrigatório; a responsabilidade pela declaração é da comunidade), e opcionalmente o telefone. É o mesmo princípio da coluna de consentimento da importação de membros. Cada linha fica em `ContactConsent` com origem `team`, a data da atestação, quem atestou, `attestationMethod` (como foi coletado) e a versão vigente do texto; `consentedAt` é o `collectedAt` informado (ou agora). Cada membro gravado entra no log da comunidade (`member.contact_consent_attested`). `purpose`: `service` (o texto de serviço do canal), `marketing` (o de novidades) ou `all` (o texto do interruptor único do canal, `sms-all:`/`whatsapp-all:`, que cobre os dois). Telefone: o número informado aqui (gravado ou igual ao atual) **já pode receber** SMS e WhatsApp (`sendable: true`), sem a confirmação por código, enquanto continuar sendo o telefone do perfil; se o telefone mudar depois por outro caminho, o número novo não herda a atestação. Ele **não** fica verificado (`phoneVerified` continua `false`): códigos de acesso e de telefone só vão para número confirmado pela própria pessoa. Um número verificado diferente nunca é trocado (`phoneResult: keptVerified`); admin não mexe no perfil de owner (`ownerProtected`). A pessoa que saiu do canal (opt-out) ou retirou o consentimento daquela finalidade não é recadastrada (`withdrawn`). O membro pode retirar o consentimento a qualquer momento, e opt-out, horário de silêncio, limites e teto de preço continuam valendo. `status` por membro: `recorded`, `alreadyConsented` (já havia consentimento vivo na versão atual), `withdrawn`, `notFound`, `invalidPhone` (nada gravado) ou `ownerProtected` (nada gravado).

Headers

NombreTipoDescripción
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
attestationobligatoriotrueA comunidade declara que coletou o consentimento de cada membro da lista. Obrigatório e `true`.
channelsobligatoriosms | whatsapp[]
purposeobligatorioservice | marketing | all
collectedAtopcionalstring (date-time)Opcional. Quando o consentimento foi coletado (não pode ser no futuro).
collectionMethodopcionalstringOpcional. Como foi coletado (ex.: "ficha de inscrição do evento"). · max 200
membersobligatorioobject[]
members[].memberIdobligatoriostring (uuid)
members[].phoneopcionalstringOpcional. Número nacional (país da comunidade) ou E.164. Gravado não verificado, mas já pode receber mensagens (atestado). · max 30

Respuestas

CódigoDescripción
200Resultado por membro.
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`).
403Autenticado, mas sem permissão para esta operação.

Ejemplo con curl

curl -X POST "https://api.memberfy.net/api/contact-consent/attestations" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"attestation":true,"channels":["sms"],"purpose":"service","members":[{}]}'