Envío de OTP

Esta interfaz hace que la plataforma EngageLab genere el código de verificación y lo envíe según la estrategia de canales especificada en la plantilla.

Si desea generar el código de verificación por su cuenta en lugar de hacerlo a través de la plataforma EngageLab, puede llamar a la interfaz Envío de OTP personalizado de EngageLab.

Dirección de la llamada

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

Autenticación de llamadas

Consulte Autenticación de llamadas para saber cómo autenticar la API.

Ejemplo de solicitud

Encabezados 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 el encabezado de la solicitud debe incluir Content-Type: application/json.

Parámetro Tipo Opción Descripción
to String Obligatorio Destino del envío, número de teléfono o dirección de correo, +6598765432, support@engagelab.com
end_user_ip String Opcional Dirección IP del usuario final. Se utiliza cuando se necesita limitar el máximo de solicitudes de la misma dirección IP en diferentes ventanas de tiempo, p. ej.: 10.3.5.7
channel String Opcional Especifica el canal de envío inicial. Valores: sms/voice/zalo/viber. Si se omite, el enrutamiento sigue send_channel_strategy de la plantilla.
template JSON Object Obligatorio Información de la plantilla; los parámetros de segundo nivel que contiene se indican a continuación
|_ id String Obligatorio ID de la plantilla
|_ language String Opcional 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 pasa, el valor predeterminado es default (idioma predeterminado)
|_ params JSON Object Opcional Valor de la Key de variable personalizada de la plantilla
Si definió variables personalizadas al crear la plantilla, asígneles aquí su valor; si no se pasa, se enviará directamente con la Key de la variable, como {{var}}

Acerca de params

  1. Para los campos preestablecidos de la plantilla, como from_id, si no se pasa el valor del campo params, al enviar el mensaje se usa el from_id preestablecido de la plantilla;
  2. Si se pasa el valor del campo params, como params:{"from_id":"12345"}, al enviar el mensaje el from_id de la plantilla se sustituirá por 12345;
  3. Asimismo, para los campos de variables personalizadas del contenido de la plantilla definidos al crearla, también se asignan sus valores mediante params; por ejemplo, si el contenido de la plantilla es Hi {{name}}, your verify code is {{code}}, deberá asignar el parámetro params:{"name":"Bob"}
  4. Variables especiales del canal Email: para el canal Email, se admite sobrescribir dinámicamente mediante params el asunto del correo (subject), el nombre del remitente (from_name), el correo del remitente (from_mail), etc. Para el uso avanzado detallado, consulte Crear plantilla - Uso avanzado de las variables de plantilla de Email.

Parámetros de la respuesta

Respuesta exitosa

Campo Tipo Opción Descripción
message_id String Obligatorio ID del mensaje, identifica de forma única un mensaje
send_channel String Obligatorio Indica el canal de envío actual; los valores posibles son whatsapp/sms/email/voice/zalo/viber
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

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

Tenga en cuenta que el valor de**send_channel**devuelto no representa el canal final por el que se entrega al usuario, sino únicamente el canal usado en la etapa actual; por ejemplo, si en la estrategia configurada en la plantilla se establece que, ante un fallo de entrega por el canal WhatsApp, se reenvíe automáticamente por el canal SMS, la interfaz devolverá el valor whatsapp y, tras detectar el fallo de entrega pasado un tiempo, el sistema enviará por el canal SMS.

Respuesta de error

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

Campo Tipo Opción Descripción
code int Obligatorio Código de error; véase la descripción de los códigos de error
message String Obligatorio 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

La siguiente tabla solo describe los errores que esta API devuelve durante la autenticación, la validación previa al envío y el envío sincrónico. Los fallos de entrega asincrónicos tras la aceptación del proveedor no se devuelven por esta API; obténgalos mediante consultas de estado del mensaje o callbacks.

El llamador debe usar code para determinar el tipo de error. Use message para mostrar el motivo concreto o para el diagnóstico; no confíe en un texto fijo de message para la lógica de negocio.

Código de error http code Descripción
1000 500 Error interno
2001 401 Error de autenticación; no se incluyó un token correcto
2002 401 Error de autenticación; el token ha expirado o ha sido deshabilitado
2003 403 Esta IP no tiene permiso para enviar mensajes.
2004 403 Sin permiso para llamar a esta API
3001 400 Formato de los parámetros de la solicitud no válido; compruebe que el contenido JSON cumple el formato de los parámetros
3002 400 Parámetros de la solicitud incorrectos; compruebe que los parámetros de la solicitud cumplen los requisitos
3003 400 Parámetros de la solicitud incorrectos; falló la validación de negocio correspondiente; consulte la descripción del error en el campo message
3004 400 Se superó el límite de frecuencia; para la misma plantilla y el mismo usuario de destino, no se puede volver a enviar dentro del periodo de validez del código de verificación
3005 400 Saldo disponible de la cuenta insuficiente
3013 400 La plantilla no está aprobada o no está disponible actualmente
4001 400 El recurso correspondiente no existe; por ejemplo, se usó una plantilla inexistente al enviar el mensaje de plantilla
5001 400 Error de envío (genérico/otros)
5011 400 Formato del número de teléfono no válido
5012 400 Destino inalcanzable
5013 400 El número está en la lista negra
5014 400 El contenido no cumple las normas
5015 400 Mensaje interceptado/rechazado
5016 400 Error interno de envío
5017 400 Sin permiso de envío a la región de China
5018 400 Teléfono averiado (apagado/suspendido)
5019 400 El usuario ha cancelado la suscripción
5020 400 Número no registrado/inexistente
6001 429 Se superó la frecuencia de envío para el mismo número de teléfono; la ventana de límite puede ser por minuto, hora o día natural
6002 429 Se superó la frecuencia de envío para la misma IP del usuario final; la ventana de límite puede ser por minuto u hora; solo se comprueba cuando la solicitud incluye end_user_ip
6003 429 El volumen de envío diario o mensual global de la aplicación alcanzó el límite
6006 403 No se permite el envío en el país o región actual
6007 403 El servicio de envío de códigos de verificación por SMS está suspendido; puede aplicarse a todos los países/regiones o al país/región actual
6008 429 El volumen de envío diario o mensual del país o región actual alcanzó el límite

Notas sobre errores de límite de frecuencia y volumen de envío

  • 3004 es el control de frecuencia de envío de OTP por plantilla; la ventana de límite se basa en la configuración de la plantilla y puede no coincidir con el periodo de validez del código.
  • 6001 y 6002 son controles de frecuencia de seguridad a nivel de número o IP del usuario final.
  • 6003 y 6008 indican que esta solicitud alcanzó un límite de volumen de envío; tras alcanzar el límite y entrar en estado suspendido, las solicitudes posteriores pueden devolver 6007.
  • Al recibir HTTP 429, no reintente de inmediato de forma continua; reintente más tarde y, si persiste, contacte al administrador o al soporte técnico.
  • 5011 a 5019 solo cubren fallos identificables en la fase de envío sincrónico. Estados como número vacío, teléfono apagado o rechazo del operador tras la aceptación del proveedor aún pueden devolverse mediante el estado asincrónico del mensaje o callbacks.
Icon Solid Transparent White Qiyu
Contacto