Skip to main content
Siete endpoints, todos JSON, todos devolviendo la misma envoltura. Seis cuelgan de /secure/ y usan autenticación HTTP Basic; /ping no usa ninguna.
Los dos últimos piden; no conceden. Un sender ID o una plantilla escritos a través de ellos se almacenan a la espera de la aprobación de su proveedor y no son utilizables hasta que los apruebe. Llegaron en la pasarela 0.9.7; contra cualquier versión anterior responden 404.

La envoltura

Cada respuesta es un objeto JSON con o bien data o bien message. Nunca ambos, y nunca un valor desnudo en el nivel superior.
Success
Failure
Así que la ramificación en su cliente es res.ok, y la razón legible siempre está en message. No hay campo de código de error: el estado HTTP es el código, y la cadena es para una persona leyendo un log.

Autenticación

Basic, con su login HTTP como nombre de usuario:
Un login SMPP no puede usar esta API, y el rechazo no lo dice con esas palabras. Es un 403 que lee Authentication failure, la misma respuesta que da una contraseña incorrecta. Si un login funciona sobre SMPP y devuelve 403 aquí, compruebe su tipo antes que la contraseña.
Las credenciales van en la cabecera y en ningún otro sitio. username y password como campos del cuerpo no se ignoran: se rechazan como argumentos desconocidos, que es como suele anunciarse un payload copiado de otra pasarela.

Guiones bajos y guiones son el mismo campo

Cada _ se reescribe a - antes de que se parsee el cuerpo. Así que dlr_url y dlr-url son un único campo, y puede escribir el que prefiera su lenguaje. Dos consecuencias que merece la pena conocer antes de que muerdan:
{"dlr_url": "…", "dlr-url": "…"} es un duplicado de un campo, y la API rechaza en lugar de elegir silenciosamente una. Es deliberado: elegir en silencio significaría que un acuse iría a un sitio que el llamante no pretendía.
Conserva su guion bajo. custom-tlvs es un argumento desconocido y devuelve un 400, porque el normalizador exime este único nombre. Véase TLV personalizadas.

Esta referencia es la autoritativa

Describe lo que la pasarela realmente acepta, y sus ejemplos se han ejecutado contra una instancia en vivo.
Si le han dado un documento OpenAPI o Swagger, compruébelo contra estas páginas antes de generar un cliente a partir de él. Circuló una especificación antigua que está equivocada en tres puntos con los que se topa el primer día:
  1. custom_tlvs es un objeto, no un array de pares.
  2. validity_period es un entero de minutos, no una cadena.
  3. product falta por completo.
Un cliente generado a partir de esa spec falla en su primera llamada.

Relacionado

Errores

Cada estado que devuelve esta API y qué lo provoca.

Quickstart

Primer mensaje en menos de cinco minutos.