API
API Version
Versión 1.14.7
API Changelog
Consulta los cambios realizados en la API de Mensagia y posibles métodos o atributos marcados como obsoletos (deprecated). Consultar Changelog
API Host
Todas las peticiones que se realicen a la API de Mensagia deben ser enviadas a la siguiente URL:
https://api.mensagia.com/v1
Interactuar con la API
Si quieres probar nuestra API de una manera rápida te recomendamos el uso de PostMan. Postman es una extensión de Google Chrome que permite interactuar con HTTP API's de forma sencilla a través de una interfaz amigable para construir peticiones y obtener respuestas.
Lenguaje | HTTP client libraries |
---|---|
PHP | cURL, Guzzle |
Python | urlLib2 + MultipartPostHandler |
Codigos de estado de respuesta HTTP
La API de Mensagia utiliza los Códigos de estado de respuesta HTTP más utilizados.
Puedes considerar todas las respuestas que no sean devueltas con un código HTTP 200
como un error.
Formato de respuestas de la API
Siempre que realices una petición correcta a la API obtendrás un JSON con el atributo data
y un código de respuesta HTTP 200
Si la petición es correcta, te devolveremos la siguiente estructura:
{
"data": {
}
}
Por el contrario, las peticiones incorrectas devolverán un JSON con el atributo error
y un código de respuesta diferente a HTTP 200
Si la petición es incorrecta, te devolveremos la siguiente estructura:
{
"error": {
"code": "ERROR-CODE",
"http_code": 400,
"message": "Error information"
}
}
En esta documentación encontrarás ejemplos para cada recurso de la API con las diferentes posibles respuestas HTTP al realizar una petición.
Como autentificarse en la API
Puedes autentificarte en la API de dos formas diferentes:
Realizar una petición con un token inválido o un token caducado generará el siguiente error:
{
"error": {
"code": "UNAUTHORIZED",
"http_code": 401,
"message": "Login required. You must provide a valid access token."
}
}
Con un token fijo (api_token)
Crea o edita un usuario de tipo API para obtener un token para conectarte a la API. Una vez tengas un token, deberás añadir el parámetro api_token
y el valor del token a tu petición. Por ejemplo:
$response = $client->request('GET', 'https://api.mensagia.com/v1/agendas?api_token='.$token);
No adjuntes el parametro api_token
en las cabeceras de la petición, si no como un parametro en tus peticiones GET, POST y DELETE. Este método es menos seguro que el token temporal ya que el token siempre es el mismo y no cambia.
Con un token temporal (JWT)
Con este método, a partir de un usuario y contraseña válido, obtendrás un token temporal para conectarte con la API. A diferencia del método de autentificación con token fijo, este método es más seguro ya que el token va cambiando cada cierto tiempo y es más dificil que una persona no deseada puede obtener el token. Una vez obtengas un token válido, deberás adjuntarlo en las cabeceras HTTP (Headers) con cada petición que realices a la API.
Para obtener un nuevo token temporal, usa el método obtener un token temporal
Si la autentificación es válida, obtendrás un token valido que expirará en cierto tiempo. Cuando el token expire, deberás pedir un nuevo token para seguir realizando peticiones a la API. Utiliza los atributos expires_in
que te informa en cuantos minutos expirará el token y expires_at
para conocer la fecha exacta de expiración del token.
Ejemplo de autentificación válida con token temporal:
{
"data": {
"token": "eyJXXXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vYXBpLm1lbnNhZgghLmRldi92MS9sb2dpbiIsImlhdCI6MTQ2NDM1NDY5OSwiZXhwIjoxNDY0MzU4Mjk5LCJuYmYisfE0NjQzNTQ2OTksImp0aSI6IjIyNDg4Y2IxM2RkNzZlODZjM2NhZWZhZjNhMDBkMjkzIiwic3ViIjoxNH0.F3q4ckNbI8sMg9RX_iRSyrEmGWW3oyO8dMcasKl5xer",
"expires_in": 60,
"expires_at": "2016-05-27 10:35:06 GMT"
}
}
Error de autentificación con token temporal (usuario y contraseña incorrectos):
{
"error": {
"code": "USER_NOT_FOUND",
"http_code": 404,
"message": "The login and password does not match to an active account"
}
}
Si quieres utilizar este método, añade a las cabeceras (Headers) de tu petición, una nueva cabecera Authorization
y su valor será: Bearer (el tipo de token que usaremos) más el valor del token que has obtenido separado por un espacio.
Authorization: Bearer eyJXXXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vYXBpLm1lbnNhZgghLmRldi92MS9sb2dpbiIsImlhdCI6MTQ2NDM1NDY5OSwiZXhwIjoxNDY0MzU4Mjk5LCJuYmYisfE0NjQzNTQ2OTksImp0aSI6IjIyNDg4Y2IxM2RkNzZlODZjM2NhZWZhZjNhMDBkMjkzIiwic3ViIjoxNH0.F3q4ckNbI8sMg9RX_iRSyrEmGWW3oyO8dMcasKl5xer
Modo Mantenimiento
El modo mantenimiento nos sirve para actualizar la plataforma sin incidencias. Durante una actualización, no permitimos peticiones y recibirás una respuesta como la siguiente:
Respuesta devuelta si Mensagia está en modo mantenimiento:
{
"error": {
"code": "UNDER_MAINTENANCE",
"http_code": 503,
"message": "This app is currently undergoing maintenance. Retry in few minutes."
}
}
Normalmente, el modo mantenimiento solo está activado durante unos segundos. Si haces una petición y te devolvemos el estado 503 del modo de mantenimiento, vuelve a realizar la petición más tarde.
Autentificacion
Antes de realizar cualquier petición a la API, debes obtener un token válido. Una vez obtengas un token válido, podrás realizar peticiones a la API de Mensagia.
Obtener un token fijo
Crea o edita un usuario de tipo API para obtener un token para conectar a la API.
Obtener un token temporal
Obtén un token temporal para poder realizar peticiones a la API.
Response 200
{
"data": {
"token": "eyJXXXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vYXBpLm1lbnNhZgghLmRldi92MS9sb2dpbiIsImlhdCI6MTQ2NDM1NDY5OSwiZXhwIjoxNDY0MzU4Mjk5LCJuYmYisfE0NjQzNTQ2OTksImp0aSI6IjIyNDg4Y2IxM2RkNzZlODZjM2NhZWZhZjNhMDBkMjkzIiwic3ViIjoxNH0.F3q4ckNbI8sMg9RX_iRSyrEmGWW3oyO8dMcasKl5xer",
"expires_in": 60,
"expires_at": "2016-05-27 14:11:39 GMT"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"http_code": 400,
"message": "The email field is required. The password field is required. "
}
}
Response 400 USER_TYPE_NOT_VALID
{
"error": {
"code": "USER_TYPE_NOT_VALID",
"http_code": 400,
"message": "The type of user you are trying to access does not have access to the API. Only 'manager' users and distributor users are allowed."
}
}
Response 400 TOKEN_EXPIRED
{
"error": {
"code": "TOKEN_EXPIRED",
"http_code": 400,
"message": "The token has expired."
}
}
Response 400 TOKEN_ABSENT
{
"error": {
"code": "TOKEN_ABSENT",
"http_code": 400,
"message": "The token is absent."
}
}
Response 404 USER_NOT_FOUND
{
"error": {
"code": "USER_NOT_FOUND",
"http_code": 404,
"message": "The login and password does not match to an active account"
}
}
HTTP Request
POST https://api.mensagia.com/v1/login
Query Parameters
Parameter | Description |
---|---|
string (required) Example: email@myemail.com Un email válido de un usuario activo de Mensagia. |
|
password | string (required) Example: mypassword Una contraseña válida. |
Precios Envio SMS
Obtén los precios que tienes asignados para el envío de SMS.
Distribuidores y clientes pueden llamar a este método.
Puedes obtener más información sobre las peticiones de saldo y las rutas de envío en la documentación de Mensagia.
Obtener precios envio SMS
Obtén los precios del envío de SMS para cada país que tienes asignado. El país está identificado como un código de país ISO 3166
HTTP Request
GET https://api.mensagia.com/v1/prices/routes
Response 200
{
"data": {
"conexion-directa": {
"es": {
"price": 0.048
},
"ad": {
"price": 0.024
},
"ae": {
"price": 0.048
},
"af": {
"price": 0.048
},
"ag": {
"price": 0.048
},
"ai": {
"price": 0.048
},
"al": {
"price": 0.048
},
"am": {
"price": 0.048
},
"ao": {
"price": 0.048
},
"aq": {
"price": 0.048
},
"ar": {
"price": 0.048
},
"as": {
"price": 0.048
},
"fr": {
"price": 0.034
}
}
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Saldo
Obten el saldo actual y gestiona las compras de saldo de tu cuenta.
ID'S de estado de una petición de saldo
Este listado corresponde a todos los estados posibles que puede tener una petición de saldo
ID de estado | Nombre del estado |
---|---|
0 | Pendiente |
1 | Aceptada |
2 | Remitida |
3 | Cancelada |
4 | Rechazada |
Puedes obtener más información sobre las Compras de saldo en la documentación de Mensagia.
Obtener el saldo actual
Obten el saldo actuar de tu cuenta.
Este método puede ser usado tanto por clientes
como por distribuidores
HTTP Request
GET https://api.mensagia.com/v1/balance
Response 200
{
"data": {
"balance": 1,
"currency": "€"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Obtener todas las compras de saldo
Este método te permite obtener todas las compras de saldo de tu cuenta.
Este método puede ser usado tanto por clientes
como por distribuidores
Response 200
{
"data": [
{
"id": 17,
"amount": 34,
"creation_date": "2017-02-06 12:53:04",
"finish_date": "2017-02-06 12:53:27",
"request_state_id": 1,
"request_state_name": "Accepted",
"observations": "C: Customer \n "
},
{
"id": 10,
"amount": 34,
"creation_date": "2017-02-06 10:54:54",
"finish_date": "",
"request_state_id": 0,
"request_state_name": "Pending",
"observations": "C: Customer \n "
},
{
"id": 9,
"amount": 34,
"creation_date": "2017-02-06 10:00:57",
"finish_date": "",
"request_state_id": 0,
"request_state_name": "Pending",
"observations": "C: Customer \n "
},
{
"id": 8,
"amount": 34,
"creation_date": "2017-02-06 10:00:55",
"finish_date": "2017-02-06 10:27:48",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 7,
"amount": 34,
"creation_date": "2017-02-06 09:52:28",
"finish_date": "2017-02-06 10:01:07",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 6,
"amount": 34,
"creation_date": "2017-02-06 09:52:14",
"finish_date": "2017-02-06 09:52:47",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 5,
"amount": 34,
"creation_date": "2017-02-06 09:50:16",
"finish_date": "2017-02-06 09:51:33",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 4,
"amount": 34,
"creation_date": "2017-02-06 09:50:13",
"finish_date": "2017-02-06 09:50:38",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 3,
"amount": 34,
"creation_date": "2017-02-06 09:40:58",
"finish_date": "2017-02-06 09:50:23",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
},
{
"id": 2,
"amount": 34,
"creation_date": "2017-02-06 09:35:56",
"finish_date": "2017-02-06 09:40:17",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n "
}
],
"meta": {
"pagination": {
"total": 11,
"count": 10,
"per_page": 10,
"current_page": 1,
"total_pages": 2,
"links": {
"next": "https://api.mensagia.com/v1/balance/requests?page=2"
}
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "request_state_id must be an integer."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "finish_date_min is not a valid datetime."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "finish_date_max is not a valid datetime."
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
GET https://api.mensagia.com/v1/balance/requests
Query Parameters
Parameter | Description |
---|---|
request_state_id | integer (optional) Example: 1 Envia un ID de estado de petición de saldo para filtrar los resultados por el estado de petición que elijas. |
finish_date_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar compras de saldo que su fecha de finalización sea más grande o igual que el valor de finish_date_min . |
finish_date_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar compras de saldo que su fecha de finalización sea más pequeña o igual al valor de finish_date_max . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener una compra de saldo
Este método te permite obtener una petición de saldo de tu cuenta.
Este método puede ser usado tanto por clientes
como por distribuidores
Response 200
{
"data": {
"id": 16,
"amount": 34,
"creation_date": "2017-02-06 12:51:35",
"finish_date": "",
"request_state_id": 0,
"request_state_name": "Pending",
"observations": "C: Customer \n "
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "ID must be an integer."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Request not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
GET https://api.mensagia.com/v1/balance/requests/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la petición de saldo a obtener. |
Realizar una compra de saldo
Este método te permite crear una petición de saldo.
Este método puede ser usado tanto por clientes
como por distribuidores
Response 200
{
"data": {
"id": 22,
"amount": 34,
"creation_date": "2017-02-07 09:25:05",
"finish_date": "",
"request_state_id": 0,
"request_state_name": "Pending",
"observations": "C: Customer \n This is a new observation."
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"amount": [
"The amount must be a number."
]
}
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/balance/requests
Query Parameters
Parameter | Description |
---|---|
amount | integer (required) Example: 50 Cantidad en euros de la petición ha realizar. |
observations | stromg (optional) Example: This is a new observation Puedes añadir observaciones para que tu distribuidor las lea antes de aceptar la petición. |
Aceptar una compra de saldo
Este método te permite aceptar una petición de saldo de un distribuidor o un cliente que esté bajo tu supervisión.
Este método puede ser usado únicamente por distribuidores
ya que són los únicos que pueden aceptar peticones de saldo.
Response 200
{
"data": {
"id": 21,
"amount": 33,
"creation_date": "2017-02-06 14:56:47",
"finish_date": "2017-02-07 09:55:43",
"request_state_id": 1,
"request_state_name": "Accepted",
"observations": "D: Distribuidor \n "
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "ID must be an integer."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You are not allowed to accept this request."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to acce` is already accepted."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to accept can not be accepted."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Request not found with id: 23"
}
}
Response 409 CONFLICT
{
"error": {
"code": "CONFLICT",
"http_code": 409,
"message": "No puedes aceptar esta venta porque el cliente y/o distribuidor que la ha solicitado no dispone de precios para ningún país."
}
}
Response 409 CONFLICT
{
"error": {
"code": "CONFLICT",
"http_code": 409,
"message": "No puedes aceptar esta venta porque no dispones de suficiente saldo. Remite esta venta a tu distribuidor o solicita saldo en una nueva compra. Te faltan 23.32 €."
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/balance/requests/{id}/accept
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la petición de saldo a aceptar. |
Cancelar una compra de saldo
Este método te permite cancelar una petición de saldo que hayas realizado.
Este método puede ser usado tanto por clientes
como por distribuidores
Response 200
{
"data": {
"id": 23,
"amount": 34,
"creation_date": "2017-02-07 09:37:08",
"finish_date": "2017-02-07 09:37:19",
"request_state_id": 3,
"request_state_name": "Canceled",
"observations": "C: Customer \n This is a new observation."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "ID must be an integer."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You are not allowed to cancel this request."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to cancel is already canceled."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to cancel can not be canceled."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Request not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/balance/requests/{id}/cancel
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la petición de saldo a cancelar. |
Rechazar una compra de saldo
Este método te permite rechazar una petición de saldo de un cliente o distribuidor que esté bajo tu supervisión.
Este método puede ser usado únicamente por distribuidores
ya que són los únicos que pueden rechazar peticones de saldo.
Response 200
{
"data": {
"id": 22,
"amount": 34,
"creation_date": "2017-02-07 09:25:05",
"finish_date": "2017-02-07 09:46:40",
"request_state_id": 4,
"request_state_name": "Rejected",
"observations": "C: Customer \n."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "ID must be an integer."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You are not allowed to reject this request."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to reject is already rejected."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to reject can not be rejected."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Request not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/balance/requests/{id}/reject
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la petición de saldo a rechazar. |
Remitir una compra de saldo
Este método te permite remitir una petición de saldo a tu distribuidor superior.
Este método puede ser usado únicamente por distribuidores
ya que són los únicos que pueden remitir peticones de saldo.
Response 200
{
"data": {
"id": 22,
"amount": 34,
"creation_date": "2017-02-07 09:25:05",
"finish_date": "2017-02-07 09:46:40",
"request_state_id": 4,
"request_state_name": "Rejected",
"observations": "C: Customer \n."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "ID must be an integer."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You are not allowed to forward this request."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to forward is already forwarded."
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: The request you are trying to forward can not be forwarded."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Request not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/balance/requests/{id}/forward
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la petición de saldo a remitir. |
Configuraciones de envio
Métodos para consultar las configuraciones de envío. Los métodos de la API que envían SMS necesitan el parámetro configuration_name
. Con este método puedes consultar las configuraciones de envío creadas en tu cuenta y usarlas en envíos SMS.
Puedes obtener más información sobre las configuraciones de envío en la documentación de Mensagia.
Accesible únicamente para cuentas de tipo cliente
Obtener todas las configuraciones de envio
Este método te permite obtener todas las configuraciones de envío de tu cuenta.
Response 200
{
"data": [
{
"id": 5,
"name": "api",
"sender_id": null,
"sender_name": "",
"callback_url": "",
"allow_service_number_alias": false,
"created_at": "2017-07-03 07:23:03"
},
{
"id": 4,
"name": "conexion_directa",
"sender_id": 1,
"sender_name": "SENDER",
"callback_url": "",
"allow_service_number_alias": true,
"created_at": "2017-07-03 07:22:55"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789."
}
}
HTTP Request
GET https://api.mensagia.com/v1/api_configurations
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: user Envía este parámetro si quieres buscar por nombre de la agenda. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener una configuracion de envio
Este método te permite obtener una configuración de envío de tu cuenta.
Response 200
{
"data": {
"id": 4,
"name": "conexion_directa",
"sender_id": 1,
"sender_name": "SENDER",
"callback_url": "",
"allow_service_number_alias": true,
"created_at": "2017-07-03 07:22:55"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Process not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
GET https://api.mensagia.com/v1/api_configurations/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la configuración de envío a obtener. |
Agendas
Métodos para administrar agendas de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre las agendas en la documentación de Mensagia.
Obtener todas las agendas
Este método te permite obtener todas las agendas de tu cuenta
Response 200
{
"data": [
{
"id": 1,
"name": "BlackList",
"total_users": 0,
"busy": 0,
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789."
}
}
HTTP Request
GET https://api.mensagia.com/v1/agendas
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: agenda_ Envía este parámetro si quieres buscar por nombre de la agenda. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener una agenda
Este método te permite obtener una agenda de tu cuenta.
Response 200
{
"data": {
"id": 1,
"name": "BlackList",
"total_users": 0,
"busy": 0,
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaGroup not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
GET https://api.mensagia.com/v1/agendas/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la agenda a obtener. |
Crear una agenda
Este método te permite crear una nueva agenda en tu cuenta.
Response 200
{
"data": {
"id": 2,
"name": "New agenda",
"total_users": 0,
"busy": 0,
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name has already been taken."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/agendas
Query Parameters
Parameter | Description |
---|---|
name | string (required) Example: Name agenda El nombre con el que identificarás a la nueva agenda. |
Actualizar una agenda
Este método te permite actualizar una agenda existente.
Response 200
{
"data": {
"id": 2,
"name": "Agenda updated",
"total_users": 0,
"busy": 0,
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaGroup not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/agendas/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la agenda a actualizar. |
name | string (required) Example: Name agenda El nuevo nombre para actualizar la agenda. |
Eliminar una agenda
Este método te permite eliminar una agenda de tu cuenta.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaGroup not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/agendas/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la agenda a eliminar. |
Contactos
Métodos para administrar los contactos de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
.
Puedes obtener más información sobre las contactos en la documentación de Mensagia.
Obtener todos los contactos
Este método te permite obtener todos los contactos de tu cuenta.
HTTP Request
GET https://api.mensagia.com/v1/contacts
Response 200
{
"data": [
{
"id": 3,
"number": "600000002",
"push_operator_destination_id": null,
"name": "User 2",
"email": "user2@email.com",
"city": "MyCity",
"language": "es",
"country_id": 158,
"country_name": "Malaysia",
"extra_fields": {
"extra_field_1": "extra field 1 value x1",
"extra_field_2": "extra field 1 value x2",
"extra_field_3": "extra field 1 value x3"
},
"in_sms_blacklist": false,
"in_voice_blacklist": false,
"in_mail_blacklist": true,
"created_at": "2015-09-22 07:06:17",
"updated_at": "2015-09-22 07:06:17",
"groups": {
"data": [
{
"id": 3,
"name": "agenda_id_3",
"total_users": 2,
"busy": 0,
"created_at": "2015-09-22 06:54:21",
"updated_at": "2015-09-22 07:06:17"
}
]
}
},
{
"id": 2,
"number": "600000001",
"push_operator_destination_id": null,
"name": "User 1",
"email": "user@email.com",
"city": "MyCity",
"language": "es",
"country_id": 158,
"country_name": "Malaysia",
"extra_fields": {
"extra_field_1": "extra field 1 value",
"extra_field_2": "extra field 2 value",
"extra_field_3": "extra field 3 value"
},
"in_sms_blacklist": false,
"in_voice_blacklist": false,
"in_mail_blacklist": false,
"created_at": "2015-09-22 07:05:33",
"updated_at": "2015-09-22 07:05:33",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-22 06:54:21",
"updated_at": "2015-09-22 07:05:34"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 2,
"busy": 0,
"created_at": "2015-09-22 06:54:21",
"updated_at": "2015-09-22 07:06:17"
}
]
}
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789. Error code: #1234567890"
}
}
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: user Envia este parámetro si quieres buscar contactos por nombre sin tener en cuenta mayúsculas y minúsculas. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
number | string (optional) Example: 600 Envia este parámetro si deseas buscar contactos por número de móvil. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
string (optional) Example: user@ Envia este parámetro si deseas buscar contactos por email sin tener en cuenta mayúsculas y minúsculas. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
|
city | string (optional) Example: MyCity Envia este parámetro si deseas buscar contactos por ciudad sin tener en cuenta mayúsculas y minúsculas. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
language | string (optional) Example: es Envia este parámetro si deseas buscar contactos por su idioma (código ISO). Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
groups | string (optional) Example: 3,4 Envia este parámetro si deseas buscar contactos por las agendas a las que pertenecen. Debes enviar una lista de ID's de agenda existentes separados por comas y sin espacios. |
in_sms_blacklist | mixed (optional) Example: false Envia este parámetro si deseas buscar contactos incluidos o no en la Lista Negra SMS. Valores posibles:
|
in_voice_blacklist | mixed (optional) Example: false Envia este parámetro si deseas buscar contactos incluidos o no en la Lista Negra VOZ. Valores posibles:
|
in_mail_blacklist | mixed (optional) Example: false Envia este parámetro si deseas buscar contactos incluidos o no en la Lista Negra de Email. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener un contacto
Este método te permite obtener un contacto de tu cuenta.
HTTP Request
GET https://api.mensagia.com/v1/contacts/{id}
Response 200
{
"data": {
"id": 2,
"number": "600000001",
"push_operator_destination_id": null,
"name": "User 1",
"email": "user@email.com",
"city": "MyCity",
"language": "es",
"country_id": 158,
"country_name": "Malaysia",
"extra_fields": {
"extra_field_1": "extra field 1 value",
"extra_field_2": "extra field 2 value",
"extra_field_3": "extra field 3 value"
},
"in_sms_blacklist": false,
"in_voice_blacklist": false,
"in_mail_blacklist": false,
"created_at": "2015-09-22 07:05:33",
"updated_at": "2015-09-22 07:05:33",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-22 06:54:21",
"updated_at": "2015-09-22 07:05:34"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 2,
"busy": 0,
"created_at": "2015-09-22 06:54:21",
"updated_at": "2015-09-22 07:06:17"
}
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaUser not found with id: 1"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del contacto a obtener. |
Crear un contacto
Este método te permite crear un nuevo contacto en tu cuenta. Para poder crear un contacto, como mínimo, se necesita un número de teléfono o un email.
Campos personalizados
Los campos personalizados son campos extra de información que puedes crear para un contacto.
Si envias un campo personalizado cuyo nombre no existe, el contacto no será creado. Puedes enviar más de un campo personalizado a la vez.
Debes enviar los campos personalizados como un array, donde las key
serán el nombre del campo personalizado.
- extra_fields[discount]=20
- extra_fields[client_code]=2FSDALJF
Puedes obtener más información sobre los Campos personalizados en la documentación de Mensagia.
Agendas
Puedes asignar agendas a un contacto cuando lo creas. Envía una lista de ID'S de agenda separados por comas, sin espacios.
Si envias un ID de agenda que no existe, el contacto no será creado.
Puedes obtener más información sobre las Agendas en la documentación de Mensagia.
HTTP Request
POST https://api.mensagia.com/v1/contacts
Response 200
{
"data": {
"id": 1,
"number": "34600000000",
"push_operator_destination_id": null,
"name": "Usuario Test",
"email": "test@sinermedia.com",
"city": "La Jonquera",
"language": "es",
"country_id": null,
"country_name": null,
"extra_fields": {
"extra_field_1": "value 1",
"extra_field_2": "value 2"
},
"in_sms_blacklist": true,
"in_voice_blacklist": false,
"in_mail_blacklist": true,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:37",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 4,
"name": "agenda_id_4",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
}
]
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The number has already been taken."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: AgendaGroup with id: 3 doesn't exist"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600111222 El número de móvil del contacto sin espacios en blanco, con el préfijo internacional y sin el signo +. |
name | string (optional) Example: Peter Smith Nombre del contacto. |
string (optional) Example: petersmith@gmail.com Email del contacto. |
|
city | string (optional) Example: Dubai Ciudad del contacto. |
language | string (optional) Example: es Idioma del contacto en código ISO. |
in_sms_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra SMS. Valores posibles:
|
in_voice_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra de VOZ. Valores posibles:
|
in_mail_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra de Email. Valores posibles:
|
groups | string (optional) Example: 3,4 Lista de ID's de agendas existentes, separadas por coma y sin espacios, para asignarle al contacto. |
extra_fields | array (optional) Example: valueExtrafield1 Valores de campos personalizados para añadir al contacto. Enviar como un array donde la key sea el nombre del campo personalizado y value el valor del campo personalizado. |
Importar contactos mediante JSON
Este método te permite importar contactos de forma asíncrona hasta un máximo de 1000 contactos por petición. Si lo deseas, puedes añadir una URL de callback donde te enviaremos, una vez procesados todos los contactos, una petición POST con el resultado de la importación de cada contacto. Puedes enviar tantas peticiones como quieras, ya que nosotros las procesaremos en orden de llegada.
Formato del parámetro contacts_json
Para poder crear contactos masivamente es necesario enviar un array en JSON que contendrá la informacíon de cada uno de los contactos a crear. Con el siguiente JSON crearemos dos contactos, a uno de ellos le asignaremos las agendas con ID 3 y 4, y también le añadiremos el valor '20' a un campo personalizado con nombre 'discount'. Al otro contacto lo crearemos con su nombre.
[{"contact":{"number":"34600000001"},"groups":"3,4","extra_fields":{"discount":"20"}},{"contact":{"number":"34600000002","name":"Peter Smith"}}]
Para crear un contacto necesitamos como mínimo su número de teléfono o su email. Todos los demás campos son opcionales. El siguiente ejemplo muestra como crear 2 contactos solo con el número de telefono y otro con solo el email:
[{"contact":{"number":"34600000001"}},{"contact":{"number":"34600000002"}},{"contact":{"email":"myemail@mailing.com"}}]
Campos posibles:
Grupo | Campos posibles | Información |
---|---|---|
contact array (required) |
number | string (optional) Example: 34600111222 |
name | string (optional) Example: Peter Smith |
|
string (optional) Example: petersmith@gmail.com |
||
city | string (optional) Example: Dubai |
|
language | string (optional) Example: es |
|
country_id | integer (optional) Example: 1 |
|
groups string (optional) |
- | Lista de ID’s de agendas existentes, separadas por coma y sin espacios, para asignarle al contacto. Example: 3,4 |
extra_fields array (optional) |
Cualquier campo personalizado creado en tu cuenta | Por cada elemento del array, el index será el nombre del campo personalizado y el value será el valor para este campo. Example: "discount":"20","birthday":"25-07-1982" |
Si envias agendas o campos personalizados que no existen, el contacto no será creado.
CALLBACK POST
Callback post example
{
"data" : {
"proccess_id" : 1,
"response" : [
{
"id": 18,
"number": "34600999054",
"code_error": null,
"msg_error": null
},
{
"id": 19,
"number": "34600999055",
"code_error": null,
"msg_error": null
},
{
"id": null,
"number": "346009",
"code_error": "INVALID_NUMBER",
"msg_error": "The number is not a valid phone number"
},
{
"id": null,
"number": "34600999001",
"code_error": "FAIL_SYNC_GROUPS",
"msg_error": {
"groups": "AgendaGroup with id:3000 doesn't exist"
}
},
{
"id": null,
"number": "34600999002",
"code_error": "EXTRA_FIELD_NOT_EXIST",
"msg_error": {
"discdfount": "Extrafield not exist. If you want to use it, you must create it before"
}
},
{
"id": null,
"number": "34600999000",
"code_error": "CONTACT_VALIDATION_FAILS",
"msg_error": {
"number": [
"The number has already been taken."
]
}
}
]
}
}
Si en la petición envias una URL de callback, te enviaremos a esa URL un POST, para que si lo necesitas, puedas relacionar tu usuario con el ID de contacto creado en nuestra plataforma y puedas conocer los errores que se produjeron durante la importación. En la petición también incluimos el ID del proceso, para que sepas de que importación se trata.
No confundas esta respuesta que te damos a través de la URL de callback al realizar la importación con la respuesta que te devolveremos al realizar la petición de 'Importar contactos mediantes JSON' para saber si la importación se realizará.
CODIGOS DE ERROR CALLBACK
Para cada uno de los contactos a crear, en la respuesta te devolveremos un código de error y un mensaje con el error producido si el contacto no se ha creado correctamente. Si el contacto se ha creado correctamente, te devolveremos el nuevo ID del contacto y null
como código de error y mensaje.
Los códigos de error son los siguientes:
WITHOUT_NUMBER | EL contacto a importar no tiene número de teléfono |
WITHOUT_EMAIL | EL contacto a importar no tiene email |
FAIL_SYNC_GROUPS | Una de las agendas enviadas no existe |
EXTRA_FIELD_NOT_EXIST | Uno de los campos personalizados enviado no existe |
EXTRA_FIELD_VALIDATION_FAILS | La validación de un campo personalizado no se ha superado |
INVALID_NUMBER | El número de teléfono del contacto no es válido. |
CONTACT_VALIDATION_FAILS | La validación de los campos del contacto no se ha superado |
INTERNAL_ERROR | Hubo un error interno de la plataforma |
HTTP Request
POST https://api.mensagia.com/v1/contacts/import/json
Query Parameters
Parameter | Description |
---|---|
contacts_json | string (required) Example: [{"contact":{"number": "34600100220"}, "groups": "3,4", "extra_fields":{"discount":"20" }}] Un array en formato JSON con la información de cada contacto. |
callback_url | string (optional) Example: https://mensagia.com/testPost Una url válida donde enviar una petición POST con el resultado de la importación. |
priority_field | string (optional) Default: number Example: email Escoge el campo principal que se usará para buscar si existe o no el contacto. Valores posibles:
|
Response 200
{
"data": {
"contacts_to_import": 134,
"callback_url": "https://mensagia.com/testPost",
"process_id": 3
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The contacts limit to send are 1000. You have sent 1434."
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "You must send contacts_json parameter."
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"messages": "The contacts_json field isn't a valid JSON: Syntax error, malformed JSON."
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"messages": "The callback_url must be a valid url"
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
Importar contactos mediante archivo
Este método te permite importar contactos de forma asíncrona sin límite de contactos por petición mediante un fichero .txt, .csv o .xlsx.
Si la petición es correcta, te devolveremos el proceso en segundo plano encargado de gestionar la importación del fichero, y así podrás el estado de la importación en cualquier momento.
Este método es el más eficiente para importar grandes volúmenes de contactos.
Formato del parámetro columns_to_import
Este parámetro es necesario para relacionar las columnas del archivo de contactos que deseas importar con los campos del contacto (número de móvil, nombre, email, ciudad ) o los campos personalizados creados en tu cuenta.
Por cada columna que queramos importar del archivo, deberemos especificar el número de columna que ocupa en el archivo (la primera columna del archivo será la número 1) y con qué campo de Mensagia se corresponde (si es número de móvil, nombre, email, ciudad o un campo personalizado).
[{"ncol":1,"value":"number"},{"ncol":2,"value":"name"},{"ncol":3,"value":"extra_field[1]"}]
El único requisito del parámetro columns_to_import
es especificar en qué columna se encuentra el número de móvil en el archivo a importar.
[{"ncol":1,"value":"number"}]
Para importar una columna como un campo personalizado utiliza el siguiente formato para value:
extra_field[ID_DEL_CAMPO_PERSONALIZADO]
Campos posibles para importar:
Campos posibles value |
Información |
---|---|
number | string (optional) Example: 34600111222 |
name | string (optional) Example: Peter Smith |
string (optional) Example: petersmith@gmail.com |
|
city | string (optional) Example: Dubai |
language | string (optional) Example: es |
El ID de cualquier campo personalizado creado en tu cuenta | Formato: extra_field[ID_DEL_CAMPO_PERSONALIZADO] |
Response 200
{
"data": {
"id": 4,
"type": "AgendaImport",
"state": "created",
"created_at": "2017-02-10 10:51:45"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"file": [
"The file must be a file of type: csv, txt, xlsx.",
"The file field is required."
],
"agenda_id": [
"The agenda id field is required.",
"The selected agenda id is invalid."
],
"cols_to_import": [
"The cols to import field is required.",
"The cols to import must be a valid JSON string.",
"The cols to import field has not valid format, has mistakes in field contact names or the extra_fields don't exist"
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/contacts/import/file
Query Parameters
Parameter | Description |
---|---|
file | file (required) Example: contacts.csv Un archivo TXT (.txt), CSV (.csv) o Excel (.xlsx) que contenga los contactos a importar. El archivo ha de tener un peso máximo de 50 MB. |
agenda_id | integer (required) Example: 3 ID de la agenda donde quieres importar los contactos. |
columns_to_import | string (required) Example: [{"ncol":1,"value":"number"}] Un array en formato JSON con la información de las columnas a importar. |
add_prefix | integer (optional) Example: 34 Si ningún número de móvil del archivo tiene prefijo y son todos del mismo país, puedes añadirle el prefijo que desees a todos los números de móvil del archivo. |
file_has_heading | integer (optional) Default: 0 Example: 1 Si la primera línea del archivo a subir contiene encabezados (títulos de las columnas) envía un 1 para que no procesemos la primera línea del archivo. Valores posibles:
|
priority_field | string (optional) Default: number Example: email Escoge el campo principal que se usará para buscar si existe o no el contacto. Valores posibles:
|
Actualizar un contacto
Este método te permite actualizar un contacto existente.
Campos personalizados
Los campos personalizados son campos extra de información que puedes crear para un contacto.
Si envias un campo personalizado cuyo nombre no existe, el contacto no será creado. Puedes enviar más de un campo personalizado a la vez.
Debes enviar los campos personalizados como un array, donde las key
serán el nombre del campo personalizado.
- extra_fields[discount]=20
- extra_fields[client_code]=2FSDALJF
Puedes obtener más información sobre los Campos personalizados en la documentación de Mensagia.
Agendas
Puedes asignar agendas a un contacto cuando lo creas. Envía una lista de ID'S de agenda separados por comas, sin espacios.
Si envias un ID de agenda que no existe, el contacto no será creado.
Puedes obtener más información sobre las Agendas en la documentación de Mensagia.
Response 200
{
"data": {
"id": 1,
"number": "34600000000",
"push_operator_destination_id": null,
"name": "Usuario Test",
"email": "test@sinermedia.com",
"city": "La Jonquera",
"language": "es",
"country_id": null,
"country_name": null,
"extra_fields": {
"extra_field_1": "value 1",
"extra_field_2": "value 2"
},
"in_sms_blacklist": true,
"in_voice_blacklist": false,
"in_mail_blacklist": false,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:37",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 4,
"name": "agenda_id_4",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
}
]
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The number has already been taken."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: AgendaGroup with id: 3 doesn't exist"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaUser not found with id: 1"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/contacts/{id}
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600111222 El número de móvil del contacto sin espacios en blanco, con el préfijo internacional y sin el signo +. |
name | string (optional) Example: Peter Smith Nombre del contacto. |
string (optional) Example: petersmith@gmail.com Email del contacto. |
|
city | string (optional) Example: Dubai Ciudad del contacto. |
language | string (optional) Example: es Idioma del contacto en código ISO. |
in_sms_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra SMS. Valores posibles:
|
in_voice_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra de VOZ. Valores posibles:
|
in_mail_blacklist | mixed (optional) Example: false Indica si el contacto está incluido en la Lista Negra de Email. Valores posibles:
|
groups | string (optional) Example: 3,4 Lista de ID's de agendas existentes, separadas por coma y sin espacios, para asignarle al contacto. |
extra_fields | array (optional) Example: valueExtrafield1 Valores de campos personalizados para añadir al contacto. Enviar como un array donde la key sea el nombre del campo personalizado y value el valor del campo personalizado. |
Eliminar un contacto
Este método te permite eliminar un contacto de tu cuenta.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaUser not found with id: 1"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/contacts/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del contacto a eliminar. |
Asignar agendas a un contacto
Este método te permite asignar agendas a un contacto existente.
Agendas
Envía una lista de ID'S de agenda separados por comas, sin espacios.
Si envias un ID de agenda que no existe, el contacto no será creado.
Puedes obtener más información sobre las Agendas en la documentación de Mensagia.
Response 200
{
"data": {
"id": 1,
"number": "34600000000",
"push_operator_destination_id": null,
"name": "Usuario Test",
"email": "test@sinermedia.com",
"city": "La Jonquera",
"language": "es",
"country_id": null,
"country_name": null,
"extra_fields": {
"extra_field_1": "value 1",
"extra_field_2": "value 2"
},
"in_sms_blacklist": false,
"in_voice_blacklist": false,
"in_mail_blacklist": false,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:37",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 4,
"name": "agenda_id_4",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
}
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaUser not found with id: 1"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/contacts/{id}/groups/add
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del contacto. |
groups | string (optional) Example: 3,4 Lista de ID's de agendas existentes, separadas por coma y sin espacios, para asignarle al contacto. |
Desasignar agendas a un contacto
Este método te permite desasignar agendas a un contacto existente.
Agendas
Envía una lista de ID'S de agenda separados por comas, sin espacios.
Si envias un ID de agenda que no existe, el contacto no será creado.
Puedes obtener más información sobre las Agendas en la documentación de Mensagia.
Response 200
{
"data": {
"id": 1,
"number": "34600000000",
"push_operator_destination_id": null,
"name": "Usuario Test",
"email": "test@sinermedia.com",
"city": "La Jonquera",
"language": "es",
"country_id": null,
"country_name": null,
"extra_fields": {
"extra_field_1": "value 1",
"extra_field_2": "value 2"
},
"in_sms_blacklist": false,
"in_voice_blacklist": false,
"in_mail_blacklist": true,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:37",
"groups": {
"data": [
{
"id": 2,
"name": "agenda_id_2",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 3,
"name": "agenda_id_3",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
},
{
"id": 4,
"name": "agenda_id_4",
"total_users": 1,
"busy": 0,
"created_at": "2015-09-23 10:00:03",
"updated_at": "2015-09-23 10:17:02"
}
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "AgendaUser not found with id: 1"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
POST https://api.mensagia.com/v1/contacts/{id}/groups/remove
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del contacto. |
groups | string (optional) Example: 3,4 Lista de ID's de agendas existentes, separadas por coma y sin espacios, para desasignarle al contacto. |
Campos Personalizados
Métodos para administrar los campos personalizados de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre las Campos personalizados en la documentación de Mensagia.
Obtener todos los campos personalizados
Este método te permite obtener todos los campos personalizados de tu cuenta.
Response 200
{
"data": [
{
"id": 1,
"name": "extra_field_1",
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789.. Error code: #1234567890"
}
}
HTTP Request
GET https://api.mensagia.com/v1/extrafields
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: agenda_ Envía este parámetro si quieres buscar por nombre del campo personalizado. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener un campo personalizado
Este método te permite obtener un campo personalizado de tu cuenta.
Response 200
{
"data": {
"id": 1,
"name": "extra_field_1",
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Extrafield not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789."
}
}
HTTP Request
GET https://api.mensagia.com/v1/extrafields/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del campo personalizado a obtener. |
Crear un campo personalizado
Este método te permite crear un nuevo campo personalizado en tu cuenta.
Tipos permitidos
Tipos permitidos | Descripción |
---|---|
number | El valor del campo debe ser un número |
string | El valor del campo debe ser un texto |
date | El valor del campo debe ser una fecha válida. Si type=date es obligatorio enviar el parámetro date_format |
Formato de fecha
Los siguientes caracteres son reconocidos en el parámetro date_format
cuando el tipo del campo personalizado es date
Format character | Description | Example returned values |
---|---|---|
d | Día del mes, 2 dígitos sin ceros iniciales | 1 a 31 |
D | Día del mes, 2 dígitos con ceros iniciales | 01 a 31 |
m | Representación numérica de un mes, sin ceros iniciales | 1 a 12 |
M | Representación numérica de un mes, con ceros iniciales | 01 a 12 |
y | Una representación de dos dígitos de un año | 16 o 20 |
Y | Una representación numérica completa de un año, 4 dígitos | 2016 o 2020 |
G | Formato de 24 horas de una hora sin ceros iniciales | 0 a 23 |
H | Formato de 24 horas de una hora con ceros iniciales | 00 a 23 |
i | Minutos con ceros iniciales | 00 a 59 |
s | Segundos, con ceros iniciales | 00 a 59 |
Response 200
{
"data": {
"id": 1,
"name": "Birthday",
"type": "date",
"format": "D-M-Y",
"created_at": "2015-09-15 09:11:09",
"updated_at": "2015-09-15 09:11:09"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name has already been taken."
],
"date_format": [
"The date format field contains an invalid date format."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789."
}
}
HTTP Request
POST https://api.mensagia.com/v1/extrafields
Query Parameters
Parameter | Description |
---|---|
name | string (required) Example: Name Extrafield_ El nombre del nuevo campo personalizado. Solo se permiten letras, números y el guión bajo. Todos los demás caracteres serán substituidos por guión bajo. |
type | string (required) Example: date Escoge uno de los tipos permitidos para el campo personalizado. Valores posibles:
|
date_format | string (optional) Example: D-M-Y Formato de fecha para el campo personalizado de tipo fecha. Obligatorio si type=date . |
Eliminar un campo personalizado
Este método te permite eliminar un campo personalizado de tu cuenta.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Extrafield not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789."
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/extrafields/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID del campo personalizado a eliminar. |
Envios SMS
Métodos para el envío de SMS.
Accesible únicamente para cuentas de tipo cliente
Configuraciones de envío
Para poder realizar Envíos SMS desde la API de Mensagia, es necesario crear una configuración de envío API
Las configuraciones de envío definen el remitente que se usará en el envío. De esta manera, si necesitas cambiar el remitente en tus envíos, no deberás tocar código, sólo modificar la configuración de envío desde el portal.
Mensajes a enviar
Cuando escribas el mensaje para enviar a tus destinatarios es muy importante que tengas en cuenta las consideraciones sobre los mensajes a enviar, para tener en cuenta la longitud máxima del SMS y caracteres especiales.
SMS Certificado
Puedes enviar SMS Certificados usando el parámetro certified=1
. Más información en la documentación sobre Envíos Certificados
Obtener todos los Envios Simples
Este método te permite obtener todos los envíos simples de tu cuenta, o buscar envíos simples según los parámetros enviados.
Response 200
{
"data": [
{
"configuration_id": 20,
"id": 20,
"name": "15",
"message": "Hola #name#! ",
"start_date": "2030-01-03 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 3,
"total_price": 0.174,
"numbers": [
{
"number": "34600000001",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000002",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000003",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
},
{
"configuration_id": 21,
"id": 21,
"name": "18",
"message": "Hola #name#! ",
"start_date": "2030-01-05 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 2,
"total_price": 0.116,
"numbers": [
{
"number": "34600000005",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000006",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_min value (20290-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2001-01-01 00:00:00)"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_max value (20231-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2002-01-01 00:00:00)"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/push/simple
Query Parameters
Parameter | Description |
---|---|
start_date_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar envíos simples que su fecha de inicio sea más grande o igual que el valor de start_date_min . |
start_date_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar envíos simples que su fecha de inicio sea más pequeña o igual al valor de start_date_max . |
page | integer (optional) Example: 1 Si existe paginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener un Envio Simple
Este método te permite obtener la información de un envío simple creado en tu cuenta
Response 200
{
"data": {
"configuration_id": 20,
"id": 20,
"name": "15",
"message": "Hola #name#! ",
"start_date": "2030-01-03 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 3,
"total_price": 0.174,
"numbers": [
{
"number": "34600000001",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000002",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000003",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "PushSimple not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/push/simple/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la configuración para obtener información |
Envio Simple
Este método te permite enviar un SMS hasta 20 destinatarios.
Puedes obtener más información sobre los Envíos Simples en la documentación de Mensagia.
Puedes encontrar ejemplos de envío en diferentes lenguajes de programación en los ejemplos de Envío Simple
Response 200
{
"data": {
"configuration_id": 38,
"id": 38,
"name": "#14",
"message": "fdsf asdlkfjasdlkfj kjf asdkjf kasldjf lkasdj flksadj flkasdjf lkasdj flksadj flksadj fldfdfkasdj flkadsj flkajsd fkljas dklfj asdlkfjklasdjf lkasdjff lksdaj #name# ",
"price": 0.058,
"price_with_packs": 0,
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_sent": 1,
"total_messages_sent_with_packs": 1,
"dlrs": [
{
"message_id": "20200114150414-1-929449-546bf20c-05fd-41e8-bdf8-b29174dcd247",
"number": "34600000001",
"messages_sent": 1,
"in_SMS_blacklist": false
}
],
"callback_url": "http://mensagia.com/post",
"start_date": "2020-01-14 16:04:14",
"certified": 0,
"certification_callback_url": ""
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"numbers": {
"3460100200": [
"Number not valid"
],
"33600100201": [
"The message can not be sent by the selected route"
]
},
"balance": "You do not have enough credit for this shipment. Current Balance: 1.000. Price: 1.044",
"message": "The message field may not be greater than 5 messages or 1800 characters. Number of SMS: 7. Characters: 1088."
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/push/simple
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
message | string (required) Example: The message to send El mensaje a enviar. Tenga en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia. |
numbers | string (required) Example: 34600000001,34600000002 Una lista de números de teléfono separados por coma, sin espacios y con el prefijo internacional. |
start_date | datetime (optional) Example: 2016-01-28 15:00 Fecha de envío con el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, el envío se realizará inmediatemente. |
url_parameters | string (optional) Example: foo=bar&name=#name# Etiquetado de enlaces si en el mensaje existe un enlace acortado, Landing o Formulario. Más información en Etiquetado de enlaces. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. |
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Eliminar Envio Simple
Este método te permite eliminar un Envío Simple que no se haya enviado todavía. Si el envío contiene más de un destinatario, eliminará los envíos para todos los destinatarios.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Push Simple not found with id: 23"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/push/simple/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 El ID de envío simple a eliminar. |
Obtener todos los Envios Multiples
Este método te permite obtener todos los envíos múltiples de tu cuenta, o buscar envíos múltiples según los parámetros enviados.
Response 200
{
"data": [
{
"configuration_id": 28,
"id": 28,
"name": "21",
"created_at": "2030-01-06 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 4,
"total_price": 0.232,
"numbers": [
{
"number": "34600000001",
"message": "Es un mensaje de prueba",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000002",
"message": "Es un mensaje de test",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000003",
"message": "Es un mensaje de test",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000004",
"message": "Es un mensaje de prueba",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
},
{
"configuration_id": 29,
"id": 29,
"name": "25",
"created_at": "2030-01-07 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 2,
"total_price": 0.116,
"numbers": [
{
"number": "34600000005",
"message": "Es un mensaje de prueba",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000006",
"message": "Es un mensaje de test",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The created_date_min value (20290-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2001-01-01 00:00:00)"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The created_date_max value (20231-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2002-01-01 00:00:00)"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/push/multiple
Query Parameters
Parameter | Description |
---|---|
created_date_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar envíos múltiples que su fecha de creación sea más grande o igual que el valor de created_date_min . |
created_date_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar envíos múltiples que su fecha de creación sea más pequeña o igual al valor de created_date_max . |
page | integer (optional) Example: 1 Si existe paginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener un Envio Multiple
Este método te permite obtener la información de un envío múltiple creado en tu cuenta
Response 200
{
"data": {
"configuration_id": 28,
"id": 28,
"name": "21",
"created_at": "2030-01-06 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_number": 4,
"total_price": 0.232,
"numbers": [
{
"number": "34600000001",
"message": "Es un mensaje de prueba",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000002",
"message": "Es un mensaje de test",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000003",
"message": "Es un mensaje de test",
"sent": "true",
"messages_number": 1,
"price": 0.058
},
{
"number": "34600000004",
"message": "Es un mensaje de prueba",
"sent": "true",
"messages_number": 1,
"price": 0.058
}
],
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "PushMultiple not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/push/multiple/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de la configuración para obtener información |
Envio Multiple
Este método te permite enviar un SMS distinto a destinatarios diferentes, con un máximo de 3000 destinatarios por petición.
Puedes obtener más información sobre los Envíos Múltiples en la documentación de Mensagia.
Puedes encontrar ejemplos de envío en diferentes lenguajes de programación en los ejemplos de Envío Múltiple
Response 200
{
"data": {
"configuration_id": 44,
"id": 44,
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"total_messages_sent": 4,
"total_messages_sent_with_packs": 1,
"price": "0.232",
"price_with_packs": "0.174",
"dlrs": [
{
"message_id": "20200115091159-1-276153-b2abaa59-4701-4afc-b90a-fcbc170c78e9",
"number": "34687976796",
"messages_sent": 1,
"in_SMS_blacklist": false
},
{
"message_id": "20200115091200-1-273865-9330f5e5-331e-4104-b3d2-8376cfba0bac",
"number": "34672142735",
"messages_sent": 1,
"in_SMS_blacklist": false
},
{
"message_id": "20200115091200-1-606062-5decdaa7-b289-4f71-befe-746425753392",
"number": "34672142687",
"messages_sent": 1,
"in_SMS_blacklist": false
},
{
"message_id": "20200115091200-1-327762-4b0342fa-ab3e-432b-8c33-4219f97d1784",
"number": "34608047079",
"messages_sent": 1,
"in_SMS_blacklist": false
}
],
"callback_url": "http://mensagia.com/post",
"certified": 0,
"certification_callback_url": ""
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"messages": "The messages field isn't a valid JSON: Syntax error, malformed JSON."
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"numbers": {
"3460010202": [
"Number not valid"
],
"34600100200": [
"The message field may not be greater than 5 messages or 1800 characters. Number of SMS: 9. Characters: 1292."
],
"33600100203": [
"The message can not be sent by the selected route"
]
},
"balance": "You do not have enough credit for this shipment. Current Balance: 1.000. Price: 1.102"
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/push/multiple
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
messages | string (optional) Example: [{"number":"34600002849","message":"Message 1"},{"number":"34600002850","message":"Message 02"}] Un array en JSON que contiene una lista con el número de teléfono y el mensaje a enviar para cada contacto. Máximo 3000 elementos. |
url_parameters | string (optional) Example: foo=bar&name=#name# Etiquetado de enlaces si en el mensaje existe un enlace acortado, Landing o Formulario. Más información en Etiquetado de enlaces. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. Valores posibles:
|
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Envio Masivo - Campañas
Este método te permite crear una nueva campaña de envíos SMS. Puedes enviar un SMS a los destinatarios de las agendas que elijas, sin limite de destinatarios.
Puedes obtener más información sobre los Envíos Másivos - Campañas en la documentación de Mensagia.
Puedes encontrar ejemplos de envío en diferentes lenguajes de programación en los ejemplos de Envío Masivo - Campañas
Response 200
{
"data": {
"id": 16,
"name": "Test Campaign API",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Message New Campaign",
"start_date": "2015-11-11 11:11:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
},
{
"id": 4,
"name": "Agenda Números Franceses"
},
{
"id": 5,
"name": "Agenda Números Andorra"
}
],
"callback_url": "https://mensagia.com/post",
"type": "Multiple",
"smsxblock": 100,
"minutesxblock": 6,
"days_allowed": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"time_intervals_allowed": [
"15:00-16:59",
"22:00-22:30"
],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 0,
"certification_callback_url": "",
"recipients": 11
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name field is required."
],
"message": [
"The message field is required."
],
"available_groups": [
"The available groups field is required."
]
}
}
}
Response 400 TIME_INTERVALS_NOT_VALID
{
"error": {
"code": "TIME_INTERVALS_NOT_VALID",
"message": "There are invalid time intervals.",
"http_code": 400,
"intervals": [
{
"interval": "15:00-15:30",
"error": "INTERVAL_INSIDE_ANOTHER"
},
{
"interval": "23-23:33",
"error": "INTERVAL_NOT_VALID"
}
]
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/push/campaigns
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
message | string (required) Example: The message to send El mensaje a enviar. Tenga en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia. |
name | string (required) Example: Campaign Number 1 El nombre para la nueva campaña. |
available_groups | string (required) Example: 3,4,5 Lista de ID’s de agendas existentes, separadas por coma y sin espacios. |
start_date | datetime (optional) Example: 2016-01-28 15:00 Fecha de inicio de campaña en el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, la campaña empezará dos minutos después de la creación de la nueva campaña. |
smsxblock | integer (optional) Example: 10 Número de destinatarios por bloque. Obligatorio en presencia de minutesxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
minutesxblock | integer (optional) Example: 10 Cada cuantos minutos se enviará el bloque de destinarios escogidos en smsxblock . Obligatorio en presencia de smsxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 Una lista de días de la semana separada por comas y sin espacios en la cual los mensajes pueden ser enviados. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Una lista de intérvalos de tiempo separados por comas y sin espacios, en los cuales el mensaje podrá ser enviado. Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
url_parameters | string (optional) Example: [{"number":"34600002849","message":"Message 1"},{"number":"34600002850","message":"Message 02"}] Un array en JSON que contiene una lista con el número de teléfono y el mensaje a enviar para cada contacto. Máximo 3000 elementos. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. Valores posibles:
|
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Códigos de error para respuestas HTTP 400
Si obtienes un código de error HTTP 400, el campo code
puede tener los siguientes valores:
Code | Description |
---|---|
VALIDATION_FAIL | The data validation is not correct. See validation_errors array. |
AGENDA_NOT_FOUND | Not valid groups |
CAMPAIGN_NOT_FOUND | The campaign was not found |
CAMPAIGN_NOT_MODIFIABLE | The campaign is not modifiable |
ROUTE_NEED_PUSH_SENDER | Can not find any sender. The chosen route requires a sender. Check the api configuration section and try to create a new one. |
NO_ROUTE_DEFINED | Can not find any route to send messages. Check the api configuration section and try to create a new one. |
DATE_INVALID | The date entered is incorrect. Use the format 'd-m-Y H:i' |
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00') |
SMS_X_BLOCK_NOT_DEFINED | Sms x Block not defined |
SMS_X_BLOCK_NOT_INTEGER | Sms x Block is not an integer |
MINUTES_X_BLOCK_NOT_DEFINED | Minutes x Block not defined |
MINUTES_X_BLOCK_NOT_INTEGER | Minutes x Block must be an integer |
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock. |
Envio Masivo a traves de archivo - Campañas
Este método te permite realizar un envío masivo de SMS a través de un archivo (.txt, .csv o .xlsx) que contiene una columna con los números de los destinatarios y en otra columna el mensaje a enviar a cada destinatario. A diferencia del Envío Másivo normal, podemos realizar el envío sin la necesidad de usar agendas ni guardar los contactos previamente y enviar un SMS diferente a cada destinatario.
Este método es el más eficiente si deseas enviar un gran volumen de SMS y no quieres guardar tus contactos en agendas, únicamente realizar una campaña de envío SMS con un mensaje diferente o no para cada uno de los destinatarios. A diferencia de otros métodos como 'Importar contactos mediante JSON' del grupo 'Contactos', al utilizar un archivo no hay límite de contactos a enviar por petición por lo que simplifica el proceso de enviar una campaña.
Los contactos que hay en el archivo serán guardados automáticamente en la agenda 'Todos los contactos' después de procesarlos para agilizar futuras campañas a través de archivo.
Puedes obtener más información sobre los Envíos Másivo a través de archivo en la documentación de Mensagia.
Response 200
{
"data": {
"id": 6,
"name": "Campaña a través de archivo",
"active": 1,
"state_id": 8,
"state_name": "Waiting for reading",
"message": "",
"start_date": "2030-01-22 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [],
"callback_url": "",
"type": "Multiple",
"smsxblock": 10,
"minutesxblock": 100,
"days_allowed": [
"monday",
"tuesday",
"friday"
],
"time_intervals_allowed": [
"8:00-12:00",
"16:00-19:00"
],
"origin": "from_file",
"filename": "contacts.csv",
"need_approval": false,
"certified": 0,
"certification_callback_url": "",
"recipients": 0,
"process_id": 14,
"concat_multiple_messages": 0
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name field is required."
],
"message": [
"The message field is required."
],
"available_groups": [
"The available groups field is required."
]
}
}
}
Response 400 TIME_INTERVALS_NOT_VALID
{
"error": {
"code": "TIME_INTERVALS_NOT_VALID",
"message": "There are invalid time intervals.",
"http_code": 400,
"intervals": [
{
"interval": "15:00-15:30",
"error": "INTERVAL_INSIDE_ANOTHER"
},
{
"interval": "23-23:33",
"error": "INTERVAL_NOT_VALID"
}
]
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/push/campaigns_from_file
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
name | string (required) Example: Campaign Number 1 El nombre para la nueva campaña. |
file | file (required) Example: contacts.csv Un archivo TXT (.txt), CSV (.csv) o Excel (.xlsx) que contenga una columna con los números de móvil y otra columna con el mensaje a enviar a cada número de movil. El archivo ha de tener un peso máximo de 50 MB. |
num_col_number | integer (optional) Default: 1 Example: 2 El número de la columna que contiene los números de móvil. |
num_col_message | integer (optional) Default: 2 Example: 1 El número de la columna que contiene los mensajes a enviar. |
add_prefix | integer (optional) Example: 34 Si ningún número de móvil del archivo tiene prefijo y son todos del mismo país, puedes añadirle el prefijo que desees a todos los números de móvil del archivo. |
file_has_heading | integer (optional) Default: 0 Example: 1 Si la primera línea del archivo a subir contiene encabezados (títulos de las columnas) envía un 1 para que no procesemos la primera línea del archivo. Valores posibles:
|
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
concat_multiple_messages | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si deseas que los destinatarios que aparezcan más de una vez en el fichero reciban todos los mensajes asignados a ellos, por lo que se enviarán concatenados entre sí en orden aleatorio con un doble salto de línea. Si envías el parámetro con valor 0 o lo omites, estos destinatarios recibirán solo un mensaje escogido de forma aleatoria entre los proporcionados. Valores posibles:
|
start_date | datetime (optional) Example: 2016-01-28 15:00 Fecha de inicio de campaña en el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, la campaña empezará dos minutos después de la creación de la nueva campaña. |
smsxblock | integer (optional) Example: 10 Número de destinatarios por bloque. Obligatorio en presencia de minutesxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
minutesxblock | integer (optional) Example: 10 Cada cuantos minutos se enviará el bloque de destinatarios escogidos en smsxblock . Obligatorio en presencia de smsxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 Una lista de días de la semana separada por comas y sin espacios en la cual los mensajes pueden ser enviados. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Una lista de intervalos de tiempo separados por comas y sin espacios, en los cuales el mensaje podrá ser enviado. Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
url_parameters | string (optional) Example: [{"number":"34600002849","message":"Message 1"},{"number":"34600002850","message":"Message 02"}] Un array en JSON que contiene una lista con el número de teléfono y el mensaje a enviar para cada contacto. Máximo 3000 elementos. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Códigos de error para respuestas HTTP 400
Si obtienes un código de error HTTP 400, el campo code
puede tener los siguientes valores:
Code | Description |
---|---|
VALIDATION_FAIL | The data validation is not correct. See validation_errors array. |
AGENDA_NOT_FOUND | Not valid groups |
CAMPAIGN_NOT_FOUND | The campaign was not found |
CAMPAIGN_NOT_MODIFIABLE | The campaign is not modifiable |
ROUTE_NEED_PUSH_SENDER | Can not find any sender. The chosen route requires a sender. Check the api configuration section and try to create a new one. |
NO_ROUTE_DEFINED | Can not find any route to send messages. Check the api configuration section and try to create a new one. |
DATE_INVALID | The date entered is incorrect. Use the format 'd-m-Y H:i' |
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00') |
SMS_X_BLOCK_NOT_DEFINED | Sms x Block not defined |
SMS_X_BLOCK_NOT_INTEGER | Sms x Block is not an integer |
MINUTES_X_BLOCK_NOT_DEFINED | Minutes x Block not defined |
MINUTES_X_BLOCK_NOT_INTEGER | Minutes x Block must be an integer |
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock. |
AGENDA_CREATE_FAILS | Failed when creating internal agenda |
CAMPAIGN_WITHOUT_AGENDA | Can not find internal agenda from campaign |
PROCESS_CREATE_FAILS | Failed when creating new process |
CAMPAING_CREATE_FAILS | Failed creating campaign |
Envio Masivo - Campañas SMS
Métodos para administrar las campañas de tu cuenta
Accesible únicamente para cuentas de tipo cliente
Configuraciones de envío
Para poder realizar Envíos SMS desde la API de Mensagia, es necesario crear una configuración de envío API
Las configuraciones de envío definen el remitente que se usará en el envío. De esta manera, si necesitas cambiar el remitente en tus envíos, no deberás tocar código, sólo modificar la configuración de envío desde el portal.
Mensajes a enviar
Cuando escribas el mensaje para enviar a tus destinatarios es muy importante que tengas en cuenta las consideraciones sobre los mensajes a enviar, para tener en cuenta la longitud máxima del SMS y caracteres especiales.
SMS Certificado
Puedes enviar SMS Certificados usando el parámetro certified=1
. Más información en la documentación sobre Envíos Certificados
Obtener todas las campañas
Este método te permite obtener todas las campañas de tu cuenta, o buscar campañas según los parámetros enviados.
Response 200
{
"data": [
{
"id": 8,
"name": "Estado En Espera - Campos Personalizados",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Hola #name#! ",
"start_date": "2030-01-03 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 2,
"name": "Todos los contactos"
}
],
"callback_url": "",
"type": "Simple",
"smsxblock": "",
"minutesxblock": "",
"days_allowed": [],
"time_intervals_allowed": [],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 0,
"certification_callback_url": ""
},
{
"id": 7,
"name": "Estado En Espera - Multiple",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Mensaje Campaña - Multiple ",
"start_date": "2030-01-02 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 2,
"name": "Todos los contactos"
}
],
"callback_url": "",
"type": "Multiple",
"smsxblock": 10,
"minutesxblock": 100,
"days_allowed": [
"monday",
"tuesday",
"friday"
],
"time_intervals_allowed": [
"8:00-12:00",
"16:00-19:00"
],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 1,
"certification_callback_url": ""
},
{
"id": 6,
"name": "Campaña a través de fichero",
"active": 1,
"state_id": 7,
"state_name": "Waiting for approval",
"message": "",
"start_date": "2030-01-22 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [],
"callback_url": "",
"type": "Multiple",
"smsxblock": 10,
"minutesxblock": 100,
"days_allowed": [
"monday",
"tuesday",
"friday"
],
"time_intervals_allowed": [
"8:00-12:00",
"16:00-19:00"
],
"origin": "from_file",
"filename": "myFile.csv",
"need_approval": true,
"certified": 0,
"certification_callback_url": ""
}
],
"meta": {
"pagination": {
"total": 3,
"count": 3,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_min value (20290-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2001-01-01 00:00:00)"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_max value (20231-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2002-01-01 00:00:00)"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/campaigns
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: diciemb_ Envía este parámetro si quieres buscar por nombre de la campaña. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
active | integer (optional) Example: 1 Envía este parámetro si quieres buscar campañas por su estado. Valores posibles:
|
state_id | integer (optional) Example: 1 Envía este parámetro si quieres buscar campañas por su estado de campaña. Consulta los estados posibles de una campaña y los estados de una de una campaña a partir de archivo en la documentación de Mensagia. Valores posibles:
|
start_date_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar campañas que su fecha de inicio sea más grande o igual que el valor de start_date_min . |
start_date_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar campañas que su fecha de inicio sea más pequeña o igual al valor de start_date_max . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener una campaña
Este método te permite obtener la información de una campaña creada en tu cuenta
Response 200
{
"data": {
"configuration_id": 11,
"id": 11,
"name": "Estado Finalizada - Simple",
"active": 0,
"state_id": 5,
"state_name": "Done",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 2,
"name": "Todos los contactos"
}
],
"message": "Estado Finalizada - Simple",
"start_date": "2016-08-01 12:00:00",
"type": "Simple",
"smsxblock": "",
"minutesxblock": "",
"days_allowed": [],
"time_intervals_allowed": [],
"origin": "from_agenda",
"filename": "",
"need_approval": 0,
"certified": 0,
"certification_callback_url": "",
"reports_to_send": {
"total_recipients_to_send": 2,
"total_messages_to_send": 2,
"total_price_to_send": 0.116,
"total_price_to_send_using_packs": 0.058,
"total_messages_to_send_using_packs": 1,
"by_country": {
"es": {
"recipients": 2,
"messages_to_send": 2,
"price": 0.116,
"messages_to_send_using_packs": 1,
"price_using_packs": 0.058
}
}
},
"reports_sent": {
"total_recipients_sent": 11,
"total_messages_sent": 11,
"total_price_sent": 0.342,
"total_messages_sent_using_packs": 2,
"by_country": {
"es": {
"recipients": 6,
"messages_sent": 6,
"price": 0.192,
"messages_sent_using_packs": 2,
"pack_id": 1
},
"ad": {
"recipients": 2,
"messages_sent": 2,
"price": 0.048,
"messages_sent_using_packs": 0,
"pack_id": null
},
"fr": {
"recipients": 3,
"messages_sent": 3,
"price": 0.102,
"messages_sent_using_packs": 0,
"pack_id": null
}
}
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/campaigns/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 10 ID de campaña para obtener información |
show_messages_to_send | integer (optional) Default: 0 Example: 1Si envias un 0, no se mostrará la informacíon sobre los mensajes a enviar. Si envias un 1, se mostrará la informacíon sobre los mensajes a enviar. Valores posibles:
|
show_messages_sent | integer (optional) Default: 0 Example: 0Si envias un 0, no se mostrará la informacíon sobre los mensajes enviados. Si envias un 1, se mostrará la informacíon sobre los mensajes enviados. Valores posibles:
|
Crear una campaña
Este método te permite crear una nueva campaña de envíos SMS. Puedes enviar un SMS a los destinatarios de las agendas que elijas, sin limite de destinatarios.
Puedes obtener más información sobre los Envíos Másivos - Campañas en la documentación de Mensagia.
Puedes encontrar ejemplos de envío en diferentes lenguajes de programación en los ejemplos de Envío Masivo - Campañas
Response 200
{
"data": {
"id": 16,
"name": "Test Campaign API",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Message New Campaign",
"start_date": "2015-11-11 11:11:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
},
{
"id": 4,
"name": "Agenda Números Franceses"
},
{
"id": 5,
"name": "Agenda Números Andorra"
}
],
"callback_url": "https://mensagia.com/post",
"type": "Multiple",
"smsxblock": 100,
"minutesxblock": 6,
"days_allowed": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"time_intervals_allowed": [
"15:00-16:59",
"22:00-22:30"
],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"recipients": 11,
"certified": 0,
"certification_callback_url": ""
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name field is required."
],
"message": [
"The message field is required."
],
"available_groups": [
"The available groups field is required."
]
}
}
}
Response 400 TIME_INTERVALS_NOT_VALID
{
"error": {
"code": "TIME_INTERVALS_NOT_VALID",
"message": "There are invalid time intervals.",
"http_code": 400,
"intervals": [
{
"interval": "15:00-15:30",
"error": "INTERVAL_INSIDE_ANOTHER"
},
{
"interval": "23-23:33",
"error": "INTERVAL_NOT_VALID"
}
]
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
message | string (required) Example: The message to send El mensaje a enviar. Tenga en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia. |
name | string (required) Example: Campaign Number 1 El nombre para la nueva campaña. |
available_groups | string (required) Example: 3,4,5 Lista de ID’s de agendas existentes, separadas por coma y sin espacios. |
start_date | datetime (optional) Example: 2016-01-28 15:00 Fecha de inicio de campaña en el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, la campaña empezará dos minutos después de la creación de la nueva campaña. |
smsxblock | integer (optional) Example: 10 Número de destinatarios por bloque. Obligatorio en presencia de minutesxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
minutesxblock | integer (optional) Example: 10 Cada cuantos minutos se enviará el bloque de destinarios escogidos en smsxblock . Obligatorio en presencia de smsxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 Una lista de días de la semana separada por comas y sin espacios en la cual los mensajes pueden ser enviados. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Una lista de intérvalos de tiempo separados por comas y sin espacios, en los cuales el mensaje podrá ser enviado. Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
url_parameters | string (optional) Example: [{"number":"34600002849","message":"Message 1"},{"number":"34600002850","message":"Message 02"}] Un array en JSON que contiene una lista con el número de teléfono y el mensaje a enviar para cada contacto. Máximo 3000 elementos. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. Valores posibles:
|
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Códigos de error para respuestas HTTP 400
Si obtienes un código de error HTTP 400, el campo code
puede tener los siguientes valores:
Code | Description |
---|---|
VALIDATION_FAIL | The data validation is not correct. See validation_errors array. |
AGENDA_NOT_FOUND | Not valid groups |
CAMPAIGN_NOT_FOUND | The campaign was not found |
CAMPAIGN_NOT_MODIFIABLE | The campaign is not modifiable |
ROUTE_NEED_PUSH_SENDER | Can not find any sender. The chosen route requires a sender. Check the api configuration section and try to create a new one. |
NO_ROUTE_DEFINED | Can not find any route to send messages. Check the api configuration section and try to create a new one. |
DATE_INVALID | The date entered is incorrect. Use the format 'd-m-Y H:i' |
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00') |
SMS_X_BLOCK_NOT_DEFINED | Sms x Block not defined |
SMS_X_BLOCK_NOT_INTEGER | Sms x Block is not an integer |
MINUTES_X_BLOCK_NOT_DEFINED | Minutes x Block not defined |
MINUTES_X_BLOCK_NOT_INTEGER | Minutes x Block must be an integer |
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock. |
Crear una campaña a traves de archivo
Este método te permite crear una campaña para realizar un envío masivo de SMS a través de un archivo (.xlsx o .csv) que contiene una columna con los números de los destinatarios y en otra columna el mensaje a enviar a cada destinatario. A diferencia del Envío Másivo normal, podemos realizar el envío sin la necesidad de usar agendas ni guardar los contactos previamente y enviar un SMS diferente a cada destinatario.
Este método es el más eficiente si deseas enviar un gran volumen de SMS y no quieres guardar tus contactos en agendas, únicamente realizar una campaña de envío SMS con un mensaje diferente o no para cada uno de los destinatarios. A diferencia de otros métodos como 'Importar contactos mediante JSON' del grupo 'Contactos', al utilizar un archivo no hay límite de contactos a enviar por petición por lo que simplifica el proceso de enviar una campaña.
Los contactos que hay en el archivo serán guardados automáticamente en la agenda 'Todos los contactos' después de procesarlos para agilizar futuras campañas a través de archivo.
Puedes obtener más información sobre los Envíos Másivo a través de archivo en la documentación de Mensagia.
Response 200
{
"data": {
"id": 6,
"name": "Campaña a través de archivo",
"active": 1,
"state_id": 8,
"state_name": "Waiting for reading",
"message": "",
"start_date": "2030-01-22 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [],
"callback_url": "",
"type": "Multiple",
"smsxblock": 10,
"minutesxblock": 100,
"days_allowed": [
"monday",
"tuesday",
"friday"
],
"time_intervals_allowed": [
"8:00-12:00",
"16:00-19:00"
],
"origin": "from_file",
"filename": "contacts.csv",
"need_approval": false,
"certified": 0,
"certification_callback_url": "",
"recipients": 0,
"process_id": 14,
"concat_multiple_messages": 0
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name field is required."
],
"message": [
"The message field is required."
],
"available_groups": [
"The available groups field is required."
]
}
}
}
Response 403 TIME_INTERVALS_NOT_VALID
{
"error": {
"code": "TIME_INTERVALS_NOT_VALID",
"message": "There are invalid time intervals.",
"http_code": 400,
"intervals": [
{
"interval": "15:00-15:30",
"error": "INTERVAL_INSIDE_ANOTHER"
},
{
"interval": "23-23:33",
"error": "INTERVAL_NOT_VALID"
}
]
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns/from_file
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
name | string (required) Example: Campaign Number 1 El nombre para la nueva campaña. |
file | file (required) Example: contacts.csv Un archivo TXT (.txt), CSV (.csv) o Excel (.xlsx) que contenga una columna con los números de móvil y otra columna con el mensaje a enviar a cada número de movil. El archivo ha de tener un peso máximo de 50 MB. |
num_col_number | integer (optional) Default: 1 Example: 2 El número de la columna que contiene los números de móvil. |
num_col_message | integer (optional) Default: 2 Example: 1 El número de la columna que contiene los mensajes a enviar. |
add_prefix | integer (optional) Example: 34 Si ningún número de móvil del archivo tiene prefijo y son todos del mismo país, puedes añadirle el prefijo que desees a todos los números de móvil del archivo. |
file_has_heading | integer (optional) Default: 0 Example: 1 Si la primera línea del archivo a subir contiene encabezados (títulos de las columnas) envía un 1 para que no procesemos la primera línea del archivo. Valores posibles:
|
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
concat_multiple_messages | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si deseas que los destinatarios que aparezcan más de una vez en el fichero reciban todos los mensajes asignados a ellos, por lo que se enviarán concatenados entre sí en orden aleatorio con un doble salto de línea. Si envías el parámetro con valor 0 o lo omites, estos destinatarios recibirán solo un mensaje escogido de forma aleatoria entre los proporcionados. Valores posibles:
|
start_date | datetime (optional) Example: 2016-01-28 15:00 Fecha de inicio de campaña en el formato 'YYYY-MM-DD hh:mm'. Si no envías este parámetro, la campaña empezará dos minutos después de la creación de la nueva campaña. |
smsxblock | integer (optional) Example: 10 Número de destinatarios por bloque. Obligatorio en presencia de minutesxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
minutesxblock | integer (optional) Example: 10 Cada cuantos minutos se enviará el bloque de destinatarios escogidos en smsxblock . Obligatorio en presencia de smsxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 Una lista de días de la semana separada por comas y sin espacios en la cual los mensajes pueden ser enviados. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Una lista de intervalos de tiempo separados por comas y sin espacios, en los cuales el mensaje podrá ser enviado. Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
url_parameters | string (optional) Example: [{"number":"34600002849","message":"Message 1"},{"number":"34600002850","message":"Message 02"}] Un array en JSON que contiene una lista con el número de teléfono y el mensaje a enviar para cada contacto. Máximo 3000 elementos. |
url_extrafields_mode | string (optional) Default: realtime Example: on_send Si incluyes enlaces acortados o landings en tus envíos, puedes escoger que valor mostrarán los campos personalizados cuando el destinatario visualice el contenido. Más información en Opciones de los campos personalizados. Valores posibles:
|
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Códigos de error para respuestas HTTP 400
Si obtienes un código de error HTTP 400, el campo code
puede tener los siguientes valores:
Code | Description |
---|---|
VALIDATION_FAIL | The data validation is not correct. See validation_errors array. |
AGENDA_NOT_FOUND | Not valid groups |
CAMPAIGN_NOT_FOUND | The campaign was not found |
CAMPAIGN_NOT_MODIFIABLE | The campaign is not modifiable |
ROUTE_NEED_PUSH_SENDER | Can not find any sender. The chosen route requires a sender. Check the api configuration section and try to create a new one. |
NO_ROUTE_DEFINED | Can not find any route to send messages. Check the api configuration section and try to create a new one. |
DATE_INVALID | The date entered is incorrect. Use the format 'd-m-Y H:i' |
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00') |
SMS_X_BLOCK_NOT_DEFINED | Sms x Block not defined |
SMS_X_BLOCK_NOT_INTEGER | Sms x Block is not an integer |
MINUTES_X_BLOCK_NOT_DEFINED | Minutes x Block not defined |
MINUTES_X_BLOCK_NOT_INTEGER | Minutes x Block must be an integer |
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock. |
AGENDA_CREATE_FAILS | Failed when creating internal agenda |
CAMPAIGN_WITHOUT_AGENDA | Can not find internal agenda from campaign |
PROCESS_CREATE_FAILS | Failed when creating new process |
CAMPAING_CREATE_FAILS | Failed creating campaign |
Activar una campaña
Este método te permite activar una campaña desactiva.
Estados de campaña permitidos cuando activas
Ten en cuenta que sólo podras activar una campaña desactivada si tiene los siguientes estados:
- En espera (1)
- Iniciada (2)
- Sin Saldo (4)
Response 200
{
"data": {
"id": 8,
"name": "Estado En Espera - Campos Personalizados",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Estado En espera Campos Personalizados #name#",
"start_date": "2030-01-03 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 2,
"name": "Todos los contactos"
}
],
"callback_url": "",
"type": "Simple",
"smsxblock": "",
"minutesxblock": "",
"days_allowed": [],
"time_intervals_allowed": [],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "You can only activate disabled campaigns with the states: Ready (1), Started (2) and Without Balance (4)"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns/{id}/activate
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a activar. |
Desactivar una campaña
Este método te permite desactivar una campaña activa.
Estados de campaña permitidos cuando desactivas
Ten en cuenta que sólo podras desactivar una campaña activa si tiene los siguientes estados:
- En espera (1)
- Iniciada (2)
- En curso (3)
Response 200
{
"data": {
"id": 8,
"name": "Estado En Espera - Campos Personalizados",
"active": 0,
"state_id": 1,
"state_name": "Waiting",
"message": "Estado En espera Campos Personalizados #name#",
"start_date": "2030-01-03 11:00:00",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [{
"id": 2,
"name": "Todos los contactos"
}],
"callback_url": "",
"type": "Simple",
"smsxblock": "",
"minutesxblock": "",
"days_allowed": [],
"time_intervals_allowed": [],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can only deactivate activated campaigns with the states: Ready (1), Started (2) and Running (3)"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns/{id}/deactivate
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a desactivar. |
Enviar ahora
Este método te permite cambiar la fecha de inicio de una campaña a la fecha actual para que el envío de SMS comience inmediatamente. Este método sólo es válido para campañas en estado En espera (1).
Response 200
{
"data": {
"id": 8,
"name": "Campaña Campos Personalizados",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Mensaje con Campos Personalizados. Hola #name#",
"start_date": "2016-12-15 11:53:44",
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [{
"id": 2,
"name": "Todos los contactos"
}],
"callback_url": "",
"type": "Simple",
"smsxblock": "",
"minutesxblock": "",
"days_allowed": [],
"time_intervals_allowed": [],
"origin": "from_agenda",
"filename": "",
"need_approval": false,
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can only execute campaigns with the state: Ready (1)."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns/{id}/execute_now
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a ejecutar ahora. |
Eliminar una campaña
Este método te permite eliminar una campaña de tu cuenta. No se pueden eliminar directamente campañas en curso. Si quieres eliminar una campaña con el estado 'En curso' primero debes desactivarla y luego eliminarla.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can not delete campaigns with Running (3) state. You must deactivate the campaign first before deleting it."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/campaigns/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a eliminar. |
Simulador de coste de campaña
Este método te permite obtener el coste del envío de una campaña SMS antes de crearla.
Response 200
{
"data": {
"push_sender_name": "SENDER",
"route_name": "Conexión directa",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
},
{
"id": 4,
"name": "Agenda Números Franceses"
},
{
"id": 5,
"name": "Agenda Números Andorra"
},
{
"id": 6,
"name": "Agenda Números FrancoEspañola"
}
],
"message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vestibulum fringilla ex et gravida. Aliquam erat volutpat. Suspendisse augue purus, lacinia nullam",
"reports_to_send": {
"total_recipients_to_send": 11,
"total_messages_to_send": 11,
"total_price_to_send": 0.608,
"by_country": {
"es": {
"recipients": 6,
"messages_to_send": 6,
"price": 0.348
},
"ad": {
"recipients": 2,
"messages_to_send": 2,
"price": 0.068
},
"fr": {
"recipients": 3,
"messages_to_send": 3,
"price": 0.192
}
}
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test_bronz' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "campaign_id can not be null"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "available_groups can not be null"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "message can not be null"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/campaigns/cost_simulator
Query Parameters
Parameter | Description |
---|---|
configuration_name | string (required) Example: configuration1 Nombre de la configuración de la API. Puedes gestionar tus configuraciones de API en https://mensagia.com/api/configurations. |
message | string (required) Example: The message to send El mensaje a enviar. Tenga en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia. |
available_groups | string (required) Example: 3,4,5 Lista de ID’s de agendas existentes, separadas por coma y sin espacios. |
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
Obtener resumen Notificaciones de Entrega
Este método te permite obtener el resumen de notificaciones de entrega para una campaña determinada. Puedes consultar el listado de notificaciones de entrega en la documentación de Mensagia.
Response 200
{
"data": [
{
"delivery_report_state_id": 0,
"count": 1
},
{
"delivery_report_state_id": 1,
"count": 8
},
{
"delivery_report_state_id": 2,
"count": 1
},
{
"delivery_report_state_id": 4,
"count": 1
}
]
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "campaign_id can not be null"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/campaigns/{id}/dlr_summary
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña para obtener el resumen de notificaciones de entrega. |
Métodos para el envío de emails transaccionales.
Accesible únicamente para cuentas de tipo cliente
.
Email Certificado
Puedes enviar emails certificados usando el parámetro certified=1
. Más información en la documentación sobre Envíos Certificados
Envio Simple (Transactional)
Este método te permite enviar el mismo email a hasta 5 destinatarios. En los campos subject
y html
puedes usar Campos personalizados.
Response 200
{
"data": {
"app_configuration_id": 156,
"start_date": "2022-05-13 13:33:08",
"domain_id": 1,
"sender_address_id": 11,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"to": {
"valids": [
"user1@example.com"
],
"discardeds": [
"user2@example.com"
],
"blacklisteds": []
},
"subject": "Subject Email",
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/logo.png",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/campana.png"
],
"url_parameters": null,
"callback_url": "",
"callback_clicks_url": "",
"callback_openings_url": "",
"callback_complains_url": "",
"certified": 0,
"certification_callback_url": ""
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"from": [
"Domain of from element is not verified",
"Domain of from element is verified but not authenticated",
"Domain of from element is not valid",
"Create new sender address fails. From_name is mandatory when creating new sender address. Check the from email format too."
],
"subject": [
"The subject field is required."
],
"html": [
"The html field is required."
],
"to": [
"The to field is required.",
"There must be at least one valid recipient to send"
],
"callback_url": [
"The callback url format is invalid."
],
"callback_clicks_url": [
"The callback clicks url format is invalid."
],
"callback_openings_url": [
"The callback openings url format is invalid."
],
"callback_complains_url": [
"The callback complains url format is invalid."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/email/simple
Query Parameters
Parameter | Description |
---|---|
from | string (required) Example: news@mydomain.com Una dirección de email que actuará como remitente. Debe ser una dirección de envío creada en la plataforma, o una dirección de envío con un dominio validado y autentificado en la plataforma. |
from_name | string (optional) Example: News MyDomain Envía este campo si quieres usar otro nombre de remitente diferente al que esta guardado en una dirección de envío en la plataforma si usarás una que ya está creada. Si creas una nueva dirección de envío (usando un dominio validado y autentificado), este campo es obligatorio. |
to | string (required) Example: user1@example.com,user2@example.com Las direcciones de email a las que se les realizará el envío. Puedes usar hasta 5 direcciones de email separadas por comas. |
subject | string (required) Example: My Subject El asunto a enviar. Este campo admite Campos personalizados. |
html | string (required without template_id parameter) Example: ¡Hola! El HTML a enviar. Este campo admite Campos personalizados. |
template_id | integer (required without html parameter) Example: 1 Puedes usar un ID de plantilla de email para obtener el HTML para el envío. Si se envía este parámetro se ignorará el parámetro html. |
start_date | datetime (optional) Example: 2022-05-13 13:33 Fecha de envío con el formato 'YYYY-MM-DD hh:mm'. Si no envías este parámetro, el envío se realizará inmediatamente. |
url_parameters | string (optional) Example: foo=bar Etiquetado de enlaces en el contenido del email. Más información en Etiquetado de enlaces. |
attachments | string (optional) Example: https://mydomain.com/news.pdf,https://mydomain.com/news1.pdf Una lista de URL separada por comas con los archivos a adjuntar. Puedes adjuntar hasta 5M en archivos. Archivos permitidos:
|
callback_url | string (optional) Example: https://mydomain.com/callback_dlr Una URL válida donde enviaremos una petición POST con el resultado de las notificaciones de entrega en el momento que las recibamos. Más información en Callback URL para las notificaciones de entrega. |
callback_clicks_url | string (optional) Example: https://mydomain.com/callback_clicks Una URL válida donde enviaremos una petición POST cada vez que un usuario realice un click a alguno de los enlaces del envío. Más información en Callback URL para notificar los clicks en los enlaces de envíos de Email. |
callback_openings_url | string (optional) Example: https://mydomain.com/callback_openings Una URL válida donde enviaremos una petición POST cada vez que un usuario realice una apertura de este envío. Más información en Callback URL para notificar las aperturas de envíos de Email. |
callback_complains_url | string (optional) Example: https://mydomain.com/callback_complains Una URL válida donde enviaremos una petición POST cada vez que recibamos una queja de SPAM del dominio del remitente del envío. Más información en Callback URL para notificar los reportes de SPAM de los usuarios. |
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar Emails Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada email enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Crear una Campaña
Este método te permite enviar campañas de email, sin limite de destinatarios. En los campos subject
y html
puedes usar Campos personalizados.
Response 200
{
"data": {
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] My Email Campaign",
"start_date": "2021-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda 1"
},
{
"id": 4,
"name": "Agenda 2"
}
],
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news.pdf",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news1.pdf"
],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": "",
"callback_clicks_url": "",
"callback_openings_url": "",
"callback_complains_url": "",
"certified": 0,
"certification_callback_url": "",
"summary": {
"to_send": {
"recipients": 6,
"in_email_blacklist": 1,
"not_subscribeds": 1,
"discardeds": 1,
"valids": 3
}
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"from": [
"Domain of from element is not verified",
"Domain of from element is verified but not authenticated",
"Domain of from element is not valid",
"Create new sender address fails. From_name is mandatory when creating new sender address. Check the from email format too."
],
"subject": [
"The subject field is required."
],
"html": [
"The html field is required."
],
"groups": [
"The groups field is required.",
"The groups field have not numerics groups IDs"
],
"minutesxblock": [
"The minutesxblock must be a number.",
"The minutesxblock field is required when emailxblock is present.",
"The value of emailsxblock/minutesxblock can't be greather than 20000."
],
"emailxblock": [
"The emailsxblock must be a number.",
"The emailxblock field is required when minutesxblock is present.",
"The value of emailsxblock/minutesxblock can't be greather than 20000.",
"The emailsxblock maximum value is 100000"
],
"callback_url": [
"The callback url format is invalid."
],
"callback_clicks_url": [
"The callback clicks url format is invalid."
],
"callback_openings_url": [
"The callback openings url format is invalid."
],
"callback_complains_url": [
"The callback complains url format is invalid."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/email/campaigns
Query Parameters
Parameter | Description |
---|---|
name | string (required) Example: Email Campaign El nombre para la nueva campaña. |
from | string (required) Example: news@mydomain.com Una dirección de email que actuará como remitente. Debe ser una dirección de envío creada en la plataforma, o una dirección de envío con un dominio validado y autentificado en la plataforma. |
from_name | string (optional) Example: News MyDomain Envía este campo si quieres usar otro nombre de remitente diferente al que esta guardado en una dirección de envío en la plataforma si usarás una que ya está creada. Si creas una nueva dirección de envío (usando un dominio validado y autentificado), este campo es obligatorio. |
groups | string (required) Example: 3,4 Lista de ID’s de agendas existentes, separadas por coma y sin espacios. |
subject | string (required) Example: My Subject El asunto a enviar. Este campo admite Campos personalizados. |
html | string (required without template_id) Example: ¡Hola! El HTML a enviar. Este campo admite Campos personalizados. |
template_id | integer (required without html parameter) Example: 1 Puedes usar un ID de plantilla de email para obtener el HTML para el envío. Si se envía este parametro se ignorará el parámetro html. |
plan_name | string (required) Example: warmup_plan Escoge el plan de envío para la campaña. Si el plan de envío es de tipo custom deberás enviar obligatoriamente emailsxblock y minutesxblock . Consulta la documentación de planificar una campaña de email para conocer más detalles sobre los planes de envío de email.Valores posibles:
|
start_date | datetime (optional) Example: 2022-05-13 13:33 Fecha de envío con el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, el envío se realizará inmediatemente. |
url_parameters | string (optional) Example: foo=bar Etiquetado de enlaces en el contenido del email. Más información en Etiquetado de enlaces. |
attachments | string (optional) Example: https://mydomain.com/news.pdf,https://mydomain.com/news1.pdf Una lista de URL separada por comas con los archivos a adjuntar. Puedes adjuntar hasta 5M en archivos Archivos permitidos:
|
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 No se tendrá en cuenta si el plan de envío es de tipo all_at_once . Una lista de días de la semana separada por comas y sin espacios en la cual los emails pueden ser enviados. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). |
emailsxblock | integer (optional) Example: 10 Solo se tendrá en cuenta si el plan de envío es de tipo custom y será obligatorio. Número de destinatarios por bloque. |
minutesxblock | integer (optional) Example: 10 Solo se tendrá en cuenta si el plan de envío es de tipo custom y será obligatorio. Cada cuantos minutos se enviará el bloque de destinarios escogidos en emailsxblock . |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Solo se tendrá en cuenta si el plan de envío es de tipo custom . Una lista de intérvalos de tiempo separados por comas y sin espacios, en los cuales el el email podrá ser enviado. |
callback_url | string (optional) Example: https://mydomain.com/callback_dlr Una URL válida donde enviaremos una petición POST con el resultado de las notificaciones de entrega en el momento que las recibamos. Más información en Callback URL para las notificaciones de entrega. |
callback_clicks_url | string (optional) Example: https://mydomain.com/callback_clicks Una URL válida donde enviaremos una petición POST cada vez que un usuario realice un click a alguno de los enlaces del envío. Más información en Callback URL para notificar los clicks en los enlaces de envíos de Email. |
callback_openings_url | string (optional) Example: https://mydomain.com/callback_openings Una URL válida donde enviaremos una petición POST cada vez que un usuario realice una apertura de este envío. Más información en Callback URL para notificar las aperturas de envíos de Email. |
callback_complains_url | string (optional) Example: https://mydomain.com/callback_complains Una URL válida donde enviaremos una petición POST cada vez que recibamos una queja de SPAM del dominio del remitente del envío. Más información en Callback URL para notificar los reportes de SPAM de los usuarios. |
certified | integer (optional) Default: 0 Example: 1 Envía este parámetro con valor 1 si quieres enviar SMS Certificados. Más información en Envíos Certificados. Este servicio tiene un coste añadido por cada SMS enviado. Valores posibles:
|
certification_callback_url | string (optional) Example: https://mydomain.com/callback_cert Una URL válida donde enviaremos una petición POST con información acerca de la certificación realizada si certified=1 . Más información en Obtener certificados a través de un callback a una URL. |
Obtener todas las campañas
Este método te permite obtener todas las campañas de tu cuenta, o buscar campañas según los parámetros enviados.
Response 200
{
"data": [
{
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] Mi Email Campaing 1",
"start_date": "2022-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": null,
"from_name": null,
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
}
],
"attachments": [],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": null,
"callback_clicks_url": null,
"callback_openings_url": null,
"callback_complains_url": null,
"certified": 0,
"certification_callback_url": ""
},
{
"application_id": 10,
"app_configuration_id": 59,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[Test] Campaigns API 2",
"start_date": "2032-11-11 11:11:11",
"domain_id": 1,
"sender_address_id": 7,
"from": null,
"from_name": null,
"subject": "Subject Test API 2",
"groups": [
{
"id": 4,
"name": "Agenda Números Franceses"
},
{
"id": 3,
"name": "Agenda Números Españoles"
}
],
"attachments": [],
"url_parameters": "mi_campana&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"15:00-16:59",
"22:00-22:30"
],
"emailsxblock": 500,
"minutesxblock": 2,
"days_allowed": [
"monday",
"wednesday",
"friday",
"sunday"
],
"callback_url": "https://mensagia.com/callback",
"callback_clicks_url": "https://mensagia.com/callback_clicks",
"callback_openings_url": "https://mensagia.com/callback_openings",
"callback_complains_url": "https://mensagia.com/callback_complains",
"certified": 0,
"certification_callback_url": ""
},
{
"application_id": 10,
"app_configuration_id": 60,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[Test] Campaigns API 3",
"start_date": "2032-11-11 11:11:11",
"domain_id": 1,
"sender_address_id": 2,
"from": null,
"from_name": null,
"subject": "Subject Test 3 ",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
}
],
"attachments": [],
"url_parameters": null,
"plan_name": "all_at_once",
"time_intervals_allowed": [
"15:00-16:59",
"22:00-22:30"
],
"emailsxblock": 500,
"minutesxblock": 2,
"days_allowed": [
"monday",
"wednesday",
"friday",
"sunday"
],
"callback_url": "https://mensagia.com/callback",
"callback_clicks_url": null,
"callback_openings_url": null,
"callback_complains_url": null,
"certified": 0,
"certification_callback_url": ""
}
],
"meta": {
"pagination": {
"total": 3,
"count": 3,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": {
}
}
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_min value (20290-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2001-01-01 00:00:00)"
}
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "The start_date_max value (20231-01-01 0:00:00) has not the correct format: YYYY-MM-DD HH:II:SS (2002-01-01 00:00:00)"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/email/campaigns
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: agenda_ Envía este parámetro si quieres buscar por el nombre de la campaña. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
active | integer (optional) Example: 1 Envía este parámetro si quieres buscar campañas por su estado. Valores posibles:
|
state_id | integer (optional) Example: 1 Envía este parámetro si quieres buscar campañas por su estado de campaña. Consulta los estados posibles de una campaña en la documentación de Mensagia. Valores posibles:
|
start_date_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar campañas que su fecha de inicio sea más grande o igual que el valor de start_date_min . |
start_date_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar campañas que su fecha de inicio sea más pequeña o igual al valor de start_date_max . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener una campaña
Este método te permite obtener la información de una campaña creada en tu cuenta
Response 200
{
"data": {
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] My Email Campaign",
"start_date": "2021-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda 1"
},
{
"id": 4,
"name": "Agenda 2"
}
],
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news.pdf",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news1.pdf"
],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": "https://domain.com/testPost",
"callback_clicks_url": "https://domain.com/testPostClicks",
"callback_openings_url": "https://domain.com/testPostOpenings",
"callback_complains_url": "https://domain.com/testPostComplains",
"certified": 0,
"certification_callback_url": "",
"summary": {
"to_send": {
"recipients": 4,
"in_email_blacklist": 1,
"not_subscribeds": 1,
"discardeds": 1,
"valids": 1
},
"sent": {
"recipients": 2,
"price": 0.0010
}
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/email/campaigns/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña para obtener información. |
Activar una campaña
Este método te permite activar una campaña desactiva.
Estados de campaña permitidos cuando activas
Ten en cuenta que sólo podras activar una campaña desactivada si tiene los siguientes estados:
- En espera (1)
- Iniciada (2)
- Sin Saldo (4)
Response 200
{
"data": {
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] My Email Campaign",
"start_date": "2021-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda 1"
},
{
"id": 4,
"name": "Agenda 2"
}
],
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news.pdf",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news1.pdf"
],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": "https://domain.com/testPost",
"callback_clicks_url": "https://domain.com/testPostClicks",
"callback_openings_url": "https://domain.com/testPostOpenings",
"callback_complains_url": "https://domain.com/testPostComplains",
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "You can only activate disabled campaigns with the states: Ready (1), Started (2) and Without Balance (4)"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/email/campaigns/{id}/activate
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a activar. |
Desactivar una campaña
Este método te permite desactivar una campaña activa.
Estados de campaña permitidos cuando desactivas
Ten en cuenta que sólo podras desactivar una campaña activa si tiene los siguientes estados:
- En espera (1)
- Iniciada (2)
- En curso (3)
Response 200
{
"data": {
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] My Email Campaign",
"start_date": "2021-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda 1"
},
{
"id": 4,
"name": "Agenda 2"
}
],
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news.pdf",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news1.pdf"
],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": "https://domain.com/testPost",
"callback_clicks_url": "https://domain.com/testPostClicks",
"callback_openings_url": "https://domain.com/testPostOpenings",
"callback_complains_url": "https://domain.com/testPostComplains",
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can only deactivate activated campaigns with the states: Ready (1), Started (2) and Running (3)"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/email/campaigns/{id}/deactivate
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a desactivar. |
Enviar ahora
Este método te permite cambiar la fecha de inicio de una campaña a la fecha actual para que el envío de Email comience inmediatamente. Este método sólo es válido para campañas en estado En espera (1).
Response 200
{
"data": {
"application_id": 10,
"app_configuration_id": 54,
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"name": "[API] My Email Campaign",
"start_date": "2021-11-11 11:11:00",
"domain_id": 1,
"sender_address_id": 1,
"from": "news@mydomain.com",
"from_name": "News MyDomain",
"subject": "Subject Email",
"groups": [
{
"id": 3,
"name": "Agenda 1"
},
{
"id": 4,
"name": "Agenda 2"
}
],
"attachments": [
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news.pdf",
"https://smslandings.s3.amazonaws.com/mailing_attachments/dev/2020042015a46e4019-c8a4-4c85-80dc-2c6e61c81cb4/11_154/news1.pdf"
],
"url_parameters": "utm_campaign=mi_campaa&utm_source=mi_fuente&utm_medium=mi_medio&name=#col#",
"plan_name": "all_at_once",
"time_intervals_allowed": [
"8:00-22:59"
],
"emailsxblock": null,
"minutesxblock": null,
"days_allowed": [
"tuesday",
"thursday",
"friday"
],
"callback_url": "https://domain.com/testPost",
"callback_clicks_url": "https://domain.com/testPostClicks",
"callback_openings_url": "https://domain.com/testPostOpenings",
"callback_complains_url": "https://domain.com/testPostComplains",
"certified": 0,
"certification_callback_url": ""
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can only execute campaigns with the state: Ready (1)."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/email/campaigns/{id}/execute_now
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña para ejecutar ahora. |
Eliminar una campaña
Este método te permite eliminar una campaña de tu cuenta. No se pueden eliminar directamente campañas en curso. Si quieres eliminar una campaña con el estado 'En curso' primero debes desactivarla y luego eliminarla.
Response 200
{
"data": {
"result": true
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: You can not delete campaigns with Running (3) state. You must deactivate the campaign first before deleting it."
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
DELETE https://api.mensagia.com/v1/email/campaigns/{id}
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña a eliminar. |
Obtener resumen Notificaciones de Entrega
Este método te permite obtener el resumen de notificaciones de entrega para una campaña determinada. Puedes consultar el listado de notificaciones de entrega en la documentación de Mensagia.
Response 200
{
"data": [
{
"delivery_report_state_id": 0,
"count": 1
},
{
"delivery_report_state_id": 1,
"count": 8
},
{
"delivery_report_state_id": 2,
"count": 1
},
{
"delivery_report_state_id": 4,
"count": 1
}
]
}
Response 400 WRONG_ARGS
{
"error": {
"code": "WRONG_ARGS",
"http_code": 400,
"message": "campaign_id can not be null"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "Campaign not found with id: 410"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/email/campaigns/{id}/dlr_summary
Query Parameters
Parameter | Description |
---|---|
id | integer (required) Example: 1 ID de la campaña para obtener el resumen. |
Direcciones de envío email
Métodos para administrar las direcciones de envío de email de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre las direcciones de envio en la documentación de Mensagia.
Obtener direcciones de envío
Este método te permite obtener todas las direcciones de envío de tu cuenta.
Response 200
{
"data": [
{
"id": 4,
"name": "Juan Perez",
"email": "jperez@midominio.com",
"domain_id": 2,
"created_at": "2021-06-10 07:18:33",
"updated_at": "2021-06-10 07:18:33"
},
{
"id": 1,
"name": "Isabel Velasco",
"email": "ivelasco@midominio.com",
"domain_id": 1,
"created_at": "2021-06-10 07:18:33",
"updated_at": "2021-06-10 07:18:33"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/email/sender_address
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: Juan Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
string (optional) Example: @midominio Envía este parámetro si quieres buscar por email. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
|
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Plantillas de email
Métodos para administrar las plantillas de email de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre las plantillas de email en la documentación de Mensagia.
Obtener plantillas de email
Este método te permite obtener todas las plantillas de email de tu cuenta.
Response 200
{
"data": [
{
"id": 3,
"name": "Mi plantilla de email",
"screenshot_url": "https://www.mensagia.com/img/screenshot.jpg",
"created_at": "2021-06-22 10:17:11",
"updated_at": "2021-06-22 10:17:16"
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/email/templates
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: Juan Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Notificaciones de Entrega
Consulta las Notificaciones de Entrega de tus envíos SMS y de tus envíos de Email.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre las Notificaciones de Entrega SMS de SMS en la documentación de Mensagia.
Puedes obtener más información sobre las Notificaciones de Entrega Email de email en la documentación de Mensagia.
Obtener notificaciones de entrega SMS
Este método te permite obtener las notificaciones de entrega de tus envíos.
ID'S de aplicación
Esta es la lista de aplicaciones con sus respectivos ID'S por si quieres filtrar por tipo de aplicación.
ID de aplicación | Nombre de la aplicación |
---|---|
1 | Envío Simple SMS |
2 | Envío Masivo SMS (Campañas) |
3 | Envío Multiple SMS |
6 | Campañas Inteligentes SMS |
ID's Notificaciones de Entrega
Esta es la lista de notificaciones de entrega por si quieres filtrar por tipo de notificación.
ID de notificación de entrega | Nombre de la notificación de entrega |
---|---|
0 | Pendiente |
1 | Entregado |
2 | Otro error |
3 | Destinatario desconocido |
4 | Caducado |
5 | No disponible temporalmente |
6 | No disponible permanentemente |
7 | No admitdee publicidad |
8 | No enviado por estar en la lista negra. Coste reembolsado |
9 | El contacto no desea publicidad de PREMIUM SMS |
10 | Sin saldo para enviar el mensaje |
11 | Temporalmente no entregable. Coste reembolsado |
12 | No enviado por restricción horaria |
13 | No entregado por superar límites de envío al destinatario |
Response 200
{
"data": [
{
"number": "34624744353",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 8,
"delivery_report_state_name": "Number in own blacklist",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "My Configuration",
"message": "My Message",
"message_id": "20160112081053-1-226272-5251e3f2-2528-4764-8060-ad1585d76690"
},
{
"number": "34635646726",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 8,
"delivery_report_state_name": "Number in own blacklist",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-370637-75a7b463-7487-4d14-8f23-f547ab386fe4"
},
{
"number": "34655614265",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 7,
"delivery_report_state_name": "No advertising",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-489687-1e079e4b-50a4-4969-82b4-fbd495856f78"
},
{
"number": "34658734298",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 9,
"delivery_report_state_name": "Number in system blacklist",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-895647-98d5b16f-396c-4e0a-af68-ddfa9c1f0c35"
},
{
"number": "34615307283",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 3,
"delivery_report_state_name": "Unknown subscriber",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-937432-ce67fc63-ea33-45f7-9444-b50374dda349"
},
{
"number": "34669798052",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 5,
"delivery_report_state_name": "Subscriber temporarily unavailable",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-688648-863af17e-45f6-484d-914f-711c9a51890d"
},
{
"number": "34661813789",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-526046-998ebd4c-f835-4588-a50a-d2112917c913"
},
{
"number": "34638516440",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 9,
"delivery_report_state_name": "Number in system blacklist",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-126220-0be56efb-57b8-42e6-a580-9601e74f9b96"
},
{
"number": "34680262685",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 3,
"delivery_report_state_name": "Unknown subscriber",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-243146-c7a36992-0e89-45d9-a259-14e9bb3d1ff7"
},
{
"number": "34632113063",
"sent_date": "2016-01-12 08:10:53",
"received_date": "2016-01-12 08:10:53",
"delivery_report_state_id": 6,
"delivery_report_state_name": "Subscriber permanently unavailable",
"application_id": 2,
"application_name": "Massive push (Campaigns)",
"app_configuration_id": 4,
"app_configuration_name": "blabla",
"message": "My Message",
"message_id": "20160112081053-1-65441-75f46fda-d0a5-4d5b-8a91-e94254830c16"
}
],
"meta": {
"pagination": {
"total": 245,
"count": 10,
"per_page": 10,
"current_page": 24,
"total_pages": 25,
"links": {
"previous": "http://192.168.22.100/v1/delivery_reports/?page=23",
"next": "http://192.168.22.100/v1/delivery_reports/?page=25"
}
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/reports/push/delivery
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600100200 Envía este parámetro si deseas buscar contactos por número de móvil |
start_date | string (optional) Example: 2015-01-01 00:00:00 Fecha de inicio de búsqueda en el formato será usado si se envia también el parámetro end_date |
end_date | string (optional) Example: 2020-01-01 00:00:00 Fecha de fin de búsqueda en el formato 'YYYY-MM-DD hh:mm:ss'. Solo será usado si se envia también el parámetro start_date |
delivery_report_state_id | string (optional) Example: 1,2,4 Un listado de ID's de notificaciones de entrega, separados por coma y sin espacios. |
application_id | integer (optional) Example: 1 Envía este parámetro si deseas buscar por ID de aplicación. |
app_configuration_id | integer (optional) Example: 2 Envía este parámetro si deseas buscar por ID de configuración. El ID de configuración se obtiene despues de realizar un envío SMS. |
message_id | integer (optional) Example: 1313 Envía este parámetro si deseas buscar por message_id . |
extra_field_name | string (optional) Example: my_extra_field Usa este parámetro y extra_field_value para buscar notificaciones de entrega de los contactos cuyo valor del campo personalizado con nombre extra_field_name sea igual a extra_field_value . Este parámetro se usa para enviar el nombre del campo personalizado a buscar. |
extra_field_value | string (optional) Example: my_value Usa este parámetro y extra_field_value para buscar notificaciones de entrega de los contactos cuyo valor del campo personalizado con nombre extra_field_name sea igual a extra_field_value . Este parámetro se usa para enviar el valor del campo personalizado a buscar. |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Consulta las Notificaciones de Entrega de tus envíos SMS.
Accesible únicamente para cuentas de tipo cliente
Obtener notificaciones de entrega de email
Este método te permite obtener las notificaciones de entrega de tus envíos.
ID'S de aplicación
Esta es la lista de aplicaciones con sus respectivos ID'S por si quieres filtrar por tipo de aplicación.
ID de aplicación | Nombre de la aplicación |
---|---|
10 | Envío Simple de email |
11 | Campañas de email |
ID's Notificaciones de Entrega
Esta es la lista de notificaciones de entrega por si quieres filtrar por tipo de notificación.
ID de notificación de entrega | Nombre de la notificación de entrega |
---|---|
0 | Pendiente |
1 | Entregado |
2 | Otro error |
5 | Rebotado Soft |
6 | Rebotado |
7 | No admitde publicidad |
8 | No enviado por estar en la lista negra. Coste reembolsado |
10 | Sin saldo para enviar el mensaje |
Response 200
{
"data": [
{
"email": "espanol6@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 6,
"delivery_report_state_name": "Hard Bounce",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
},
{
"email": "espanol5@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 5,
"delivery_report_state_name": "Soft Bounce",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
},
{
"email": "espanol4@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 7,
"delivery_report_state_name": "No advertising",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
},
{
"email": "espanol3@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 4,
"delivery_report_state_name": "Expired",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
},
{
"email": "espanol2@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
},
{
"email": "espanol1@test.com",
"sent_date": "2020-01-01 10:00:00",
"received_date": "2020-01-01 10:00:00",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 15,
"app_configuration_name": "Campaña finalizada de Mail"
}
],
"meta": {
"pagination": {
"total": 6,
"count": 6,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/reports/email/delivery
Query Parameters
Parameter | Description |
---|---|
string (optional) Example: my@email.com Envía este parámetro si deseas buscar contactos por email. |
|
start_date | string (optional) Example: 2015-01-01 00:00:00 Fecha de inicio de búsqueda en el formato será usado si se envia también el parámetro end_date |
end_date | string (optional) Example: 2020-01-01 00:00:00 Fecha de fin de búsqueda en el formato 'YYYY-MM-DD hh:mm:ss'. Solo será usado si se envia también el parámetro start_date |
delivery_report_state_id | string (optional) Example: 1,2,4 Un listado de ID's de notificaciones de entrega, separados por coma y sin espacios. |
application_id | integer (optional) Example: 1 Envía este parámetro si deseas buscar por ID de aplicación. |
app_configuration_id | integer (optional) Example: 2 Envía este parámetro si deseas buscar por ID de configuración. El ID de configuración se obtiene despues de realizar un envío SMS. |
extra_field_name | string (optional) Example: my_extra_field Usa este parámetro y extra_field_value para buscar notificaciones de entrega de los contactos cuyo valor del campo personalizado con nombre extra_field_name sea igual a extra_field_value . Este parámetro se usa para enviar el nombre del campo personalizado a buscar. |
extra_field_value | string (optional) Example: my_value Usa este parámetro y extra_field_value para buscar notificaciones de entrega de los contactos cuyo valor del campo personalizado con nombre extra_field_name sea igual a extra_field_value . Este parámetro se usa para enviar el valor del campo personalizado a buscar. |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Envíos certificados
Obten los certificados creados en tus envíos certificados.
Puedes obtener más información sobre los Envíos Certificados en la documentación de Mensagia.
ID'S de aplicación
Esta es la lista de aplicaciones con sus respectivos ID'S por si quieres filtrar por tipo de aplicación.
ID de aplicación | Nombre de la aplicación |
---|---|
1 | Envío Simple SMS |
2 | Envío Masivo SMS (Campañas) |
3 | Envío Multiple SMS |
6 | Campañas Inteligentes SMS |
10 | Envío Simple de email |
11 | Campañas de email |
Obtener certificados SMS
Obtén los certificados creados en tus envíos de SMS Certificados.
Accesible únicamente para cuentas de tipo cliente
.
HTTP Request
GET https://api.mensagia.com/v1/reports/certifications/sms
Response 200
{
"data": [
{
"application_id": 2,
"application_name": "Massive push",
"app_configuration_id": 15,
"app_configuration_name": "Campaña SMS Oferta",
"message_id": "20211117113124-7344-716763-bbb-0001-440f-bd33-5951fe556234",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"evidence_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4000-32442.xml",
"voucher_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4000-32442.pdf",
"created_at": "2022-02-14 13:11:31",
"number": "34600100200"
},
{
"application_id": 2,
"application_name": "Massive push",
"app_configuration_id": 14,
"app_configuration_name": "Campaña SMS Reclamación",
"message_id": "20211117113189-7345-716763-aaa-0000-440f-bd34-5951fe556135",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"evidence_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4001-32440.xml",
"voucher_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4001-32440.xml",
"created_at": "2022-02-14 13:11:31",
"number": "34600100300"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Query Parameters
Parameter | Description |
---|---|
application_id | integer (optional) Example: 1 Envía este parámetro si deseas buscar por ID de aplicación. |
app_configuration_id | integer (optional) Example: 2 Envía este parámetro si deseas buscar por ID de configuración. El ID de configuración se obtiene despues de realizar un envío. |
number | string (optional) Example: 34600100200 Envía este parámetro si deseas buscar contactos por número de móvil |
delivery_report_state_id | string (optional) Example: 1,2,4 Un listado de ID's de notificaciones de entrega, separados por coma y sin espacios. |
message_id | integer (optional) Example: 1313 Envía este parámetro si deseas buscar por message_id . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener certificados Email
Obtén los certificados realizados en tus envíos de Email Certificados.
Accesible únicamente para cuentas de tipo cliente
.
Response 200
{
"data": [
{
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 17,
"app_configuration_name": "Campaña Email Oferta",
"message_id": "20211117113124-7344-716763-bbb-0001-440f-bd33-5951fe556234",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"evidence_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4002-32442.xml",
"voucher_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4002-32442.pdf",
"created_at": "2022-02-14 13:11:31",
"email": "user1@domain.com"
},
{
"application_id": 10,
"application_name": "Massive email",
"app_configuration_id": 18,
"app_configuration_name": "Campaña Reclamación Email",
"message_id": "20211117113189-7345-716763-aaa-0000-440f-bd34-5951fe556135",
"delivery_report_state_id": 1,
"delivery_report_state_name": "Delivered",
"evidence_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4003-32440.xml",
"voucher_url": "https://certification-service.s3.eu-west-1.amazonaws.com/pro/20211018082457-4324234/SMS/C-4003-32440.xml",
"created_at": "2022-02-14 13:11:31",
"email": "user2@domain.com"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error. Internal code: #0123456789"
}
}
HTTP Request
GET https://api.mensagia.com/v1/reports/certifications/email
Query Parameters
Parameter | Description |
---|---|
application_id | integer (optional) Example: 1 Envía este parámetro si deseas buscar por ID de aplicación. |
app_configuration_id | integer (optional) Example: 2 Envía este parámetro si deseas buscar por ID de configuración. El ID de configuración se obtiene despues de realizar un envío. |
string (optional) Example: my@email.com Envía este parámetro si deseas buscar contactos por email. |
|
delivery_report_state_id | string (optional) Example: 1,2,4 Un listado de ID's de notificaciones de entrega, separados por coma y sin espacios. |
message_id | integer (optional) Example: 1313 Envía este parámetro si deseas buscar por message_id . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
2 Way SMS
Métodos para administrar los números 2 Way SMS de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre el servicio 2 Way SMS en la documentación de Mensagia.
Obtener números 2 Way SMS
Este método te permite obtener todas los números 2 Way SMS de tu cuenta.
Response 200
{
"data": [
{
"id": 17,
"number": "34622222223",
"callback_url": "https://mydomain.com/callbackVN",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 16,
"number": "34622222222",
"callback_url": "https://mensagia.dev/callbackVN",
"created_at": "2021-05-30 13:39:33"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/2-way-sms
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600100200 Envía este parámetro si deseas buscar números 2 Way SMS por número. |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener conversaciones
Este método te permite obtener los mensajes enviados y recibidos a través de los números 2 Way SMS de tu cuenta.
Response 200
{
"data": [
{
"id": 7,
"application_id": 1,
"app_configuration_id": 24,
"number": "34622222223",
"type": "MT",
"enduser_number": "34643434343",
"message": "¡Gracias! ¡Te esperamos!",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 6,
"application_id": 14,
"app_configuration_id": 17,
"number": "34622222223",
"type": "MO",
"enduser_number": "34643434343",
"message": "¡Me va genial! Confirmo la hora",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 5,
"application_id": 1,
"app_configuration_id": 23,
"number": "34622222223",
"type": "MT",
"enduser_number": "34643434343",
"message": "¡Hola Maria! ¿Te va bien a las 16:00 como siempre? ",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 4,
"application_id": 14,
"app_configuration_id": 17,
"number": "34622222223",
"type": "MO",
"enduser_number": "34643434343",
"message": "¡Hola! Quiero pedir cita para el dia 10 por la tarde. ¿Hay horas libres?",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 3,
"application_id": 14,
"app_configuration_id": 16,
"number": "34622222222",
"type": "MO",
"enduser_number": "34676767676",
"message": "¡Perfecto! ¡Ahí estaré!",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 2,
"application_id": 1,
"app_configuration_id": 22,
"number": "34622222222",
"type": "MT",
"enduser_number": "34676767676",
"message": "¡Hola! ¿Puedes venir a las 10:00h? ",
"created_at": "2021-05-30 13:39:33"
},
{
"id": 1,
"application_id": 14,
"app_configuration_id": 16,
"number": "34622222222",
"type": "MO",
"enduser_number": "34676767676",
"message": "¡Hola! Tengo un problema con un producto que adquirí. ¿Puedo ir a la tienda a repararlo?",
"created_at": "2021-05-30 13:39:33"
}
],
"meta": {
"pagination": {
"total": 7,
"count": 7,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/2-way-sms/messages
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600100200 Envía este parámetro si deseas buscar números 2 Way SMS por número. |
enduser_number | string (optional) Example: 34600100201 Envía este parámetro si deseas buscar mensajes por destinatario. |
type | string (optional) Example: MO Envía este parámetro si deseas buscar por tipo de mensaje enviado. Valores posibles:
|
created_at_min | datetime (optional) Example: 2016-01-01 12:30:00 Envía este parámetro si quieres buscar mensajes que su fecha de envío sea más grande o igual que el valor de created_at_min . |
created_at_max | datetime (optional) Example: 2020-01-01 12:30:00 Envía este parámetro si quieres buscar mensajes que su fecha de envío sea más pequeña o igual al valor de created_at_max . |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Enviar SMS
Este método te permite enviar un SMS a través de uno de tus números 2 Way SMS contratados.
Response 200
{
"data": {
"id": 18,
"application_id": 1,
"app_configuration_id": 34,
"number": "34622222222",
"type": "MT",
"enduser_number": "34687976788",
"message": "Mensaje a enviar al destinatario",
"created_at": "2021-06-09 08:09:36"
}
}
Response 403 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"number": [
"The customer do not have this number."
]
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"enduser_number": [
"You can only send to numbers in the same country as the contracted number."
]
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"enduser_number": [
"The end_user_number is in the SMS blacklist."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/2-way-sms/send
Query Parameters
Parameter | Description |
---|---|
number | string (required) Example: 34600100200 El número 2 Way SMS por el que se enviará el mensaje. |
enduser_number | string (required) Example: 34600100201 El número del destinatario al que se le quiere enviar el mensaje. |
message | string (required) Example: The message to send El mensaje a enviar. Tenga en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia. |
clean_non_gsm7_chars | integer (optional) Default: 0 Example: 1 Envia este parámetro con valor 1 si deseas borrar todos los caracteres que no sean GSM7 de los mensajes a enviar para evitar sobrecostes indeseados. Valores posibles:
|
Voz
Métodos para el envío de campañas de Voz.
Accesible únicamente para cuentas de tipo cliente
y cuentas con el servicio de Voz activado.
Campañas de Voz
Este método te permite realizar campañas de Voz a números de teléfono de España. Los destinatarios de la campaña de voz pueden ser: agendas, agendas y números de teléfono, o números de teléfono,
Ejemplo de código de respuesta
responses_codes
[
{"code":"1","action":"repeat_message"},
{"code":"2","action":"call_transfer","vm_validated_phone_id":"2", "max_transfer_duration": 30},
{"code":"3","action":"add_to_blacklist"},
{"code":"4","action":"send_sms","sms":"Texto del SMS a enviar al destinatario","send_sms_push_sender_id":"1"}
]
Formato códigos de respuesta
Si lo deseas, puedes añadir códigos de respuesta a tus campañas de Voz. Cuando un usuario pulse las teclas que definas, se realizará la acción escogida.
Las acciones disponibles para los códigos de respuesta son las siguientes:
-
repeat_message
: Para volver a escuchar la locución de la llamada. -
call_transfer
: Para transferir la llamada al teléfono validado que elijas. -
add_to_blacklist
: Para añadir al destinatario a la 'Lista Negra' de tu cuenta. -
send_sms
: Para enviar un SMS al destinatario de la llamada.
El formato de responses_codes será un ARRAY
en JSON
con el siguiente formato:
Consideraciones importantes
- El formato del campo
responses_codes
deberá ser unARRAY
enJSON
, donde cada elemento de dicho array contendrá un codigo de respuesta y una acción a realizar. code
será el código que deberá pulsar el usuario para que se realice la acción definida en el paràmetroaction
.code
deberá ser un numero del 0 al 99 y este código no se podrá repetir.- Solo se puede crear una acción por campaña de los tipos:
repeat_message
yadd_to_blacklist
- La acción
call_transfer
debe ir acompañada del ID de un teléfono validado de Voz a la que se le transferirá la llamada (vm_validated_phone_id
) y la duración máxima en minutos de la llamada transferida (max_transfer_duration). Valores posibles de 1 a 60. - La acción
send_sms
debe ir acompañada del texto del SMS a enviar (sms
) y el ID de un remitente válidado de SMS (send_sms_push_sender_id
).
Response 200
{
"data": {
"configuration_id": 66,
"id": 66,
"name": "Test Campaign API",
"active": 1,
"state_id": 1,
"state_name": "Waiting",
"message": "Locución a enviar....",
"start_date": "2020-11-11 11:11:00",
"vm_validated_phone_id": 1,
"vm_validated_phone_number": "34600300200",
"groups": [
{
"id": 3,
"name": "Agenda Números Españoles"
}
],
"numbers": "34687976796",
"vm_timeout": 30,
"max_retries": 4,
"min_retry_minutes": 1440,
"max_retry_minutes": 1440,
"response_codes": "[{\"code\":\"1\",\"action\":\"repeat_message\"},{\"code\":\"2\",\"action\":\"call_transfer\",\"transfer_to\":\"34972505113\",\"vm_validated_phone_id\":\"1\"},{\"code\":\"3\",\"action\":\"add_to_blacklist\"}]",
"response_codes_timeout": "60",
"callback_url": "",
"type": "Multiple",
"callsxblock": 222,
"minutesxblock": 6,
"days_allowed": [
"monday",
"tuesday",
"wednesday",
"saturday"
],
"time_intervals_allowed": [
"15:00-16:59",
"22:00-22:30"
],
"ring_timeout": 45
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name field is required."
]
}
}
}
Response 400 TIME_INTERVALS_NOT_VALID
Error list
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00')
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock.
{
"error": {
"code": "TIME_INTERVALS_NOT_VALID",
"message": "There are invalid time intervals.",
"http_code": 400,
"intervals": [
{
"interval": "15:00-15:30",
"error": "INTERVAL_INSIDE_ANOTHER"
},
{
"interval": "23-23:33",
"error": "INTERVAL_NOT_VALID"
}
]
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden: Your customer has not activated the VOICE service. Contact with your distributor.",
"http_code": 403
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Response 503 SERVICE_UNAVAILABLE
{
"error": {
"code": "503",
"message": "Forbidden: The Voice Service is unavailable at this moment. Check /status for more informatiom.",
"http_code": 503
}
}
HTTP Request
POST https://api.mensagia.com/v1/voice/messages
Query Parameters
Parameter | Description |
---|---|
name | string (required) Example: Campaign Number 1 El nombre para la nueva campaña de voz. |
vm_validated_phone_id | integer (required) Example: 1 El ID del teléfono para Voz que se usará en esta campaña de voz. |
type_locution | string (required) Example: text2speech El tipo de locución que se usará en esta campaña de voz. Valores posibles:
|
message | string (optional) Example: The message to send El texto a sintetizar para reproducir en la llamada. Campo obligatorio si text2speech es el tipo de locución escogida. |
message_language | string (optional) Example: es El código del idioma con el que se quiere sintetizar el texto que se reproducirá en la llamada. Campo obligatorio si text2speech es el tipo de locución escogida.Valores posibles:
|
voice_file_id | integer (optional) Example: 3 El ID del archivo de la librería de audio que se utilizará como locución. Campo obligatorio si file es el tipo de locución escogida. |
numbers | string (optional) Example: 34600000001,34600000002 Una lista de números de teléfono separados por coma, sin espacios y con el prefijo internacional. |
available_groups | string (optional) Example: 3,5 Lista de ID’s de agendas existentes, separadas por coma y sin espacios. |
vm_timeout | integer (optional) Default: 30 Example: 45 Duración máxima de la llamada en minutos |
max_retries | integer (optional) Example: 2 Número de reintentos a realizar si el destinatario de la llamada no contesta. Valores posibles:
|
minutes_retry_1 | integer (optional) Example: 60 Intérvalo en minutos en el que se realizará el primer reintento después de que no contesten la primera llamada. Este campo es obligatorio si max_retries >= 1. Valores posibles:
|
minutes_retry_2 | integer (optional) Example: 60 Intérvalo en minutos en el que se realizará el segundo reintento después de finalizar el primer reintento y no contesten la llamada. Este campo es obligatorio si max_retries >= 2. Valores posibles:
|
minutes_retry_3 | integer (optional) Example: 60 Intérvalo en minutos del tercer reintento que se realizará después de finalizar el segundo reintento y no contesten la llamada. Este campo es obligatorio si max_retries >= 3. Valores posibles:
|
minutes_retry_4 | integer (optional) Example: 60 Intervalo en minutos del cuarto reintento que se realizará después de finalizar el tercer reintento y no contesten la llamada. Este campo es obligatorio si max_retries = 4. Valores posibles:
|
ring_timeout | integer (optional) Default: 45 Example: 30 Tiempo en segundos en el que el teléfono del destinatarió sonará para que coja la llamada. |
response_codes | json (optional) Default: "" Example: [{"code":"1","action":"repeat_message"},{"code":"2","action":"call_transfer","transfer_to":"34972505113","vm_validated_phone_id":"1"},{"code":"3","action":"add_to_blacklist"}] Códigos de respuesta que podrá pulsar el destinatario que generarán una acción en la llamada. |
response_codes_timeout | integer (optional) Default: 20 Example: 30 Tiempo en segundos en el que el destinatario podrá pulsar un código de respuesta. Este campo es obligatorio en presencia de response_codes |
start_date | datetime (optional) Example: 2020-01-28 15:00 Fecha de inicio de campaña en el formato 'YYYY-MM-DD hh:mm'. Si no envías este parametro, la campaña empezará dos minutos después de la creación de la nueva campaña. |
callsxblock | integer (optional) Example: 10 Número de destinatarios por bloque. Obligatorio en presencia de minutesxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
minutesxblock | integer (optional) Example: 10 Cada cuantos minutos se enviará el bloque de destinarios escogidos en smsxblock . Obligatorio en presencia de smsxblock . Si los dos parámetros son enviados, la configuración de la campaña se define como 'configuración personalizada' y el valor de los parámetros days y time_intervals serán tomados en cuenta. |
days | string (optional) Default: 1,2,3,4,5,6,7 Example: 1,2,3,4,5 Una lista de días de la semana separada por comas y sin espacios en la cual las llamadas pueden ser realizadas. (1 = Lunes, 2 = Martes, 3 = Miercoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo). Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
time_intervals | string (optional) Default: 08:00-22:59 Example: 09:00-13:00,17:00-21:00 Una lista de intérvalos de tiempo separados por comas y sin espacios, en los cuales la llamada podrá ser enviada. Solo será tomado en cuenta si minutesxblock y smsxblock son enviados. |
callback_url | string (optional) Example: https://mydomain.com/callback_dlr Una URL válida donde enviaremos una petición POST con el resultado de las notificaciones de entrega en el momento que las recibamos. |
Códigos de error para respuestas HTTP 400
Si obtienes un código de error HTTP 400, el campo code
puede tener los siguientes valores:
Code | Description |
---|---|
VALIDATION_FAIL | The data validation is not correct. See validation_errors array. |
AGENDA_NOT_FOUND | Not valid groups |
VOICE_CAMPAIGN_NOT_FOUND | The campaign was not found |
VOICE_CAMPAIGN_NOT_MODIFIABLE | The campaign is not modifiable |
DATE_INVALID | The date entered is incorrect. Use the format 'd-m-Y H:i' |
TIME_INTERVALS_NOT_VALID | There are invalid time intervals. Use this format 'hh:ii' in a comma separated string ('09:00-11:00,15:00-18:00') |
SMS_X_BLOCK_NOT_DEFINED | Sms x Block not defined |
SMS_X_BLOCK_NOT_INTEGER | Sms x Block is not an integer |
MINUTES_X_BLOCK_NOT_DEFINED | Minutes x Block not defined |
MINUTES_X_BLOCK_NOT_INTEGER | Minutes x Block must be an integer |
SMS_COEFFICIENT_NOT_ALLOWED | The custom configuration is invalid. The coefficient of messages per minute should be less. Change the value of minutesxblock and smsxblock. |
Obtener desglose de llamadas
Este método te permite el desglose de llamadas realizadas en Voz.
ID'S de aplicación
Esta es la lista de aplicaciones con sus respectivos ID'S por si quieres filtrar por tipo de aplicación.
ID de aplicación | Nombre de la aplicación |
---|---|
8 | Mensajes de Voz |
ID's Notificaciones de Entrega para Voz
Esta es la lista de notificaciones de entrega para Voz por si quieres filtrar por tipo de notificación.
ID de notificación de entrega | Nombre de la notificación de entrega |
---|---|
0 | Pendiente |
1 | Contestada |
2 | Otro error |
3 | Destinatario desconocido |
5 | Apagado o fuera de cobertura |
6 | No disponible permanentemente |
7 | No admite publicidad |
11 | Temporalmente no entregable |
13 | No entregado por superar límites de envío al destinatario |
14 | No contestada |
15 | Ocupado |
16 | Contestado por máquina |
17 | Sin notificación de respuesta de la operadora |
Response 200
{
"data": [
{
"message_id": "20160112081053-1-226272-5251e3f2-2528-4764-8060-ad1585d76690",
"number": "34600100200",
"call_date": "2019-04-29 12:20:42",
"vm_delivery_report_state_id": 15,
"vm_delivery_report_state_id_name": "Busy",
"application_id": 8,
"application_name": "Voice Messages",
"app_configuration_id": 123,
"app_configuration_name": "Test Voice Messages",
"message": "This is my locution!",
"voice_file_id": null,
"vm_validated_phone_id": 1,
"duration": 3.333,
"dtmf": "1",
"redirection": "916004040"
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Response 503 SERVICE_UNAVAILABLE
{
"error": {
"code": "503",
"message": "Forbidden: The Voice Service is unavailable at this moment. Check /status for more informatiom.",
"http_code": 503
}
}
HTTP Request
GET https://api.mensagia.com/v1/reports/voice/messages
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 34600100200 Envía este parámetro si deseas buscar contactos por número de teléfono. |
start_date | datetime (optional) Example: 2019-01-01 00:00:00 Fecha de inicio de búsqueda en el formato 'YYYY-MM-DD hh:mm:ss'. Solo será usado si se envia también el parámetro end_date |
end_date | string (optional) Example: 2016-01-01 00:00:00 Fecha de fin de búsqueda en el formato 'YYYY-MM-DD hh:mm:ss'. Solo será usado si se envia también el parámetro start_date |
vm_delivery_report_state_id | string (optional) Example: 1,2,4 Un listado de ID's de notificaciones de entrega para Voz, separados por coma y sin espacios. |
application_id | integer (optional) Example: Envía este parámetro si deseas buscar por ID de aplicación. |
app_configuration_id | integer (optional) Example: 2 Envía este parámetro si deseas buscar por ID de configuración. El ID de configuración se obtiene despues de realizar una nueva campaña. |
redirection | string (optional) Example: 916004040 Envía este parámetro si deseas buscar por número de redirección. |
voice_file_id | integer (optional) Example: 23 Envía este parámetro si deseas buscar por el ID de un archivo de la librería de audios para Voz. |
vm_validated_phone_id | integer (optional) Example: 3 Envía este parámetro si deseas buscar por el ID de un teléfono para Voz. |
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener números validados
Este método te permite obtener los números validados de tu cuenta para usar en los servicios de Voz.
Response 200
{
"data": [
{
"id": 1,
"number": "34915434545",
"created_at": "2021-06-21 07:42:39",
"updated_at": "2021-06-21 07:42:43"
},
{
"id": 2,
"number": "34915434546",
"created_at": "2021-06-21 07:42:58",
"updated_at": "2021-06-21 07:43:03"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden: Your customer has not activated the VOICE service. Contact with your distributor.",
"http_code": 403
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Response 503 SERVICE_UNAVAILABLE
{
"error": {
"code": "503",
"message": "Forbidden: The Voice Service is unavailable at this moment. Check /status for more informatiom.",
"http_code": 503
}
}
HTTP Request
GET https://api.mensagia.com/v1/voice/numbers
Query Parameters
Parameter | Description |
---|---|
number | string (optional) Example: 3491345 Envía este parámetro si quieres buscar por número. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Obtener librería de audios
Este método te permite obtener los elementos de la librería de audios de tu cuenta para usar en los servicios de Voz.
Response 200
{
"data": [
{
"id": 1,
"name": "Locución campaña Black Friday",
"created_at": "2021-06-21 07:42:39",
"updated_at": "2021-06-21 07:42:43"
},
{
"id": 2,
"name": "Locución campaña Semana Santa",
"created_at": "2021-06-21 07:42:58",
"updated_at": "2021-06-21 07:43:03"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden: Your customer has not activated the VOICE service. Contact with your distributor.",
"http_code": 403
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
Response 503 SERVICE_UNAVAILABLE
{
"error": {
"code": "503",
"message": "Forbidden: The Voice Service is unavailable at this moment. Check /status for more informatiom.",
"http_code": 503
}
}
HTTP Request
GET https://api.mensagia.com/v1/voice/audio_library
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: mi_locución Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Premium SMS
Métodos para aplicaciones PREMIUM SMS.
Accesible únicamente para cuentas de tipo cliente
Premium Gateway
Utiliza este método para contestar los MO's que recibas a través de nuestra aplicación PASARELA PREMIUM.
Puedes encontrar más información en la documentación de PASARELA PREMIUM
Response 200
{
"data": {
"number": "34600100200",
"premium_gateway_id": 1,
"message_id": "20181016080035-1-900713-6d862cba-1944-4c62-b9b8-44edabad72fe",
"message_in": "This is a MO message for answer",
"message_out": "This is a MO answer",
"created_at": "2018-10-15 14:48:34"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"message_id": [
"The message id field is required."
],
"message_out": [
"The message out field is required.",
"You must remove the UNICODE characters because they are not allowed in PREMIUM SMS."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "MO has already been answered"
}
}
Response 404 NOT_FOUND
{
"error": {
"code": "NOT_FOUND",
"http_code": 404,
"message": "MO not found with id: 20151016080035-1-900713-6d862cba-1944-4c62-b9b8-44edabad72fe"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/premium/gateway
Query Parameters
Parameter | Description |
---|---|
message_id | string (required) Example: 20181016080035-1-900713-6d862cba-1944-4c62-b9b8-44edabad72fe ID del mensaje a contestar. |
message_out | string (required) Example: This is a MO answer La respuesta a enviar. El texto debe ser GSM7. No se aceptarán caracteres UNICODE. |
Enlaces acortados
Métodos para administrar los enlaces acortados de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre los enlaces acortados en la documentación de Mensagia.
Obtener enlaces acortados
Este método te permite obtener todos los enlaces acortados de tu cuenta.
Response 200
{
"data": [
{
"name": "Test 1",
"short_url": "https://zmz.com/aaaaaa",
"long_url": "https://mydomain.com",
"created_at": "2021-06-28 10:32:08"
},
{
"name": "Test 2",
"short_url": "https://zmz.com/bbbbbb",
"long_url": "https://promo.mydomain.com",
"created_at": "2021-06-28 10:31:35"
},
{
"name": "Test 3",
"short_url": "https://zmz.com/cccccc",
"long_url": "https://mydomain.com/signup",
"created_at": "2021-06-28 10:30:53"
},
{
"name": "Test 4",
"short_url": "https://zmz.com/dddddd",
"long_url": "https://mydomain.com/promo_black_friday",
"created_at": "2021-06-28 10:30:07"
}
],
"meta": {
"pagination": {
"total": 4,
"count": 4,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/short_urls
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: Mi Enlace Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
short_url | string (optional) Example: aaaaaa Envía este parámetro si quieres buscar por el enlace acortado. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
long_url | string (optional) Example: mydomain.com/promo Envía este parámetro si quieres buscar por el enlace. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Acortar enlace
Este método te permite acortar un enlace para usarlo en tus envíos.
Sólo podrás realizar 20 peticiones a este método cada hora. Si superas este límite, te devolveremos un error 429 (Too Many Requests)
No crees un nuevo enlace para cada envío si deseas añadir parámetros personalizados para cada destinatario, ya que crearemos un nuevo enlace para cada contacto del envío a partir del original cuando realicemos el envío. Si deseas enviar parámetros para personalizar el enlace corto, cuando realices un envío utiliza el parámetro url_parameters
para añadir parámetros personalizados que se añadirán en cada uno de los nuevos enlaces creados. No añadas parametros al enlace corto que te proporcionamos, usa el método descrito anteriormente. Puedes obtener más informacion en Etiquetado de enlaces
Response 200
{
"data": {
"name": "Test 1",
"short_url": "https://zmz.com/aaaaaa",
"long_url": "https://mydomain.com/promo-black-friday",
"created_at": "2021-06-28 11:57:55"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"long_url": [
"You have another short url with the same URL: https://zmz.com/aaaaaa"
]
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"name": [
"The name has already been taken."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 429 TOO_MANY_REQUEST
{
"error": {
"code": "TOO_MANY_REQUEST",
"message": "Too many requests",
"http_code": "429",
"retry_after_seconds": 1027
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
POST https://api.mensagia.com/v1/short_urls
Query Parameters
Parameter | Description |
---|---|
name | string (required) Example: Mi enlace acortado El nombre del enlace acortado. |
long_url | string (required) Example: https://mydomain.com/promo-black-friday La URL que deseas acortar. |
Landings
Métodos para administrar las Landings de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre los Landings en la documentación de Mensagia.
Obtener Landings
Este método te permite obtener todas las Landings de tu cuenta.
Response 200
{
"data": [
{
"id": 1,
"name": "Taller",
"title": "Visita nuestro taller",
"url": "https://zmz.com/AaAaA",
"screenshot_url": "https://www.mensagia.com/img/screenshot.jpg",
"created_at": "2021-06-21 07:42:39",
"updated_at": "2021-06-21 07:42:43"
},
{
"id": 2,
"name": "Fin de Año",
"title": "La mejor fiesta de fin de año",
"url": "https://zmz.com/bBbBb",
"screenshot_url": "https://www.mensagia.com/img/screenshot.jpg",
"created_at": "2021-06-21 07:42:58",
"updated_at": "2021-06-21 07:43:03"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/landings
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: Mi Landing Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
title | string (optional) Example: Título Envía este parámetro si quieres buscar por título. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
Formularios
Métodos para administrar los Formularios de tu cuenta.
Accesible únicamente para cuentas de tipo cliente
Puedes obtener más información sobre los Formularios en la documentación de Mensagia.
Obtener formularios
Este método te permite obtener todos los Formularios de tu cuenta.
Response 200
{
"data": [
{
"id": 1,
"type": "unlimited_answers",
"name": "Formulario evento",
"title": "El mejor evento del año",
"url": "https://zmz.com/aAaAa",
"screenshot_url": "https://www.mensagia.com/img/screenshot.jpg",
"expiration_date": null,
"redirection_url": null,
"created_at": "2021-06-22 11:18:28",
"updated_at": "2021-06-22 11:18:33"
},
{
"id": 2,
"type": "limited_by_phone",
"name": "Cita Previa",
"title": "Escoge tu visita con nosotros",
"url": "https://zmz.com/bBbBb",
"screenshot_url": "https://www.mensagia.com/img/screenshot.jpg",
"expiration_date": "2021-07-24 22:00:00",
"redirection_url": "https://midominio.com/thanks",
"created_at": "2021-06-22 11:18:49",
"updated_at": "2021-06-22 11:18:53"
}
],
"meta": {
"pagination": {
"total": 2,
"count": 2,
"per_page": 10,
"current_page": 1,
"total_pages": 1,
"links": []
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}
}
Response 500 INTERNAL_ERROR
{
"error": {
"code": "INTERNAL_ERROR",
"http_code": 500,
"message": "Internal Server Error."
}
}
HTTP Request
GET https://api.mensagia.com/v1/forms
Query Parameters
Parameter | Description |
---|---|
name | string (optional) Example: Mi formulario Envía este parámetro si quieres buscar por nombre. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
title | string (optional) Example: Título Envía este parámetro si quieres buscar por título. Ten en cuenta el parámetro search_type para el tipo de búsqueda. |
search_type | string (optional) Default: contains Example: equalsElegir el tipo de búsqueda para campos de tipo string . Por defecto el valor del campo search_type es contains y devolverá elementos que contengan el valor que enviaste. Si el valor de search_type es equals se devolverán unicamente elementos que coincidan exactamente con el valor enviado, sin tener en cuenta coincidencias o elementos que lo contengan. Valores posibles:
|
page | integer (optional) Example: 1 Si existe páginado, indica el número de página a obtener. |
per_page | integer (optional) Default: 10 Example: 20Indica el número de elementos por página que quieres obtener. |
2-Factor Authentication
Utiliza la autenticación de 2 factores en tus aplicaciones para aumentar la seguridad de tus usuarios.
Accesible únicamente para cuentas de tipo cliente
Crear y enviar PIN
Utiliza este método para enviar un PIN a un número de teléfono con el mensaje que elijas para iniciar la autenticación en 2 factores.
Cada vez que crees un nuevo PIN para un número de teléfono (y un custom_ID determinado si lo utilizas) los PIN generados anteriormente serán eliminados. Solo se mantendrá activo el último PIN enviado.
Este método retornará uno de estos estados:
Status | Descripción |
---|---|
SMS_SENT | Se ha enviado un PIN al usuario correctamente a través de SMS. |
NO_BALANCE | No se ha podido enviar el PIN porque no dispones de saldo suficiente en tu cuenta para poder enviar el SMS. |
NO_ROUTE_FOR_COUNTRY | No se ha podido enviar el PIN porque no dispones de ruta para enviar a este país. Contacta con tu comercial si tienes este problema. |
ERROR | Se ha generado un error enviando el SMS. |
INTERNAL_SERVER_ERROR | Se ha producido un error inesperado. |
Response 200
{
"data": {
"status": "SMS_SENT",
"created_at": "2018-03-13 11:58:14",
"expiration_date": "2018-03-13 12:28:14"
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"configuration_name": "The configuration name 'configuration_test' doesn't exist. Create one at http://mensagia.com/api/configurations"
}
}
}
Response 400 VALIDATION_FAIL
{
"error": {
"code": "VALIDATION_FAIL",
"message": "The data validation is not correct. See validation_errors array.",
"http_code": "400",
"validation_errors": {
"message": [
"The message field is required.",
"The string #PIN# is not present in your message. You need to include it."
],
"number": [
"The number field is required.",
"The number field contains an invalid number."
]
}
}
}
Response 403 FORBIDDEN
{
"error": {
"code": "FORBIDDEN",
"http_code": 403,
"message": "Forbidden: This method must be called from customer account"
}