Entrega de OTP

Esta API genera códigos de verificación a través de la plataforma EngageLab y los entrega según la estrategia de canal especificada en la plantilla.

Si quieres generar los códigos de verificación tú mismo en lugar de usar la plataforma EngageLab, puedes llamar a la API EngageLab OTP Custom Verification Code Delivery.

Endpoint

POST https://otp.api.engagelab.cc/v1/messages

Autenticación

Usa autenticación básica HTTP y añade Authorization a la cabecera HTTP:

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Este bloque de código se muestra en una ventana flotante

El algoritmo para generar base64_auth_string es: base64(dev_key:dev_secret)

Ejemplo de solicitud

Cabecera de la solicitud

POST /v1/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
Este bloque de código se muestra en una ventana flotante

Cuerpo de la solicitud

{ "to": "+6591234567", "template": { "id": "test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "language": "default",
    "params": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

            
Este bloque de código se muestra en una ventana flotante

Parámetros de la solicitud

Un objeto de solicitud se expresa en formato JSON, por lo que la cabecera debe incluir Content-Type: application/json.

Parameter Type Required Description
to String Required Destinatario: número de teléfono o dirección de correo electrónico, por ejemplo, +6598765432 o support@engagelab.com
template JSON Object Required Información de la plantilla. Consulta los parámetros anidados a continuación.
|_ id String Required ID de la plantilla
|_ language String Optional Idioma de la plantilla. Se admiten los siguientes idiomas:
default: idioma predeterminado
zh_CN: chino simplificado
zh_HK: chino tradicional
en: inglés
ja: japonés
th: tailandés
es: español
Si no se proporciona, el valor predeterminado es default (idioma predeterminado).
|_ params JSON Object Optional Valores de las claves de variables personalizadas de la plantilla. Si definiste variables personalizadas al crear la plantilla, asígnales aquí sus valores. Si no se proporciona, la clave de la variable se enviará directamente, por ejemplo, {{var}}.

Notas sobre params

  1. Para los campos predefinidos en la plantilla, como from_id, si no se proporciona el valor del campo param_vars, se utilizará el from_id predefinido de la plantilla al entregar el mensaje.
  2. Si se proporciona el valor del campo param_vars, por ejemplo, param_vars:{"from_id":"12345"}, el from_id de la plantilla se sustituirá por 12345 cuando se entregue el mensaje.
  3. Del mismo modo, los campos de variables personalizadas del contenido de la plantilla definidos durante su creación también se asignan mediante param_vars. Por ejemplo, si el contenido de la plantilla es Hi {{name}}, your verify code is {{code}}, se requerirá el parámetro de asignación param_vars:{"name":"Bob"}.

Parámetros de respuesta

Respuesta correcta

Field Type Required Description
message_id String Required ID del mensaje, que identifica de forma única un mensaje
send_channel String Required Indica el canal de entrega actual. Los valores posibles son whatsapp, sms, email o voice.
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
  "message_id": "1725407449772531712",
  "send_channel": "sms"
}

            
Este bloque de código se muestra en una ventana flotante

Ten en cuenta que el valor send_channel devuelto no representa el canal final utilizado para entregar el mensaje al usuario. Solo indica el canal que se está utilizando en ese momento. Por ejemplo, si la estrategia de la plantilla está configurada para que, si falla la entrega a través del canal de WhatsApp, se reintente automáticamente a través del canal SMS, la respuesta de la API devolverá el valor whatsapp. Transcurrido un cierto tiempo, una vez detectado el fallo de entrega, el sistema enviará el mensaje a través del canal SMS.

Respuesta fallida

El código de estado HTTP es 4xx o 5xx, y el cuerpo de la respuesta contiene los siguientes campos:

Field Type Required Description
code int Required Código de error. Para más información, consulta Códigos de error
message String Required Detalles del error
{ "code": 5001, "message": "sms send fail" }
              
              {
  "code": 5001,
  "message": "sms send fail"
}

            
Este bloque de código se muestra en una ventana flotante

Códigos de error

Error Code HTTP Code Description
1000 500 Error interno
2001 401 Error de autenticación; no se proporcionó el token correcto
2002 401 Error de autenticación; el token ha caducado o se ha deshabilitado
2004 403 No tienes permiso para llamar a esta API
3001 400 Formato de parámetro de solicitud no válido. Comprueba si el contenido JSON coincide con el formato de parámetro requerido
3002 400 Parámetros de solicitud no válidos. Comprueba si los parámetros de la solicitud cumplen los requisitos
3003 400 Parámetros de solicitud no válidos. La validación de negocio correspondiente ha fallado. Consulta la descripción del error en el campo message para obtener más detalles
3004 400 Límite de frecuencia superado. Para la misma plantilla y el mismo destinatario, no se puede volver a realizar la entrega dentro del periodo de validez del código de verificación
4001 400 El recurso correspondiente no existe. Por ejemplo, se usa una plantilla inexistente al enviar un mensaje de plantilla
5001 400 Error de envío (general/u otro)
5011 400 Formato de número de teléfono no válido
5012 400 Destino inaccesible
5013 400 El número se ha añadido a la lista negra
5014 400 El contenido no cumple las especificaciones
5015 400 Mensaje interceptado o rechazado
5016 400 Error interno de envío
5017 400 No tienes permiso para enviar a China continental
5018 400 Problema con el teléfono (apagado o servicio suspendido)
5019 400 El usuario se ha dado de baja
5020 400 Número no registrado o número no válido
Icon Solid Transparent White Qiyu
Contacto