Interfaz de la API de plantillas
Crear plantilla
Endpoint
POST https://otp.api.engagelab.cc/v1/template-configs
Autenticación
Usa autenticación básica HTTP para autenticarte y añade Authorization a la cabecera HTTP:
Authorization: Basic ${base64_auth_string}
El algoritmo para generar base64_auth_string es: base64(dev_key:dev_secret)
Ejemplo de solicitud
Cabecera de la solicitud
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de la solicitud
{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"sms_config": {
"template_type": 2,
"template_default_config": {
"contain_security": false,
"contain_expire": false
},
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx",
"custom_country_codes": "HK,PH"
}
},
"voice_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"email_config": {
"template_name": "email模板名称",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "预设邮件模版内容,必填,自定义变量如{{self}},验证码是{{code}}",
"pre_param_map": {
"self": "这里是self变量预设值"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
}
}
Parámetros de la solicitud
El objeto de solicitud se expresa en formato JSON, por lo que la cabecera debe incluir Content-Type: application/json.
| Parameter | Type | Option | Description |
|---|---|---|---|
| template_id | String | Required | ID de plantilla personalizado, que debe ser único y estar limitado a 128 caracteres |
| description | String | Optional | Descripción de la plantilla, limitada a 255 caracteres |
| send_channel_strategy | String | Required | Estrategia de plantilla. Un único canal puede ser whatsapp, sms, email o voice. Varios canales se separan con ` |
| brand_name | String | Optional | Identificador de marca. En algunos estilos de plantilla con firma de marca, sustituye la variable de firma de marca. La longitud debe ser de 2 a 10 caracteres |
| verify_code_config | Object | Conditionally required | Configuración del código de verificación. Es obligatoria cuando la plantilla incluye un tipo de código de verificación |
| verify_code_config.verify_code_type | Integer | Required | Tipo de código de verificación, rango [1,7]: 1-numérico / 2-letras minúsculas / 4-letras mayúsculas. Los valores pueden combinarse; por ejemplo, 3 significa números + letras minúsculas |
| verify_code_config.verify_code_len | Integer | Required | Longitud del código de verificación, rango [4,10] |
| verify_code_config.verify_code_ttl | Integer | Required | Periodo de validez del código de verificación en minutos, rango [1,10]. Cuando la estrategia incluye whatsapp, solo puede ser 1, 5 o 10 |
| whatsapp_config | Object | Conditionally required | Configuración para la estrategia de WhatsApp. Es obligatoria cuando la estrategia de entrega incluye whatsapp |
| whatsapp_config.template_type | Integer | Required | Tipo de plantilla de WhatsApp. Actualmente, solo se admite la plantilla predeterminada, por lo que el valor es fijo: 1 |
| whatsapp_config.template_default_config | Object | Conditionally required | Configuración de la plantilla predeterminada de WhatsApp. Es obligatoria cuando el tipo de plantilla de WhatsApp es la plantilla predeterminada |
| sms_config | Object | Conditionally required | Configuración para la estrategia de SMS. Es obligatoria cuando la estrategia de entrega incluye sms |
| sms_config.template_type | Integer | Required | Tipo de plantilla SMS: 1-plantilla predeterminada / 2-plantilla personalizada |
| sms_config.template_default_config | Object | Conditionally required | Configuración de la plantilla predeterminada de SMS. Es obligatoria cuando el tipo de plantilla SMS es la plantilla predeterminada |
| sms_config.template_custom_config | Object | Conditionally required | Configuración de la plantilla SMS personalizada. Es obligatoria cuando el tipo de plantilla SMS es una plantilla personalizada |
| sms_config.template_custom_config.custom_sub_type | String | Required | Tipo de plantilla personalizada: authentication-código de verificación / marketing-marketing / utility-notificación |
| sms_config.template_custom_config.custom_content | String | Required | Contenido de la plantilla personalizada. Para el tipo authentication, debe incluir la variable {{code}} |
| sms_config.template_custom_config.custom_country_codes | String | Optional | Códigos de país o región de destino, separados por comas, usados como referencia durante la revisión de la plantilla |
| voice_config | Object | Conditionally required | Configuración para la estrategia de voz. Es obligatoria cuando la estrategia de entrega incluye voice |
| voice_config.template_type | Integer | Required | Tipo de plantilla de voz. Actualmente, solo se admite la plantilla predeterminada, por lo que el valor es fijo: 1 |
| voice_config.template_default_config | Object | Conditionally required | Configuración de la plantilla predeterminada de voz. Es obligatoria cuando el tipo de plantilla de voz es la plantilla predeterminada |
| email_config | Object | Conditionally required | Configuración para la estrategia de email. Es obligatoria cuando la estrategia de entrega incluye email |
| email_config.template_name | String | Required | Nombre de la plantilla de email |
| email_config.template_custom_configs | Array | Conditionally required | Configuraciones de plantillas de email personalizadas. Son obligatorias cuando el tipo de plantilla de email es una plantilla personalizada. Admite configuración multilingüe |
| email_config.template_custom_configs.language | String | Required | Idioma, donde default es el idioma predeterminado. Se puede asociar un contenido de plantilla distinto según el parámetro de idioma durante la entrega del mensaje |
| email_config.template_custom_configs.pre_from_name | String | Optional | Nombre predefinido del remitente |
| email_config.template_custom_configs.pre_from_mail | String | Required | Correo electrónico predefinido del remitente |
| email_config.template_custom_configs.pre_subject | String | Required | Asunto predefinido del email |
| email_config.template_custom_configs.template_content | String | Required | Contenido del email. Admite HTML. Las variables deben ir entre {{}} |
| email_config.template_custom_configs.pre_param_map | Object | Optional | Valores predeterminados para las variables del contenido del email, declarados mediante pares clave-valor. Los valores deben ser cadenas |
| pwa_config | Object | Optional | Configuración relacionada con la PWA. Actualmente es opcional |
| pwa_config.pwa_platform | String | Optional | Plataforma PWA utilizada. Ponte en contacto con el soporte técnico para conocer el valor específico |
| pwa_config.pwa_code | String | Optional | Código utilizado dentro de la plataforma PWA |
Parámetros de respuesta
| Field | Type | Option | Description |
|---|---|---|---|
| code | Integer | Required | Código de error. 0 indica éxito; otros valores indican fallo |
| message | String | Required | Mensaje de respuesta |
Respuesta correcta
{
"code": 0,
"message": "success"
}
Respuesta fallida
{
"code": 3003,
"message": "not contains any channel config"
}
Códigos de error
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Error interno |
| 2001 | 401 | Error de autenticación; no se ha proporcionado el token correcto |
| 2002 | 401 | Error de 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 cuerpo de la solicitud es un JSON válido que cumple el formato de parámetros |
| 3002 | 400 | Parámetros de solicitud no válidos. Comprueba si los parámetros de la solicitud cumplen los requisitos |
| 3003 | 400 | Error de parámetro a nivel de negocio. Comprueba la descripción del campo message devuelto |
Eliminar plantilla
Endpoint
DELETE /v1/template-configs/{templateId}
Autenticación
Usa autenticación básica HTTP para autenticarte y añade Authorization a la cabecera HTTP:
Authorization: Basic ${base64_auth_string}
El algoritmo para generar base64_auth_string es: base64(dev_key:dev_secret)
Ejemplo de solicitud
Cabecera de la solicitud
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de la solicitud
Ninguno
Parámetros de la solicitud
{templateId} en la URL indica el ID de la plantilla que se va a eliminar, definido por quien llama al usar la API Crear plantilla.
Parámetros de respuesta
| Field | Type | Option | Description |
|---|---|---|---|
| code | Integer | Required | Código de error. 0 indica éxito; otros valores indican fallo |
| message | String | Required | Mensaje de respuesta |
Respuesta correcta
{
"code": 0,
"message": "success"
}
Respuesta fallida
{
"code": 4001,
"message": "config not exist"
}
Códigos de error
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Error interno |
| 2001 | 401 | Error de autenticación; no se ha proporcionado el token correcto |
| 2002 | 401 | Error de 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 cuerpo de la solicitud es un JSON válido que cumple el formato de parámetros |
| 3002 | 400 | Parámetros de solicitud no válidos. Comprueba si los parámetros de la solicitud cumplen los requisitos |
| 4001 | 400 | La plantilla no existe |
Obtener la lista completa de plantillas
Esta API actualmente no admite paginación. Devuelve una lista resumida de todas las plantillas y excluye principalmente el contenido específico. Si necesitas contenido detallado, usa la API de detalles.
Endpoint
GET /v1/template-configs
Autenticación
Usa autenticación básica HTTP para autenticarte y añade Authorization a la cabecera HTTP:
Authorization: Basic ${base64_auth_string}
El algoritmo para generar base64_auth_string es: base64(dev_key:dev_secret)
Ejemplo de solicitud
Cabecera de la solicitud
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de la solicitud
Ninguno
Parámetros de la solicitud
Ninguno
Respuesta correcta
[{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "email模板名称"
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}]
Respuesta fallida
{
"code": 4001,
"message": "config not exist"
}
Códigos de error
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Error interno |
| 2001 | 401 | Error de autenticación; no se ha proporcionado el token correcto |
| 2002 | 401 | Error de autenticación; el token ha caducado o ha sido deshabilitado |
| 2004 | 403 | No tienes permiso para llamar a esta API |
| 4001 | 400 | La plantilla no existe |
Obtener detalles de la plantilla
Endpoint
GET /v1/template-configs/{templateId}
Autenticación
Usa autenticación básica HTTP para autenticarte y añade Authorization a la cabecera HTTP:
Authorization: Basic ${base64_auth_string}
El algoritmo para generar base64_auth_string es: base64(dev_key:dev_secret)
Ejemplo de solicitud
Cabecera de la solicitud
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de la solicitud
Ninguno
Parámetros de la solicitud
{templateId} en la URL indica el ID de la plantilla que se va a recuperar, definido por quien llama al usar la API Crear plantilla.
Respuesta correcta
{
"template_id": "test-template-1",
"description": "测试模版1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "品牌名称",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1,
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx"
}
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "email模板名称",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "预设邮件模版内容,必填,自定义变量如{{self}},验证码是{{code}}",
"pre_param_map": {
"self": "这里是self变量预设值"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}
Respuesta fallida
{
"code": 4001,
"message": "config not exist"
}
Códigos de error
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | Error interno |
| 2001 | 401 | Error de autenticación; no se ha proporcionado el token correcto |
| 2002 | 401 | Error de autenticación; el token ha caducado o ha sido deshabilitado |
| 2004 | 403 | No tienes permiso para llamar a esta API |
| 4001 | 400 | La plantilla no existe |










