VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Notificações e newsletter

Newsletter

Inscreve um e-mail na newsletter da loja, confirma a inscrição pelo link e cancela, pelo e-mail ou pelo link da campanha.

A newsletter é a lista de e-mails que recebe as campanhas da loja. Qualquer pessoa pode se inscrever, com ou sem conta: o rodapé do site, um bloco de captura e a página de cadastro usam estas rotas. Elas são públicas, sem token.

Pontos principais
  • Depende do módulo newsletter. Com o módulo desligado, as quatro rotas respondem 403 module_disabled.
  • A confirmação dupla é opcional e a loja decide. Ligada, a inscrição nasce P (pendente) e a pessoa só recebe campanhas depois de clicar no link do e-mail; desligada, nasce A (ativa).
  • Inscrever é um "upsert" por e-mail: o mesmo endereço nunca duplica, e quem tinha cancelado volta à lista. Com a dupla confirmação ligada, inscrever de novo um endereço que já está ativo o devolve a P até que o link seja clicado outra vez.
  • Cancelar nunca revela se o e-mail estava na lista: a resposta é sempre 200.
  • O e-mail é guardado em minúsculas e sem espaços nas pontas.
Pendente (P)→Ativa (A)→Cancelada (U)
statusSignificado
PPendente: aguarda o clique no link de confirmação (só com confirmação dupla).
AAtiva: recebe campanhas.
UCancelada: não recebe campanhas.
POST/api/v1/storefront/newsletter/subscribePública

Inscrever um e-mail

Corpo da requisição

emailstringobrigatório
E-mail da pessoa. Precisa ser um endereço válido.
namestring
Nome da pessoa, para personalizar campanhas. Opcional. Um nome vazio não apaga o que já estava gravado.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/storefront/newsletter/subscribe" \
  -H "Content-Type: application/json" \
  -d '{"email":"maria.souza@example.com","name":"Maria Souza"}'

Resposta

200Inscrição registrada
json
{
  "message": "subscribed successfully",
  "status": "P",
  "subscriber": {
    "id": "4c3b2a19-0f8e-4d7c-b6a5-948372615049",
    "email": "maria.souza@example.com",
    "name": "Maria Souza",
    "status": "P",
    "source": "storefront_block",
    "ip_address": "203.0.113.10",
    "subscribed_at": "2026-10-11T20:00:00Z",
    "created_at": "2026-10-11T20:00:00Z"
  }
}

Campos da resposta

messagestring
Texto fixo subscribed successfully (em inglês, como o servidor devolve).
statusstring
PA
P quando falta confirmar pelo e-mail, A quando a inscrição já está ativa. É o que decide a mensagem da sua tela.
subscriber.iduuid
Id do inscrito.
subscriber.emailstring
E-mail em minúsculas.
subscriber.namestring
Nome gravado. Pode ser vazio.
subscriber.statusstring
PA
Mesmo valor do status de cima.
subscriber.sourcestring
Origem da inscrição. Por esta rota, sempre storefront_block.
subscriber.ip_addressstring
IP de quem se inscreveu, quando disponível.
subscriber.subscribed_atstring
Quando se inscreveu (RFC 3339). É renovado a cada nova inscrição.
subscriber.unsubscribed_atstring
Quando cancelou. Ausente quem acabou de se inscrever.
subscriber.created_atstring
Quando o registro foi criado (RFC 3339).

Erros

StatusQuandoCorpo
400JSON inválido.{"error":"invalid request body","detail":"..."}
400email vazio.{"error":"email is required"}
400email com formato inválido.{"error":"invalid email format"}
403Módulo newsletter desligado.{"error":"module_disabled","module":"newsletter"}
500Falha ao gravar.{"error":"failed to subscribe","detail":"..."}
Inscrever de novo muda o estado

Chamar subscribe para um e-mail que já está A (ativo) e a loja usa confirmação dupla devolve o inscrito a P e gera um novo link de confirmação. Chamar para um e-mail U (cancelado) o reinscreve. Como a rota é pública, não a chame sem o consentimento da pessoa, e não use subscribe como "garantir que está inscrito" em um fluxo de login.

GET/api/v1/storefront/newsletter/confirmPública

Confirmar a inscrição pelo link

O link de confirmação enviado por e-mail aponta para uma página da loja, que chama esta rota com o token.

Parâmetros de consulta

tokenstringobrigatório
Token do link de confirmação (um UUID). Vale uma vez.
bash
curl "$BASE_URL/api/v1/storefront/newsletter/confirm?token=$CONFIRM_TOKEN"
200Inscrição confirmada
json
{ "message": "confirmed" }

Erros

StatusQuandoCorpo
400Sem token.{"error":"invalid or expired confirmation token"}
400Token desconhecido, já usado, mal formado ou de quem não está pendente.{"error":"invalid or expired confirmation token","detail":"..."}
403Módulo newsletter desligado.{"error":"module_disabled","module":"newsletter"}
POST/api/v1/storefront/newsletter/unsubscribePública

Cancelar a inscrição pelo e-mail

Corpo da requisição

emailstringobrigatório
E-mail a cancelar. Precisa ter formato válido.
bash
curl -X POST "$BASE_URL/api/v1/storefront/newsletter/unsubscribe" \
  -H "Content-Type: application/json" \
  -d '{"email":"maria.souza@example.com"}'
200Cancelamento processado
json
{ "message": "unsubscribed successfully" }

Erros

StatusQuandoCorpo
400JSON inválido.{"error":"invalid request body","detail":"..."}
400email vazio.{"error":"email is required"}
400email com formato inválido.{"error":"invalid email format"}
403Módulo newsletter desligado.{"error":"module_disabled","module":"newsletter"}
GET/api/v1/storefront/newsletter/unsubscribePública

Cancelar pelo link da campanha

É o link de cancelamento que vai no rodapé de cada campanha. Ele leva um token único por inscrito, de modo que a pessoa cancela com um clique, sem digitar o e-mail.

Parâmetros de consulta

tokenstringobrigatório
Token de cancelamento do inscrito, vindo do link do e-mail.
bash
curl "$BASE_URL/api/v1/storefront/newsletter/unsubscribe?token=$UNSUBSCRIBE_TOKEN"
200Cancelamento processado
json
{ "message": "unsubscribed successfully" }

Erros

StatusQuandoCorpo
403Módulo newsletter desligado.{"error":"module_disabled","module":"newsletter"}

Esta rota não devolve outros erros: token ausente, desconhecido ou já usado também respondem 200.

Cancelamento sempre devolve sucesso

As duas formas de cancelar respondem 200 unsubscribed successfully mesmo que o e-mail ou o token não existam, para ninguém descobrir quem está na lista. A única exceção é o formato de e-mail inválido, que dá 400. Se você precisa saber se a pessoa estava mesmo inscrita, use o painel da loja.

Veja também

  • Preferências de notificação
  • Caixa de entrada de avisos
  • Erros
Anterior
Preferências de notificação
Próxima
WhatsApp: conexão e configuração
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Erros
  • Erros
  • Erros
  • Veja também