Crear
Crea un grupo de mensajes de cobranza con sus clientes y mensajes.
Descripción general
Este endpoint crea un grupo de mensajes de cobranza. El único campo obligatorio es name; en la misma solicitud puedes definir a qué clientes aplica y sus mensajes. Una solicitud exitosa devuelve 201 con el grupo creado.
Un grupo nuevo siempre se crea inactivo (active: false), aunque incluya mensajes. Para activarlo usa Activar grupo de mensajes. created_by queda con el nombre de la API key.
Si envías include_all_customers, customer_ids, excluded_customer_ids o messages, el grupo se valida con las mismas reglas que en la aplicación antes de guardarse. Si solo envías name, el nombre se guarda tal cual.
Requiere el permiso Crear en Grupos de mensajes.
Endpoint
https://app.credonix.mx/api/v1/message-groupsCrea un grupo con un mensaje
Un correo que se envía 3 días antes de la fecha de vencimiento. type se omite y toma el valor plain.
{
"name": "Recordatorios estándar",
"messages": [
{
"timing": "before_due_date",
"channel": "email",
"days_before": 3,
"email_subject": "Recordatorio de pago",
"message": "Tu orden de cobro vence pronto."
}
]
}Mensaje que no cumple las reglas
Si un mensaje no cumple las reglas, la API responde 400 con el código INVALID_MESSAGE_GROUP y no crea el grupo. message trae el primer error y errors los trae todos; field indica el mensaje con su posición, empezando en messages[0].
Reglas de los campos
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
name | string | Sí | Mínimo 1 carácter. Cuando se valida el contenido del grupo, se recortan los espacios y admite máximo 50 caracteres. |
include_all_customers | boolean | No | Por defecto false. |
customer_ids | string[] | No | Por defecto []. Clientes de tu organización. Si un id también viene en excluded_customer_ids, se quita de esta lista. |
excluded_customer_ids | string[] | No | Por defecto []. Clientes de tu organización. |
messages | array | No | Por defecto []. Ver abajo. |
Mensajes
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
timing | string | Sí | before_due_date, before_issue_date, after_issued, after_overdue, after_paid, after_canceled, after_payment_received, after_emitted_sat o recurring. |
channel | string | Sí | whatsapp, sms o email. |
type | string | No | Solo acepta plain. Por defecto plain. |
days_before | integer | null | Depende | 1, 3, 7, 15 o 30. Obligatorio para before_due_date y before_issue_date; no se permite con los demás disparadores. |
recurring_every_days | integer | null | Depende | 15, 30 o 60. Obligatorio para recurring; no se permite con los demás disparadores. |
email_subject | string | null | Depende | Obligatorio en email, máximo 60 caracteres. En sms y whatsapp se guarda en null. |
message | string | null | Depende | Contenido en HTML. Obligatorio en sms y email: máximo 250 caracteres de texto en SMS y 1000 en correo. En whatsapp se guarda en null, porque WhatsApp usa plantillas. |
Al guardar, se quitan los párrafos vacíos al inicio y al final del contenido, y se dejan máximo 2 párrafos vacíos seguidos.
Mensajes repetidos
- Solo se permite un mensaje
recurringpor canal. - Con
before_due_dateybefore_issue_date, solo se permite un mensaje por disparador, canal ydays_before. - Con los demás disparadores, solo se permite un mensaje por disparador y canal.
Variables
Puedes usar variables con el formato {{variable}} en email_subject y message. La API rechaza las variables que no existen o que no están disponibles para el canal o el disparador del mensaje.
| Variable | Canales | Disparadores |
|---|---|---|
nombre_cliente, nombre_contacto, email_cliente, telefono_cliente, concepto_cobro, fecha_emision, fecha_vencimiento, monto_total, monto_pendiente, moneda, dias_antes_emision, dias_antes_vencimiento, dias_vencido, dias_para_vencer, nombre_emisora | Todos | Todos |
numero_cobro | Todos | Todos, excepto before_issue_date |
pago_total, pago_fecha, pago_metodo | Todos | after_paid y after_payment_received |
pdf_factura_cfdi, xml_factura_cfdi, estado_cuenta | email | Todos |
complemento_pago_pdf, complemento_pago_xml | email | after_paid y after_payment_received |
recibo_liquidacion | email | after_paid |
recibo_pago | email | after_payment_received |
Errores
| Status | Código | Causa |
|---|---|---|
400 | VALIDATION_ERROR | Falta name, un campo tiene un valor o tipo incorrecto, o el cuerpo incluye campos desconocidos. |
400 | INVALID_MESSAGE_GROUP | El nombre o un mensaje no cumple las reglas: nombre vacío o de más de 50 caracteres, mensaje repetido, contenido o asunto faltante o demasiado largo, variable no disponible, o days_before / recurring_every_days faltante o no permitido. |
400 | CUSTOMER_NOT_FOUND | Un id de customer_ids o excluded_customer_ids no corresponde a un cliente de tu organización. |
401 | MISSING_API_KEY, INVALID_API_KEY, API_KEY_REVOKED | API key ausente, inválida o revocada. |
403 | INSUFFICIENT_PERMISSIONS | La API key no tiene el permiso Crear en Grupos de mensajes. |
500 | INTERNAL_ERROR | Solo se envió name y tiene más de 50 caracteres. |