Referência da API¶
A API de Email Transacional da InteSys (powered by FrontEngine) é uma API HTTP baseada em JSON com endpoints no estilo RPC. Cada ação possui seu próprio endpoint. Todas as requisições utilizam HTTPS com método POST e parâmetros codificados em JSON.
URL Base: https://app1.frontengine.net
Autenticação¶
Todas as requisições à API requerem o cabeçalho X-Server-API-Key com sua chave de API do servidor.
Obtenha sua chave de API no portal do cliente InteSys ou entre em contato com o suporte.
Mantenha Sua Chave de API em Segredo
Nunca exponha sua chave de API em código do lado do cliente, repositórios públicos ou logs. Rotacione as chaves imediatamente se houver comprometimento.
Erros de Autenticação¶
| Erro | Descrição |
|---|---|
InvalidServerAPIKey | O token fornecido é inválido. A resposta inclui o valor do token rejeitado. |
ServerSuspended | O servidor de email associado às suas credenciais foi suspenso. |
Formato de Resposta¶
Todas as respostas da API seguem esta estrutura:
| Campo | Tipo | Descrição |
|---|---|---|
status | string | success, parameter-error ou error |
time | float | Tempo de processamento no servidor em segundos |
flags | object | Metadados adicionais (paginação, etc.) |
data | object | Payload da resposta ou detalhes do erro |
Códigos de Status HTTP¶
| Código | Significado |
|---|---|
200 | Requisição processada (verifique o campo status para o resultado) |
301 / 308 | Redirecionamento (geralmente http para https) |
500 | Erro inesperado no servidor |
503 | Serviço indisponível (manutenção) |
API de Envio¶
Enviar Mensagem¶
Envie um email transacional com controle total sobre cabeçalhos, corpo e anexos.
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
to | array | Sim | Endereços de email dos destinatários (máx. 50) |
cc | array | Não | Endereços em cópia (máx. 50) |
bcc | array | Não | Endereços em cópia oculta (máx. 50) |
from | string | Sim | Endereço de email do remetente (deve ser um domínio verificado) |
sender | string | Não | Cabeçalho do remetente (se diferente do from) |
subject | string | Sim | Assunto do email |
tag | string | Não | Tag de classificação para filtragem nas análises |
reply_to | string | Não | Endereço de resposta |
plain_body | string | Não* | Conteúdo do email em texto simples |
html_body | string | Não* | Conteúdo do email em formato HTML |
attachments | array | Não | Anexos de arquivo (veja abaixo) |
headers | object | Não | Cabeçalhos de email personalizados |
bounce | boolean | Não | Se esta mensagem é uma resposta de rejeição |
*Pelo menos um entre html_body ou plain_body deve ser fornecido.
Objeto de Anexo:
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome do arquivo (ex.: fatura.pdf) |
content_type | string | Tipo MIME (ex.: application/pdf) |
data | string | Conteúdo do arquivo codificado em Base64 |
Códigos de Erro:
| Erro | Descrição |
|---|---|
ValidationError | Falha geral na validação de parâmetros |
NoRecipients | Nenhum endereço de destinatário fornecido |
NoContent | Nem html_body nem plain_body foram fornecidos |
TooManyToAddresses | Mais de 50 endereços em to |
TooManyCCAddresses | Mais de 50 endereços em cc |
TooManyBCCAddresses | Mais de 50 endereços em bcc |
FromAddressMissing | Nenhum endereço from especificado |
UnauthenticatedFromAddress | Domínio de envio não verificado para este servidor |
AttachmentMissingName | Anexo fornecido sem nome de arquivo |
AttachmentMissingData | Anexo fornecido sem dados |
Exemplo: curl¶
curl -X POST https://app1.frontengine.net/api/v1/send/message \
-H "X-Server-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Confirmação do Pedido #12345",
"html_body": "<h1>Obrigado pelo seu pedido!</h1><p>O pedido #12345 foi confirmado.</p>",
"plain_body": "Obrigado pelo seu pedido! O pedido #12345 foi confirmado.",
"tag": "order-confirmation",
"reply_to": "[email protected]"
}'
Exemplo: Python¶
import requests
response = requests.post(
"https://app1.frontengine.net/api/v1/send/message",
headers={
"X-Server-API-Key": "your-api-key",
"Content-Type": "application/json",
},
json={
"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Bem-vindo!",
"html_body": "<h1>Bem-vindo à nossa plataforma!</h1>",
},
)
print(response.json())
Exemplo: Node.js¶
const response = await fetch(
"https://app1.frontengine.net/api/v1/send/message",
{
method: "POST",
headers: {
"X-Server-API-Key": "your-api-key",
"Content-Type": "application/json",
},
body: JSON.stringify({
from: "[email protected]",
to: ["[email protected]"],
subject: "Bem-vindo!",
html_body: "<h1>Bem-vindo à nossa plataforma!</h1>",
}),
}
);
const data = await response.json();
console.log(data);
Envio Raw (RFC2822)¶
Envie uma mensagem RFC2822 pré-formatada. Útil para aplicações que constroem suas próprias mensagens MIME.
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
mail_from | string | Sim | Endereço do remetente do envelope |
rcpt_to | array | Sim | Endereços de destinatários para entrega |
data | string | Sim | Mensagem RFC2822 codificada em Base64 |
bounce | boolean | Não | Se esta é uma resposta de rejeição |
Códigos de Erro:
| Erro | Descrição |
|---|---|
UnauthenticatedFromAddress | Domínio do remetente não verificado para este servidor |
API de Mensagens¶
Obter Detalhes da Mensagem¶
Recupere detalhes completos sobre uma mensagem enviada.
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer | Sim | O ID da mensagem |
_expansions | array/boolean | Não | Solicitar campos de dados adicionais. Passe true para todas as expansões ou um array com os nomes das expansões. |
Códigos de Erro:
| Erro | Descrição |
|---|---|
MessageNotFound | Nenhuma mensagem encontrada com o ID fornecido |
Obter Tentativas de Entrega¶
Recupere todas as tentativas de entrega de uma mensagem específica.
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | integer | Sim | O ID da mensagem |
Códigos de Erro:
| Erro | Descrição |
|---|---|
MessageNotFound | Nenhuma mensagem encontrada com o ID fornecido |
Próximos Passos¶
- Autenticação — Configure SPF, DKIM e DMARC para seu domínio de envio
- Webhooks — Receba notificações de eventos de entrega em tempo real