Entrega de mensajes personalizados

Si has creado contenido de plantilla personalizado en la plataforma OTP, llama a esta API para enviar mensajes personalizados.

Endpoint

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

Autenticación

Usa la 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 de generación de base64_auth_string es: base64(dev_key:dev_secret).

Formato de la solicitud

Cabeceras 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": "+6591234567", "template": { "id": "test-template-1", "params": { "code": "codevalue", "var1": "value1" } } }
              
              {
  "to": "+6591234567",
  "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 la cabecera de la solicitud debe incluir Content-Type: application/json.

Parameter Type Required Description
to String Required Destino de entrega: un número de teléfono móvil o una dirección de correo electrónico, como +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
|_ params JSON Object Optional Parámetros de la plantilla
_ |_ code String Optional Obligatorio cuando el tipo de plantilla es un código de verificación
_ |_ var String Optional Valor de la clave de variable de la plantilla personalizada. Si definiste variables personalizadas al crear la plantilla, asígnales aquí sus valores. Si no se proporciona, la clave de la variable se entregará directamente, como {{var1}}

Notas sobre params

  1. Para variables de plantilla predefinidas como {{brand_name}}, {{ttl}} y {{pwa_url}}, no es necesario enviarlas. El sistema las sustituye automáticamente por el contenido especificado al crear la plantilla.
  2. Si el tipo de plantilla es un código de verificación, debes enviar la variable {{code}}; de lo contrario, se devolverá un error.
  3. Si el contenido de la plantilla contiene campos de variables personalizadas definidos al crearla, asígnales también valores mediante params. Por ejemplo, para el contenido de plantilla Hi {{name}}, your verify code is {{code}}, debes asignar el parámetro params: {"name":"Bob"}.

Ejemplos de solicitud

1. Enviar un código de verificación personalizado

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

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

2. Enviar contenido de notificación personalizado

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "notification-template",
    "params": {
      "order": "123456"
    }
  }
}

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

3. Enviar contenido de marketing personalizado

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

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

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 que se está utilizando actualmente 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

Ten en cuenta que el valor de 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 configurada en la plantilla especifica que, cuando falle la entrega por WhatsApp, debe reintentarse automáticamente a través del canal SMS, la respuesta de la API devolverá whatsapp. Después, cuando se detecte el fallo de entrega tras un cierto periodo de tiempo, 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 obtener 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 Falló la autenticación. No se proporcionó un token válido
2002 401 Falló la autenticación. El token ha caducado o ha sido 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ámetros 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. Ha fallado la validación de negocio relacionada. Consulta la descripción del error en el campo message para más detalles
3004 400 Límite de frecuencia superado. Para la misma plantilla y el mismo usuario de destino, no se puede volver a activar la entrega dentro del periodo de validez del código de verificación
4001 400 El recurso relacionado no existe. Por ejemplo, se ha usado una plantilla inexistente al enviar un mensaje de plantilla
5001 400 Error de envío (general/otro)
5011 400 Formato de número de teléfono móvil no válido
5012 400 Destino inalcanzable
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/rechazado
5016 400 Error interno de envío
5017 400 No tienes permiso para enviar a China continental
5018 400 Problema del dispositivo móvil (apagado/servicio suspendido)
5019 400 El usuario se ha dado de baja
5020 400 El número no está registrado / número no válido
Icon Solid Transparent White Qiyu
Contacto