logoDocumentación
Buscar

Custom Messages Delivery

Si se ha creado contenido de plantilla personalizado en la plataforma de OTP, se debe utilizar esta API para enviar contenido de mensajes personalizado.

Endpoint de la API

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

Autenticación

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

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

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

El valor base64_auth_string se genera mediante el siguiente algoritmo: base64(dev_key:dev_secret)

Formato de la solicitud

Encabezados de la solicitud

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-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": "+8618701235678", "template":{ "id":"test-template-1", "params": { "code": "codevalue", "var1":"value1" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"test-template-1",
      "params": {
        "code": "codevalue",
        "var1":"value1"
        }
    }
}

            
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 Obligatorio Descripción
to String Destinatario; puede ser un número de teléfono (p. ej., +8613800138000) o una dirección de correo electrónico (p. ej., support@engagelab.com).
template JSON Object Información de la plantilla. Los subparámetros se describen a continuación.
|_ id String ID de la plantilla.
|_ params JSON Object Opcional Parámetros de la plantilla.
_ |_ code String Opcional Obligatorio si el tipo de plantilla es un código de verificación.
_ |_ var String Opcional Valores de variables de plantilla personalizadas. Si se definieron variables al crear la plantilla, se deben pasar aquí sus valores. Si no se proporcionan, se enviará la clave de la variable tal cual (p. ej., {{var1}}).

Notas sobre params:

Para variables predefinidas de la plantilla, como {{brand_name}}, {{ttl}} y {{pwa_url}}, no es necesario pasar valores; el sistema las reemplazará automáticamente por el contenido especificado durante la creación de la plantilla.

Si el tipo de plantilla es un código de verificación, se debe pasar la variable {{code}}; de lo contrario, se producirá un error.

Para variables personalizadas definidas en el contenido de la plantilla, se deben asignar valores mediante params. Por ejemplo, si el contenido de la plantilla es Hi {{name}}, your verify code is {{code}}, se debe pasar el parámetro params:{"name":"Bob"}.

Ejemplos de solicitud

1. Envío de un código de verificación personalizado:

{ "to": "+8618701235678", "template":{ "id":"code-template", "params": { "code": "123456" } } }
              
              {
    "to": "+8618701235678", 
    "template":{
      "id":"code-template",
      "params": {
        "code": "123456"        
        }
    }
}

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

2. Envío de una notificación personalizada:

{ "to": ["+8618701235678"], "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "notification-template",
        "params": {
            "order": "123456"
        }
    }
}

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

3. Envío de contenido de marketing personalizado:

{ "to": ["+8618701235678"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
    "to": ["+8618701235678"],
    "template": {
        "id": "marketing-template",
        "params": {
            "name": "EngageLab",
            "promotion": "30%"
        }
    }
}

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

Parámetros de la respuesta

Respuesta correcta

Campo Tipo Obligatorio Descripción
message_id String ID del mensaje, que identifica un mensaje de forma única.
send_channel String Canal utilizado para la entrega. Valores posibles: 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

Nota: El valor send_channel devuelto no representa el canal de entrega final al usuario, sino únicamente el canal utilizado en la etapa actual. Por ejemplo, si la estrategia de la plantilla está configurada para cambiar a SMS cuando la entrega por WhatsApp falla, la API devolverá inicialmente whatsapp. Si la entrega falla, el sistema cambiará automáticamente a SMS.

Respuesta de error

Los códigos de estado HTTP son 4xx o 5xx, y el cuerpo de la respuesta incluye los siguientes campos:

Campo Tipo Obligatorio Descripción
code Int Código de error. Consulte Códigos de error para obtener más detalles.
message String 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 no válido o ausente.
2002 401 Fallo de autenticación: el token ha caducado o se ha deshabilitado.
2004 403 Sin permisos para llamar a esta API.
3001 400 Formato de parámetro de solicitud no válido. Verificar que el contenido JSON cumple el formato requerido.
3002 400 Parámetros de solicitud no válidos. Verificar si los parámetros cumplen los requisitos.
3003 400 Fallo en la validación de negocio. Consulte el campo message para obtener más detalles.
3004 400 Se ha superado el límite de frecuencia. Para la misma plantilla y el mismo usuario objetivo, no se pueden reenviar códigos de verificación dentro del periodo de validez.
4001 400 Recurso no encontrado (p. ej., se utilizó una plantilla inexistente para la entrega 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