NAV Navbar
json

Introdução

Bem-vindo à API do envie.email! Aqui você encontrará os endpoints necessários para integrar rapidamente sua aplicação.

Para turbinar, além da documentação RESTful, disponibilizamos também alguns exemplos em JSON no painel. Para trocar a linguagem de programação (se disponível), basta clicar nas abas painel.

Caso seja cliente e ainda não possua os tokens de autenticação de API, solicite aqui. Dúvidas? Entre em contato conosco.

Autenticação

É necessário estar autenticado para poder usar a API. Passe os tokens public-key e private-key no cabeçalho.

Para utilizar a API do envie.email é necessário autenticar. A autenticação é realizada através dos tokens public-key e private-key, passados via Header. Nossa API requer que todas as requisições contenham os tokens no cabeçalho, conforme exemplo abaixo:

public-key: XXXXXXXXXXXXXXXXXXXX private-key: XXXXXXXXXXXXXXXXXXXX

Caso já seja cliente e ainda não tenha seus tokens, solicite através do nosso SAC.

Listas

Cria uma nova lista

Estrutura JSON a ser enviada:

{
  "general": {
    "name": "string",
    "description": "string"
  }
}

Estrutura JSON de confirmaçãoa a ser retornada:

{
  "status": "string",
  "list_uid": "string"
}

HTTP Request

POST /lists/create

Estrutura para criar uma lista de emails:

Parâmetro Descrição Obrigatório
name Nome da lista a ser criada Sim
description Descrição da lista a ser criada Sim

Recebe dados uma lista

Estrutura JSON a ser enviada:

{
  "list": "string"
}

Estrutura JSON da lista a ser retornada:

{
  "status": "string",
  "data": {
    "record": {
      "general": {
        "list_uid": "string",
        "name": "string",
        "display_name": "string",
        "description": "string"
      },
      "defaults": {
        "from_name": "string",
        "reply_to": "string",
        "subject": "string"
      },
      "notifications": {
        "subscribe": "string",
        "unsubscribe": "string",
        "subscribe_to": "string",
        "unsubscribe_to": "string"
      },
      "company": {
        "name": "string",
        "address_1": "string",
        "address_2": "string",
        "zone_name": "string",
        "city": "string",
        "zip_code": "string",
        "address_format": "string",
        "country": {
          "country_id": "string",
          "name": "string",
          "code": "string"
        },
        "zone": {
          "zone_id": "string",
          "name": "string",
          "code": "string"
        }
      }
    }
  }
}

HTTP Request

POST /lists/get

Estrutura para receber dados uma lista específica de emails:

{ "list": "string" }

Parâmetro Descrição Obrigatório
list UID da lista Sim

Receba informações de Listas

Estrutura JSON a ser retornada:

{
  "status": "string",
  "data": {
    "count": "string",
    "total_pages": 0,
    "current_page": 0,
    "next_page": 0,
    "records": [
      {
        "general": {
          "list_uid": "string",
          "name": "string",
          "display_name": "string",
          "description": "string"
        },
        "defaults": {
          "from_name": "string",
          "reply_to": "string",
          "subject": "string"
        },
        "notifications": {
          "subscribe": "string",
          "unsubscribe": "string",
          "subscribe_to": "string",
          "unsubscribe_to": "string"
        },
        "company": {
          "name": "string",
          "address_1": "string",
          "address_2": "string",
          "zone_name": "string",
          "city": "string",
          "zip_code": "string",
          "address_format": "string",
          "country": {
            "country_id": "string",
            "name": "string",
            "code": "string"
          },
          "zone": {
            "zone_id": "string",
            "name": "string",
            "code": "string"
          }
        }
      }
    ]
  }
}

Endpoint para receber informações de listas.

HTTP Request

GET /lists/show

Recebe uma lista específica

Estrutura JSON a ser retornada:

{
  "status": "string",
  "data": {
    "count": "string",
    "total_pages": 0,
    "current_page": 0,
    "records": [
      {
        "subscriber_uid": "string",
        "EMAIL": "string",
        "FNAME": "string",
        "LNAME": "string",
        "status": "string",
        "source": "string",
        "ip_address": "string",
        "date_added": "string"
      }
    ]
  }
}

Parâmetros POST

Opcional Descrição
UID UID da lista (composto por letras e números).

Transacionais

Envio

Exemplo de estrutura JSON para envio transacional:

{
  "to_name": "string",
  "to_email": "string",
  "from_name": "string",
  "from_email": "string",
  "reply_to_name": "string",
  "reply_to_email": "string",
  "subject": "string",
  "body": "string",
  "plain_text": "string",
  "attachments": [
    {
      "data": "string",
      "name": "string",
      "mime": "string"
    }
  ]
}

POST /singlesending/create

Estrutura para envio de email transacional:

Parâmetro Descrição Obrigatório
to_name Nome do destinatário Sim
to_email E-mail do destinatário Sim
from_name Nome do remetente Sim
from_email E-mail do remetente Sim
reply_to_name Nome do endereço de resposta Sim
reply_to_email E-mail de resposta Sim
subject Assunto Sim
body Mensagem, aceita marcações HTML Sim
plain_text Se não preenchido, o texto puro será gerado automaticamente Não
attachments Array com dados de anexos Não

Anexos

Estrutura de anexos (attachments):

Parâmetro Descrição Obrigatório
data arquivo codificado em base64 Sim
name nome do arquivo a ser salvo sem a extensão (a extensão será adicionada automaticamente de acordo com o MIME type). Não se pode repetir no mesmo email Sim
mime MIME Type do arquivo Sim

MIME Types

Por padrão os seguintes MIME Types são aceitos,isso quer dizer que se um outro tipo de MIME Type for utilizado, a requisição não será completada com sucesso. Caso precise utilizar um outro tipo de arquivo (MIME Type), entre em contato com o nosso suporte para habilitarmos.

MIME Type Tipo de Arquivo
application/pdf .pdf
application/zip .zip
text/plain .txt
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
application/excel .xls
image/jpeg .jpg
image/png .png

Webhooks

Abertura de Mensagem

Callback acionado quando há abertura da mensagem. Para o funcionamento, é obrigatório que a mensagem esteja em formato HTML entre as devidas tags <html><body></body></html>.

Se durante o post o callback receber um status diferente de 200, duas novas tentativas serão feitas.

Existem dois timestamp. O primeiro carrega o horário que ocorreu o evento de abertura e deverá ser considerado. O segundo, dentro de payload=>message carrega o horário que o e-mail foi enviado.

Estrutura JSON que será enviada:

{
  "event": "MessageLoaded",
  "timestamp": 0,
  "payload": {
    "ip_address": "string",
    "user_agent": "string",
    "message": {
      "id": 0,
      "to": "string",
      "from": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Callback acionado quando há cliques em links. Para o funcionamento, é obrigatório que a mensagem esteja em formato HTML entre as devidas tags <html><body></body></html>.

Existem dois timestamp. O primeiro carrega o horário que ocorreu o evento de abertura e deverá ser considerado. O segundo, dentro de payload=>message carrega o horário que o e-mail foi enviado.

Estrutura JSON que será enviada:

{
  "event": "MessageLinkClicked",
  "timestamp": 0,
  "payload": {
    "user_agent": "string",
    "url": "string",
    "token": "string",
    "ip_address": "string",
    "user_agent": "string",
    "message": {
      "id": 0,
      "to": "string",
      "from": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Enviado com Sucesso

Quando uma mensagem é entregue com sucesso ao destinatário.

Estrutura JSON que será enviada:

{
  "event": "MessageSent",
  "payload": {
    "output": "string",
    "details": "string",
    "message": {
      "id": 0,
      "to": "string",
      "from": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Falha Temporária (Bounce)

Quando uma mensagem a ser entregue está atrasada pois a primeira tentativa foi falha. Será enviado um callback a cada nova tentativa de entrega.

Estrutura JSON que será enviada:

{
  "event": "MessageDelayed",
  "timestamp": 0,
  "payload": {
    "details": "string",
    "output": "string",
    "message": {
      "id": 0,
      "to": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Falha Permanente (Bounce)

Quando uma mensagem a não pode ser entregue devido a um erro temporário do servidor de destino.

Estrutura JSON que será enviada:

{
  "event": "MessageDeliveryFailed",
  "timestamp": 0,
  "payload": {
    "details": "string",
    "output": "string",
    "message": {
      "id": 0,
      "to": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Em Blacklist (Temporário)

Quando uma mensagem sofreu uma recusa temporária e está em fila aguardando novas tentativas.

Estrutura JSON que será enviada:

{
  "event": "MessageHeld",
  "timestamp": 0,
  "payload": {
    "details": "string",
    "output": "string",
    "message": {
      "id": 0,
      "to": "string",
      "timestamp": 0,
      "tag": "string"
    }
  }
}

Erros

Os seguintes erros podem ser retornados pela API:

Código Significado
400 Bad Request -- Sua requisição é inválida.
401 Unauthorized -- Sua chave API está errada.
403 Forbidden -- O acesso é restrito.
404 Not Found -- Endpoint não encontrado.
405 Method Not Allowed -- Método não permitido.
406 Not Acceptable -- O formato da requisição não é JSON.
409 Conflict -- Email em blacklist.
429 Too Many Requests -- Você excedeu a quantidade de requisições por segundo!
500 Internal Server Error -- Ocorreu um problema interno. Tente outra vez.
503 Service Unavailable -- Serviço temporariamente indisponível - tente mais tarde.