Envío de OTP personalizado
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 esta interfaz.
Esta interfaz se utiliza exclusivamente para enviar códigos de verificación pregenerados y no genera el código de verificación por sí misma. Tras enviar el código de verificación, no es necesario llamar a la interfaz de verificación para validarlo.
Si desea que la plataforma EngageLab genere el código de verificación, puede llamar a la interfaz Envío de OTP de EngageLab.
Dirección de la llamada
POST https://otp.api.engagelab.cc/v1/codes
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/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de la solicitud
{
"to": "+6591234567",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
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 |
| code | String | Obligatorio | El código de verificación personalizado que se va a enviar |
| 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
- 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;
- 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; - 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ámetroparams:{"name":"Bob"} - Variables especiales del canal Email: para el canal Email, se admite sobrescribir dinámicamente mediante
paramsel 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 |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
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"
}
Códigos de error
| 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 |
| 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 |
| 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 |










