/notificationEnviar correo electrónico
Describe cómo enviar un correo electrónico con POST /notification, sus parámetros, respuesta y límite de solicitudes.
Descripción
Una vez que tu dirección remitente esté verificada, puedes enviar correos electrónicos con la API de Mensajería.
POST /notificationParámetros del cuerpo
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| channel | string | Sí | Tipo de canal de entrega por el cual se enviará el mensaje: "SMS", "EMAIL", "PUSH", "RCS", "WHATSAPP". Para correo se ingresa el valor "EMAIL". |
| request | object | Sí | Contenido del mensaje. |
| request.from | string | Sí | Dirección de correo electrónico verificada del remitente. |
| request.to | string | Sí | Dirección de correo electrónico del destinatario. |
| request.message | string | Sí | Contenido del correo electrónico (puede ser texto plano o HTML). |
| request.subject | string | Sí | Línea de asunto del correo electrónico. |
| request.externalId | string | No | Identificador alfanumérico utilizado con fines de informes. |
| request.clientId | string | No | Identificador único del usuario que puede usarse con fines de informes. Te sirve para identificar de forma única la dirección de destino en tus sistemas. Es similar a externalId y te será devuelto si solicitas callbacks que contengan cambios de estado de los mensajes que envíes. |
| callbacks | array | No | Una o más URLs de webhook (separadas por coma) para notificar el estado de la entrega del mensaje. Tu endpoint debe aceptar el método HTTP POST y recibir un cuerpo JSON. Una vez procesado un correo, su estado se publicará en tu URL de callback. Para ver la lista completa y el significado de cada estado, consulta la sección Estado del Correo Electrónico. |
Ejemplo de solicitud
{
"channel": "EMAIL",
"request": {
"from": "service@service.com",
"to": "email@service.com",
"message": "¡Hola, esta es una nueva promoción para noviembre!",
"subject": "Asunto del Correo Electrónico"
},
"callbacks": ["https://tu-servidor.com?id=123"]
}Respuesta
La API de Mensajería publica el mensaje en la cola de la API de Correo Electrónico; por esta razón la respuesta genera el segmento "meta".
{
"meta": {
"timestamp": 1642531254980,
"transactionId": "077da1d0-e089-487e-aed0-59534ba2d9f5",
"explain": "Send Notification"
}
}| Campo | Descripción |
|---|---|
| meta | Metadatos relacionados con la llamada en sí. |
| meta.timestamp | Marca de tiempo de la llamada. Identifica cuándo se envió el mensaje. |
| meta.transactionId | ID de transacción de la llamada; ayuda a nuestros equipos a localizar problemas más rápidamente. |
| meta.explain | Mensaje útil sobre la operación o la llamada. |
Límite de solicitudes
El número total de llamadas a la API que el usuario puede hacer al endpoint POST /notification en un tiempo determinado está limitado. Si el usuario supera el límite, no podrá enviar otra solicitud hasta que se cumpla el tiempo establecido. Transcurrido el tiempo, el contador se reinicia.
En el ejemplo del manual, el usuario puede enviar 2 solicitudes en 300 segundos (5 minutos). Al enviar una tercera solicitud dentro de ese rango, se genera el código HTTP 429 y el cuerpo de la respuesta incluye:
"errors": { "reason": "Too Many Requests" }Pasado el tiempo requerido, el contador vuelve a 2 y el usuario puede enviar dos solicitudes de nuevo en 5 minutos.
Encabezados de respuesta
ratelimit-limit: 2
ratelimit-policy: 2;w=300
ratelimit-remaining: 1
ratelimit-reset: 5m0s| Encabezado | Descripción |
|---|---|
| RateLimit-Limit | Devuelve el número de solicitudes restantes para el cliente en la ventana de tiempo. |
| RateLimit-Remaining | Devuelve la cuota restante en la ventana actual. |
| RateLimit-Reset | Devuelve el tiempo restante en la ventana actual, especificado en segundos. |
| RateLimit-Policy | Devuelve la política de cuota, según el párrafo 2.1 del borrador IETF. El formato es, por ejemplo, 2 solicitudes en 300 segundos. |