NAV

API

API Version

Versión 1.14.5

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
email 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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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.
email 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: equals
Elegir 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:
  • contains
  • equals
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:
  • false or 'false'
  • true or 'true'
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:
  • false or 'false'
  • true or 'true'
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:
  • false or 'false'
  • true or 'true'
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: 20
Indica 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.

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.
email 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:
  • false or 'false'
  • true or 'true'
in_voice_blacklist mixed (optional) Example: false
Indica si el contacto está incluido en la Lista Negra de VOZ.

Valores posibles:
  • false or 'false'
  • true or 'true'
in_mail_blacklist mixed (optional) Example: false
Indica si el contacto está incluido en la Lista Negra de Email.

Valores posibles:
  • false or 'false'
  • true or 'true'
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
email 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:
  • number
  • email

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
email 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:
  • 0
  • 1
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:
  • number
  • email

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.

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.
email 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:
  • false or 'false'
  • true or 'true'
in_voice_blacklist mixed (optional) Example: false
Indica si el contacto está incluido en la Lista Negra de VOZ.

Valores posibles:
  • false or 'false'
  • true or 'true'
in_mail_blacklist mixed (optional) Example: false
Indica si el contacto está incluido en la Lista Negra de Email.

Valores posibles:
  • false or 'false'
  • true or 'true'
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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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.
date_format string (optional) Example: D-M-Y
Formato de fecha para el campo personalizado de tipo fecha. Obligatorio si type=date. Extrafield type date format.

Valores posibles:
  • number
  • string
  • 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: 20
Indica 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.
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:
  • 0
  • 1
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: 20
Indica 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 (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.
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:
  • realtime
  • on_send
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:
  • 0
  • 1
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:
  • realtime
  • on_send
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:
  • 0
  • 1
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
        }
}

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 movil 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:
  • 0
  • 1
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:
  • 0
  • 1
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:
  • realtime
  • on_send
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:
  • 0
  • 1
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: equals
Elegir 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:
  • contains
  • equals
active integer (optional) Example: 1
Envía este parámetro si quieres buscar campañas por su estado.

Valores posibles:
  • 0
  • 1
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:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
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: 20
Indica 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: 1
Si 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:
  • 0
  • 1
show_messages_sent integer (optional) Default: 0 Example: 0
Si 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:
  • 0
  • 1

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:
  • realtime
  • on_send
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:
  • 0
  • 1
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
        }
}

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 movil 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:
  • 0
  • 1
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:
  • 0
  • 1
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:
  • realtime
  • on_send
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:
  • 0
  • 1
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:

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:

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.

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.

Email

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:
  • png
  • gif
  • jpg
  • jpeg
  • zip
  • rar
  • pdf
  • txt
  • csv
  • doc
  • docx
  • xls
  • xlsx
  • ppt
  • pptx
  • odt
  • ods
  • odp
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:
  • 0
  • 1
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:
  • all_at_once
  • custom
  • warmup_plan
  • progressive_plan
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:
  • png
  • gif
  • jpg
  • jpeg
  • zip
  • rar
  • pdf
  • txt
  • csv
  • doc
  • docx
  • xls
  • xlsx
  • ppt
  • pptx
  • odt
  • ods
  • odp
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:
  • 0
  • 1
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: equals
Elegir 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:
  • contains
  • equals
active integer (optional) Example: 1
Envía este parámetro si quieres buscar campañas por su estado.

Valores posibles:
  • 0
  • 1
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:
  • 1
  • 2
  • 3
  • 4
  • 5
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: 20
Indica 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:

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:

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.
email 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: 20
Indica 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
email 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: 20
Indica 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: 20
Indica 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.
email 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: 20
Indica 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: 20
Indica 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:
  • MO
  • MT
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: 20
Indica 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.

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:

El formato de responses_codes será un ARRAY en JSON con el siguiente formato:

Consideraciones importantes



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:
  • text2speech
  • file
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:
  • en
  • en-gb
  • en-au
  • en-in
  • en-gb-wls
  • es
  • ca
  • zh-cn
  • zh-tw
  • da
  • nl
  • fr
  • de
  • it
  • ja
  • ko
  • no
  • pl
  • pt-pt
  • pt-br
  • ru
  • sv
  • fi
  • tr
  • wls
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:
  • 0
  • 1
  • 2
  • 3
  • 4
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:
  • 1
  • 2
  • 5
  • 10
  • 20
  • 30
  • 60
  • 120
  • 240
  • 480
  • 960
  • 1440
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:
  • 1
  • 2
  • 5
  • 10
  • 20
  • 30
  • 60
  • 120
  • 240
  • 480
  • 960
  • 1440
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:
  • 1
  • 2
  • 5
  • 10
  • 20
  • 30
  • 60
  • 120
  • 240
  • 480
  • 960
  • 1440
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:
  • 1
  • 2
  • 5
  • 10
  • 20
  • 30
  • 60
  • 120
  • 240
  • 480
  • 960
  • 1440
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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: equals
Elegir 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:
  • contains
  • equals
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: 20
Indica 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"
    }
}

Response 500 INTERNAL_ERROR

{
    "error": {
        "code": "INTERNAL_ERROR",
        "http_code": 500,
        "message": "Internal Server Error."
    }
}

HTTP Request

POST https://api.mensagia.com/v1/2FA/create

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: Introduce este codigo: #PIN#. Tienes 30 minutos para realizar esta acción.
El mensaje a enviar. El mensaje debe contener el string #PIN# para que podamos reemplazarlo por el PIN generado. Ten en cuenta las consideraciones sobre mensajes a enviar en la documentación de Mensagia.
number string (required) Example: 34600000001
Número de teléfono del contacto, sin espacios, con el prefijo internacional y sin el signo '+'.
custom_ID string (optional) Example: application1
Utiliza este campo si quieres usar 2FA en más de una aplicación y que no haya colisiones con un mismo número.
expires_in integer (optional) Default: 30 Example: 60
El número de minutos en el que quieres que expire y ya no sea válido el PIN.

Comprobar PIN

Utiliza este método para comprobar si un PIN ha sido enviado a un número de teléfono y es todavía válido.

Una vez hayas válidado un PIN, el registro será eliminado de la base de datos. Por lo tanto, solo puedes validar una vez el PIN.


Este método retornará uno de estos estados:

Status Descripción
VALID EL PIN es válido.
EXPIRED El PIN subministrado ha caducado y es inválido. Es necesario crear un nuevo PIN.
INVALID EL PIN no es correcto.

Response 200

{
    "data": {
        "code": "VALID"
    }
}

Response 400 VALIDATION_FAIL

{
    "error": {
        "code": "VALIDATION_FAIL",
        "message": "The data validation is not correct. See validation_errors array.",
        "http_code": "400",
        "validation_errors": {
            "number": [
                "The number field is required."
                "The number must be a number."
            ],
            "pin": [
                "The pin field is required."
                "The pin must be a number."
            ]
        }
    }
}

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/2FA/check

Query Parameters

Parameter Description
number string (required) Example: 34600000001
Número de teléfono del contacto, sin espacios, con el prefijo internacional y sin el signo '+'.
pin string (required) Example: 123456
El PIN subministrado por el usuario.
custom_ID string (optional) Example: application1
Utiliza este campo si quieres usar 2FA en más de una aplicación y que no haya colisiones con un mismo número.

Procesos

Métodos para administrar los procesos en segundo plano.

Estos métodos son útiles para conocer el estado de procesos en segundo plano tales como importaciones de contactos. Esto te permite activar una campaña o realizar un envío, solo cuando hayan finalizado todos los procesos de importación que hayas realizado.

Accesible únicamente para cuentas de tipo cliente


Estados posibles de un proceso:

Los estados posibles por los que puede pasar un proceso son los siguientes:

created El proceso ha sido creado correctamente y está a la espera de empezar.
progress El proceso ha empezado y está haciendo el trabajo asignado.
finished El proceso en segundo plano ha finalizado correctamente.
error Ha habido un error con el proceso y no será finalizado.


Obtener todos los procesos

Este método te permite obtener todas los procesos de tu cuenta.

Response 200

{
      "data": [
        {
          "id": 8,
          "type": "ContactsMassiveJson",
          "state": "progress",
          "created_at": "2017-01-25 08:00:43"
        },
        {
          "id": 7,
          "type": "ContactsMassiveJson",
          "state": "finished",
          "created_at": "2017-01-25 08:00:43"
        },
        {
          "id": 6,
          "type": "ContactsMassiveJson",
          "state": "created",
          "created_at": "2017-01-25 08:00:43"
        },
        {
          "id": 5,
          "type": "ContactsMassiveJson",
          "state": "error",
          "created_at": "2017-01-25 08:00:43"
        }
      ],
      "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. Internal code: #0123456789."
    }
}

HTTP Request

GET https://api.mensagia.com/v1/processes

Query Parameters

Parameter Description
processes_ids string (optional) Example: 1,3,5
Lista de ID’s de procesos existentes, separados por coma y sin espacios.
state string (optional) Example: finished
El estado del proceso a buscar.

Valores posibles:
  • created
  • progress
  • finished
  • error
type string (optional) Example: ContactsMassiveJson
El tipo del proceso a buscar.

Valores posibles:
  • ContactsMassiveJson
  • AgendaImport
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: 20
Indica el número de elementos por página que quieres obtener.

Obtener un proceso

Este método te permite obtener un proceso de tu cuenta.

Response 200

{
  "data": {
    "id": 8,
    "type": "ContactsMassiveJson",
    "state": "progress",
    "created_at": "2017-01-25 08:00:43"
  }
}

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/processes/{id}

Query Parameters

Parameter Description
id integer (required) Example: 1
ID del proceso.

Eliminar un proceso

Este método te permite eliminar un proceso 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": "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

DELETE https://api.mensagia.com/v1/processes/{id}

Query Parameters

Parameter Description
id integer (required) Example: 1
ID del proceso.

Obtener resumen de importacion

Este método te permite obtener el resumen de una importación. Este método sólo es válido para procesos de tipo AgendaImport y ContactsMassiveJson y para procesos que hayan finalizado.

Response 200

{
    "data": {
        "total_rows_processed": 1000,
        "total_created": 857,
        "total_imported": 857,
        "total_errors": 143
    }
}

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: Process with id 2 is not finished."
    }
}

Response 403 PROCESS_NOT_FINISHED

{
    "error": {
        "code": "PROCESS_NOT_FINISHED",
        "http_code": 403,
        "message": "Forbidden: Process with id 2 is not finished."
    }
}

Response 403 PROCESS_TYPE_NOT_ALLOWED

{
    "error": {
        "code": "PROCESS_TYPE_NOT_ALLOWED",
        "http_code": 403,
        "message": "Forbidden: Process type not allowed. Only AgendaImport or ContactsMassiveJson."
    }
}

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/processes/{id}/import_summary

Query Parameters

Parameter Description
id integer (required) Example: 1
ID del proceso.

Obtener errores de importacion

Este método te permite obtener los errores generados durante una importación de contactos. Solo es válido para procesos de tipo AgendaImport y ContactsMassiveJson y para procesos que hayan finalizado.

Procesos de tipo AgendaImport

Si el proceso es de tipo AgendaImport, por cada error de importación se devolverá en el campo file_row los valores de la fila procesada del archivo de importacíon que generó el error.

El valor del campo json_user_object siempre será null, ya que sólo tendrá valor cuando venga de un proceso de tipo ContactsMassiveJson.

Procesos de tipo ContactsMassiveJson

Si el proceso es de tipo ContactsMassiveJson, por cada error de importación se devolverá en el campo json_user_object el objetos usuario enviado en el JSON que generó el error.

El valor del campo file_row siempre será null, ya que sólo tendrá valor cuando venga de un proceso de tipo AgendaImport.

Response 200 AgendaImport process

{
    "data": [
        {
            "error_code": "WITHOUT_NUMBER",
            "from_process_type": "AgendaImport",
            "json_user_object": null,
            "file_row": {
                "name": "Pedro Martínez",
                "number": "",
                "email":"pmartinez@email.com"
            }
        },
        {
            "error_code": "WITHOUT_NUMBER",
            "from_process_type": "AgendaImport",
            "json_user_object": null,
            "file_row": {
                "name": "Juan Rodríguez",
                "number": "",
                "email":"jrodriguez@email.com"
            }
        },
        {
            "error_code": "INVALID_NUMBER",
            "from_process_type": "AgendaImport",
            "json_user_object": null,
            "file_row": {
                "name": "Pedro Reyes",
                "number": "346001002",
                "email":"preyes@email.com"
            }
        },
    ],
    "meta": {
        "pagination": {
            "total": 2,
            "count": 10,
            "per_page": 10,
            "current_page": 1,
            "total_pages": 1,
            "links": []
        }
    }
}

Response 200 ContactsMassiveJson process

{
    "data": [
        {
            "error_code": "FAIL_SYNC_GROUPS",
            "from_process_type": "ContactsMassiveJson",
            "json_user_object": {
                "contact": {
                    "number": "34600100220",
                    "name": "John Smith"
                },
                "groups": "7",
                "extra_fields": {
                    "extra1": "value1",
                    "extra2": "value2"
                }
            },
            "file_row": null
        },
        {
            "error_code": "INVALID_NUMBER",
            "from_process_type": "ContactsMassiveJson",
            "json_user_object": {
                "contact": {
                    "number": "34600",
                    "name": "Peter Red"
                },
                "groups": "7",
                "extra_fields": {
                    "extra1": "value1",
                    "extra2": "value2"
                }
            },
            "file_row": null
        },
        {
            "error_code": "FAIL_SYNC_GROUPS",
            "from_process_type": "ContactsMassiveJson",
            "json_user_object": {
                "contact": {
                    "number": "34600200400",
                    "name": "John Brown"
                },
                "groups": "732423,4234423",
                "extra_fields": {
                    "extra1": "value1",
                    "extra2": "value2"
                }
            },
            "file_row": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 3,
            "count": 3,
            "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 PROCESS_NOT_FINISHED

{
    "error": {
        "code": "PROCESS_NOT_FINISHED",
        "http_code": 403,
        "message": "Forbidden: Process with id 2 is not finished."
    }
}

Response 403 PROCESS_TYPE_NOT_ALLOWED

{
    "error": {
        "code": "PROCESS_TYPE_NOT_ALLOWED",
        "http_code": 403,
        "message": "Forbidden: Process type not allowed. Only AgendaImport or ContactsMassiveJson."
    }
}

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/processes/{id}/import_errors

Query Parameters

Parameter Description
id integer (required) Example: 1
ID del proceso.

Herramientas

Diferentes herramientas para obtener el mejor rendimiento de la API.

Accesible únicamente para cuentas de tipo cliente

Preview Mensaje a Enviar

Este método te permite obtener información sobre un SMS a enviar a un contacto, remplazando los campos personalizados por los valores de los campos personalizados del contacto si los tuviera. El método devuelve información sobre el mensaje real a enviar al contacto, el número de carácteres del SMS, el número de SMS a enviar para este mensaje y si el mensaje contiene caracteres UNICODE.

Response 200

{
    "data": {
        "original_message": "Message to try preview contact message from contact: #name#. Works fine!",
        "number": "34600000001",
        "message_to_send": "Message to try preview contact message from contact: Juán Mánchez. Works fine!",
        "characters_count": 78,
        "messages_to_send": 2,
        "is_unicode": true
    }
}

Response 400 WRONG_ARGS

{
    "error": {
        "code": "WRONG_ARGS",
        "http_code": 400,
        "message": "number 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 500 INTERNAL_ERROR

{
    "error": {
        "code": "INTERNAL_ERROR",
        "http_code": 500,
        "message": "Internal Server Error."
    }
}

HTTP Request

POST https://api.mensagia.com/v1/tools/preview_contact_message

Query Parameters

Parameter Description
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.
number string (required) Example: 34600000001
Número de teléfono del contacto, sin espacios, con el prefijo internacional y sin el signo '+'.

Obtener URL Formulario de Baja SMS

Este método te permite obtener la URL del formulario de Baja SMS. Cuando un usuario se da de baja en el formulario, es añadido a la agenda 'Lista Negra' para que no reciba más SMS. Puedes obtener más información en la documentación de Mensagia sobre Formulario de Baja SMS

Response 200

{
    "data": {
        "unsubscribe_url": "https://goo.gl/AAAAAA"
    }
}

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/tools/unsubscribe_url