Documentación técnica

Esta herramienta es ideal para el área de tecnología, ya que permite enviar emails transaccionales o comerciales de manera masiva. Funciona por medio de un servicio web que cuenta con la responsabilidad de comunicar de modo seguro a prospectos, clientes o proveedores información de interés. Los canales de comunicación son seguros entre todos los componentes que constituyen el sistema TEA Lite.

A continuación se detalla la documentación técnica para el hacer uso de los métodos expuestos para comunicarse con los servicios de TEA Lite.


Envío de correos

Método para el envío de correo electrónico sin adjunto (attachment).

Endpoint 

Método Endpoint Resource
POST https://localhost /send

.

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json

.

Parámetros

Atributos Uso Descripción
bodyContentHTML Requerido Contenido del body en formato HTML, codificación JSON. TEA Lite espera que este HTML ya se encuentre totalmente personalizado.
bodyContentPlainText Requerido Contenido de body en texto plano para multipart Email, codificación JSON.
campaignId Requerido Identificador de campaña a la que pertenece el correo electrónico.
outboundId Requerido Identificador único del mensaje.
recipient Requerido

Dirección de correo electrónico a la que cual se realizará la entrega del mensaje.

replyTo Requerido Dirección de correo electrónico al cual se hace entrega los 'reply' de los usuarios finales.
replyToName Requerido Nombre de dueño de la cuenta de replyTo
sender Requerido Dirección de correo electrónico mediante la cual se hace el envío del mensaje
senderName Requerido Nombre del destinatario del del correo electrónico (dueño de la cuenta “sender”).
sourceSystem Requerido Identificador para relacionar los mensajes enviados
subjectContentPlainText Requerido Asunto con el cual se hace entrega del correo electrónico, debe de estar en formato de texto plano, encoding JSON
listUnsubscribe Opcional Header de list unsubscribe en el formato mailto:<email address>, https:<URL>
recipientName Opcional Nombre del destinatario del correo electrónico
sendAt Opcional Fecha en que se debe de enviar el mensaje, formato: YYYYMMDDHHMMSS
type Opcional Indica el tipo de flujo que debe de seguir el ESP cuando procese el mensaje

Notas

  • La petición se realiza 1 a 1.

  • Para rastrear los links (click) se necesita agregar la clase (class="_track") en las etiquetas de tipo <a href=””> dentro del código HTML.

  • La forma en que se hace la inserción del código para el Web View Link es mediante la identificación de la clase (class="_webview") en las etiquetas de tipo <a href=””> dentro del código HTML.

  • view").

Ejemplo de la petición:

https://localhost/send

Body

{
"type": "email",
"outboundId": "1",
"campaignId": "1",
"sourceSystem": "IDSystemaEnvio",
"sender": "envios@tralixenvios.com",
"senderName": "Envios",
"replyTo": "envios@tralixenvios.com",
"replyToName": "Envios",
"recipient": "email@tralix.com",
"recipientName": "Email",
"subjectContentPlainText": "Envio",
"bodyContentHTML":"HMTL",
"bodyContentPlainText": "Texto alternativo"
}

Response 200:

Correo enviado.
202 -  OK  { "messageId":"1" }

Response 400:

Error temporal
400 -  { "errorCategory":"Retriable"
             "errorText":"Servicio temporalmente inaccesible"}

Response 500:

Error fatal
500 -  { "errorCategory":"Permanent"
             "errorText":"El recipient es requerido"}


Consulta de Rechazos

Método para obtener los rechazos (Soft Bounces y Hard Bounces).

Endpoint 

Método Endpoint Resource
GET https://localhost /bounces

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json

Parámetros

Atributos Uso Descripción
sourceSystem

Requerido

Sistema lógico que se requiere para recibir rebotes y quejas relacionadas con mensajes salientes.

***************

startTimeUTC

Requerido

Timestamp to begin with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS

endTimeUTC

Requerido

Timestamp to end with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS

ó
startTime

Requerido

Timestamp to begin with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS

endTime

Requerido

Timestamp to end with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS

tz

***************

Requerido

Timezone for parameters startTime and endTime

page

Opcional

Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 0 a "n...".

Notas

  • El objetivo de este método es responder con cada una de las respuestas y código de entrega de cada correo cuando contiene "Soft Bounces", "Hard Bounces".

Ejemplo de la petición:

https://[localhost]/bounces?startTimeUTC=20240401000000&endTimeUTC=20240410235959&sourceSystem=1

Response 200:

OK

{
        "messageId": "1",
        "recipient": "noexite@tralix.com",
        "errorCode": "550",
        "errorText": "550-5.1.1 The email account that you tried to reach does not exist. Please try\n550-    5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. For more information, go to\n550 5.1.1 https://support.google.com/mail/?p=NoSuchUser qk15-20020a05687055cf00b0022e76902ffesi3915647oac.304 - gsmtp",
        "type": "Hard",
        "timestamp": "20240410184814"
},

Response 400:

Error temporal
403 - Forbidden ({"errorText":"CredentialsRejected","errorCategory":"Permanent"})
400 -  { "errorCategory":"Retriable"
             "errorText":"Servicio temporalmente inaccesible"}

Response 500:

Error fatal
500 -  Internal Server Error
500 -  { "errorCategory":"Permanent"
             "errorText":"El recipient es requerido"}


Consulta de Envíos

Método para obtiene el resultado de los envíos (Soft Bounces, Hard Bounces y Entregas exitosas).

Endpoint 

Método Endpoint Resource
GET https://localhost /responses

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json

Parámetros

Atributos Uso Descripción
sourceSystem Requerido

Logical system that is required to get bounces and complaints related to outbound messages)

campaignId Requerido

(Identificador de campaña a la que pertenece el correo electrónico.

*******************

startTimeUTC

Requerido

(Timestamp to begin with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS)

endTimeUTC Requerido

(Timestamp to end with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS)

ó

startTime Requerido

(Timestamp to begin with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS)

endTime Requerido

(Timestamp to end with query collected bounces on ESP side. Format: YYYYMMDDHHMMSS)

tz

*******************

Requerido (Timezone for parameters startTime and endTime)
Parámetros opcionales    
page Opcional (Indicates the result page in case of multiple pages. Possible values are 0 to n)

Notas 

  • El objetivo de este método es responder con cada una de las respuestas y código de entrega de cada correo cuando contiene Soft Bounces, Hard Bounces y Entregas exitosas.

Ejemplo de la petición:

https://[localhost]/responses?startTimeUTC=20240401000000&endTimeUTC=20240410235959&sourceSystem=1&campaignId=1

Response 200:

OK

{
        "messageId": "1",
        "recipient": "noexite@tralix.com",
        "errorCode": "550",
        "errorText": "550-5.1.1 The email account that you tried to reach does not exist. Please try\n550-    5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. For more information, go to\n550 5.1.1 https://support.google.com/mail/?p=NoSuchUser qk15-20020a05687055cf00b0022e76902ffesi3915647oac.304 - gsmtp",
        "type": "Hard",
        "timestamp": "20240410184814"
},

Response 400:

Error temporal
403 - Forbidden ({"errorText":"CredentialsRejected","errorCategory":"Permanent"})
400 -  { "errorCategory":"Retriable"
             "errorText":"Servicio temporalmente inaccesible"}

Response 500:

Error fatal
500 -  Internal Server Error
500 -  { "errorCategory":"Permanent"
             "errorText":"El recipient es requerido"}


Consulta de Interacciones

Método para recuperar los tipos de interacciones disponibles son: Opens y Clicks.

Endpoint 

Método Endpoint Resource
GET https://localhost

/interactions

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json

Parámetros

Atributos Uso Descripción

idCampaign

Requerido

Identificador de Campaña

type

Requerido

Tipo de interacción (CLICK,OPEN)

***************

startTimeUTC

Requerido

Fecha de inicio para la consulta de rebotes recopilados en UTC en el lado ESP.

(Formato: YYYYMMDDHHMMSS).

endTimeUTC

Requerido

Fecha final para la consulta de rebotes recopilados en UTC en el lado ESP.

(Formato: YYYYMMDDHHMMSS).

ó

 

 

startTime

Requerido

Marca de tiempo para comenzar con la consulta de rebotes recopilados en el lado del ESP. (Formato: YYYYMMDDHHMMSS).

endTime

Requerido

Marca de tiempo para finalizar con la consulta recopilada de rebotes en el lado del ESP

(Formato: YYYYMMDDHHMMSS).

tz

***************

Requerido

Zona horaria para los parámetros "startTime" y "endTime".

idMessage

Opcional

Identificador de mensaje

page

Opcional

Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 0 a "n...".

Ejemplo de la petición:

  • https://localhost/interactions?idCampaign=1&idMessage=1&type=CLICK
  • https://localhost/interactions?idCampaign=1&idMessage=1&type=OPEN

Response 200:

OK

Respuesta OK de una consultar: Open

{           

              "email": "test2@tralix.com",
              "timestamp": "20180713181049",
              "ip": "127.0.0.1",
              "idCampaign": "123456789",
              "idMessage": "000010011001",
              "link": null,
              "linkName": null,
              "type": "OPEN"

}

Respuesta OK de una consultar: Click

  {
              "email": "envios@tralix.com",
              "timestamp": "20240410183754",
              "ip": "localhost",
              "idCampaign": "1",
              "idMessage": "1",
              "link": "link",
              "linkName": null,
              "type": "CLICK",
             "sourceSystem": "1"
},
{
              "email": "envios@tralix.com",
              "timestamp": "20240410183950",
              "ip": "localhost",
              "idCampaign": "1",
              "idMessage": "1",
              "link": "link",
              "linkName": null,
              "type": "CLICK",
              "sourceSystem": "1"
}

Consulta de Desuscripciones

Método para recuperar las des-suscripciones por medio del sourceSystem

Endpoint 

Método Endpoint Resource
GET https://localhost

/unsubscribe

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json

Parámetros

Atributos Uso Descripción

sourceSystem

Requerido

Identificador para relacionar los mensajes enviados

idCampaign

Opcional

Identificador de Campaña

page

Opcional

Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 1 a "n...".

***************

startTimeUTC

Opcional

Fecha de inicio para la consulta de desuscripciones.

(Formato: YYYYMMDDHHMMSS).

endTimeUTC

Opcional

Fecha final para la consulta de desuscripciones.

(Formato: YYYYMMDDHHMMSS).

Ejemplo de la petición:

  • http://localhost:9001/unsubscribe?sourceSystem=MySourceSystem

Response 200:

OK

{
"page": 1,
"lastPage": true,
"unsubscribes": [
{
"recipient": "john.doe@tralix.com",
"idCampaign": "5566",
"idMessage": "777",
"dateRequest": "2024-05-16"
}
]
} 

Enviar correos con Adjuntos

Método para el envío de correo electrónico con adjuntos (attachment).

Endpoint 

Método Endpoint Resource
POST https://localhost

/sendWithAttachment

Autenticación y Headers

Headers Value
Authorization Basic {Token}
Content-type application/json
Content-type multipart/form-data

Parámetros

Atributos Uso Descripción

bodyContentHTML

Requerido

Contenido del body en formato HTML, codificación JSON. TEA espera que este HTML ya se encuentre totalmente personalizado

bodyContentPlainText

Requerido

Contenido de body en texto plano para multipart Email, codificación JSON

campaignId

Requerido

Identificador de campaña a la que pertenece el correo electrónico

outboundId

Requerido

Identificador único del mensaje

recipient

Requerido

Dirección de correo electrónico a la que cual se realizará la entrega del mensaje

replyTo

Requerido

Dirección de correo electrónico al cual se hace entrega los reply de los usuarios finales

replyToName

Requerido

Nombre de dueño de la cuenta de replyTo

sender

Requerido

Dirección de correo electrónico mediante la cual se hace el envío del mensaje

senderName

Requerido

Nombre del dueño de la cuenta “sender”

sourceSystem

Requerido

Identificador para relacionar los mensajes enviados

subjectContentPlainText

Requerido

Asunto con el cual se hace entrega del correo electrónico, debe de estar en formato de texto plano, encoding JSON)

listUnsubscribe

Opcional

Header de list unsubscribe en el formato mailto:<email address>, https:<URL>

recipientName

Opcional

Nombre del destinatario del correo electrónico

sendAt

Opcional

Fecha en que se debe de enviar el mensaje, formato: YYYYMMDDHHMMSS

type

Opcional

Indica el tipo de flujo que debe de seguir el ESP cuando procese el mensaje

Notas 

  • La petición se realiza 1 a 1

  • Para trackear los link (click) se necesita agregar la clase (class="_track") en las etiquetas de tipo <a href=””> dentro del HTML.

  • La forma en que se hace la inserción del código para el Web View Link es mediante la identificación de la clase (class="_webview") en las etiquetas de tipo <a href=””> dentro del código HTML.

  • Attachment: Los datos para enviar el email son los mismos que se requieren en el endpoint "/send" pero estos se deben de agregar al request como un form-data y el name debe de ser “data”.

    Se requiere agregar al request como un form-data y el name debe ser “attachment”, con el contenido del adjunto.

Ejemplo de la petición:

https://localhost/send

Body

{
"type": "email",
"outboundId": "1",
"campaignId": "1",
"sourceSystem": "IDSystemaEnvio",
"sender": "envios@tralixenvios.com",
"senderName": "Envios",
"replyTo": "envios@tralixenvios.com",
"replyToName": "Envios",
"recipient": "email@tralix.com",
"recipientName": "Email",
"subjectContentPlainText": "Envio",
"bodyContentHTML":"HMTL",

"bodyContentPlainText": "Texto alternativo"

}

Response 200:

OK
202 -  OK  { "messageId":"124" }

Response 400:

Error temporal
400 -  { "errorCategory":"Retriable"
             "errorText":"Servicio temporalmente inaccesible"}

Errores 400

{
"errorText": "Request size too big. Maximum request size is 2 MB.",
"errorCategory": "Permanent"
}

 

Errores 400

 

{
"errorText": "key not found: attachment",
"errorCategory": "Permanent"
}

Response500:

Error fatal
500 -  { "errorCategory":"Permanent"
             "errorText":"El recipient es requerido"}

 

 

No Comments
Back to top