logoDocumentación
Buscar

Custom OTP Code Delivery - Secure Transmission and Best Practices

Si prefiere generar usted mismo el código de verificación en lugar de utilizar la plataforma de EngageLab, puede llamar a esta API.

Esta API se utiliza específicamente para enviar códigos de verificación generados previamente y no generará los códigos por sí misma. Después de enviar el código de verificación, no es necesario llamar a la API de verificación para validarlo.

Si prefiere que la plataforma de EngageLab genere el código de verificación, puede llamar a la API de envío de OTP de EngageLab.

Endpoint

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

Autenticación

Se utiliza HTTP Basic Authentication para la verificación. Añadir un Authorization en el encabezado HTTP:

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

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

El algoritmo de generación del valor anterior base64_auth_string es: base64(dev_key:dev_secret)

Ejemplo de solicitud

Encabezado de solicitud

POST /v1/codes HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/codes  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": "+8618701235678", "code": "398210", "template":{ "id":"test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
    "to": "+8618701235678",
    "code": "398210", 
    "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 El destino, ya sea un número de teléfono o una dirección de correo electrónico, p. ej., +8613800138000, support@engagelab.com
code String Obligatorio El código de verificación personalizado
template JSON Object Obligatorio Información de la plantilla, incluidos los subparámetros siguientes
|_ id String Obligatorio ID de la plantilla
|_ language String Opcional Idioma de la plantilla. Idiomas de plantilla compatibles con las siguientes opciones:
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 especifica, el valor predeterminado se establecerá en "default".
|_ params JSON Object Opcional Valores de variables de plantilla personalizados. Si se han personalizado variables al crear la plantilla, pasar aquí sus valores. Si no se proporciona, las claves de las variables se enviarán tal cual, p. ej., {{var}}

Notas sobre params

  1. Para plantillas con campos preconfigurados como from_id, si no se pasa el valor del campo param_vars, el mensaje utilizará el from_id preconfigurado de la plantilla durante el envío;
  2. Si se pasan valores del campo param_vars, como param_vars:{"from_id":"12345"}, durante el envío, el from_id de la plantilla se sustituirá por 12345;
  3. De forma similar, para campos de variables personalizados en el contenido de la plantilla creada, asignar valores mediante param_vars; p. ej., para el contenido de plantilla Hi {{name}}, your verify code is {{code}}, asignar parámetros con param_vars:{"name":"Bob"}

Parámetros de la respuesta

Respuesta correcta

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 entrega actual; las opciones incluyen whatsapp/sms/email/voice
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

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

Se debe tener en cuenta que el valor devuelto de send_channel no representa el canal de entrega final al usuario, sino únicamente el canal de la fase actual. Por ejemplo, si la estrategia de la plantilla está configurada para conmutar de WhatsApp a SMS en caso de fallo de entrega, la respuesta de la API mostrará inicialmente whatsapp y, posteriormente, si se detecta un fallo de entrega, el sistema utilizará el canal SMS para el envío.

Respuesta de error

Código de estado HTTP 4xx o 5xx; el cuerpo de la respuesta incluye los siguientes campos:

Campo Tipo Opción Descripción
code int Obligatorio Código de error; consulte Códigos de error para obtener más detalles
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

Código de error Código HTTP Descripción
1000 500 Error interno
2001 401 Fallo de autenticación; token incorrecto o ausente
2002 401 Fallo de autenticación; token caducado o deshabilitado
2004 403 Sin permisos para llamar a esta API
3001 400 Formato de parámetro de solicitud no válido; comprobar si cumple el formato de parámetros JSON
3002 400 Parámetros de solicitud incorrectos; verificar según los requisitos
3003 400 Parámetros de solicitud incorrectos; falló la validación de negocio; consultar el campo message para la descripción del error
3004 400 Se ha superado el límite de frecuencia; no se puede reenviar a la misma plantilla y al mismo usuario objetivo dentro del periodo de validez de la OTP
4001 400 El recurso relacionado no existe; p. ej., uso de una plantilla inexistente para el envío del mensaje
5001 400 Échec d'envoi (général/autre)
5011 400 Format de numéro de téléphone invalide
5012 400 Destination injoignable
5013 400 Numéro ajouté à la liste noire
5014 400 Contenu non conforme aux réglementations
5015 400 Message intercepté/rejeté
5016 400 Erreur interne d'envoi
5017 400 Absence d'autorisation pour envoyer dans la région de Chine
5018 400 Panne du téléphone (éteint/suspendu)
5019 400 Utilisateur désabonné
5020 400 Numéro non enregistré/numéro invalide
icon
Contacto