POSTEnviar e-mail
Envia uma mensagem avulsa a um destinatário, com corpo livre ou a partir de um modelo da loja.
Use esta operação para disparar um e-mail que não nasce de um evento da loja: um aviso manual a um cliente, um teste de configuração do SMTP, uma comunicação pontual de um sistema externo. A mensagem sai pelo provedor de e-mail configurado da loja, com o remetente padrão (ou o que você informar em from), e fica registrada no log de entrega.
A chamada é síncrona: o servidor conversa com o provedor e só responde depois. A resposta traz o nome do provedor e uma transcrição curta do diálogo (log), útil para entender por que uma mensagem "enviada com sucesso" pode não ter saído de fato.
/api/v1/admin/emailAdminEnviar um e-mail avulso
Exige token de administrador com o privilégio manage_email ou manage_settings.
Corpo da requisição
tostringobrigatóriosubjectstringobrigatóriotemplate_name e o modelo salvo na loja tem assunto próprio, o assunto do modelo vence o seu.bodystringtemplate_name e template_data são enviados juntos e o modelo existe.template_namestringorder_status_processing). Só tem efeito junto com template_data.template_dataobjectreply_tostringfromstringfrom_namestringuser_iduuidlanguage não é informado.languagestringpadrão: pt-BRpt-BR, en).recipient_typestringpadrão: customercustomervendoradminallExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/email" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to": "maria.souza@example.com",
"subject": "Teste de envio",
"body": "<p>Olá, este é um teste.</p>"
}'Resposta
{
"message": "email sent",
"provider": "smtp",
"log": ["connected to smtp.example.com:587", "STARTTLS ok", "250 queued"]
}Campos da resposta
messagestringemail sent em sucesso.providerstringsmtp envia de verdade; console só escreve a mensagem no log do servidor (ambientes de teste).logarrayErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo não é JSON válido. | {"error":"invalid request body","detail":"..."} |
| 400 | to vazio. | {"error":"to is required"} |
| 400 | subject vazio. | {"error":"subject is required"} |
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | O usuário não tem o privilégio de e-mail. | {"error":"insufficient privileges","privilege_required_any":["manage_email","manage_settings"]} |
| 500 | O provedor recusou ou a conexão falhou. O corpo traz provider e log para diagnóstico. | {"error":"failed to send email","message":"...","detail":"...","provider":"smtp","log":["..."]} |