Treli API
Docs
Soporte
  1. Eventos
  • Introducción
  • Autenticación
  • Errores
  • Códigos de rechazo
  • Suscripciones
    • Suscripción
    • Crear suscripción
      POST
    • Actualizar suscripción
      POST
    • Cancelar suscripción
      POST
    • Obtener suscripción
      GET
    • Eliminar descuento
      DELETE
    • Pausar suscripción
      POST
    • Reanudar suscripción
      POST
    • Listar suscripciones
      GET
  • Items de suscripción
    • Obtener item de suscripción
      GET
    • Eliminar item de suscripción
      DELETE
    • Actualizar item de suscripción
      POST
    • Crear item de suscripción
      POST
  • Clientes
    • Cliente
    • Crear cliente
      POST
    • Actualizar cliente
      POST
    • Obtener cliente
      GET
    • Listar clientes
      GET
    • Registrar pago de facturas
      POST
  • Cobros
    • Cobro
    • Crear cobro
    • Registrar cobro parcial
    • Enviar notificación de cobro
    • Anular cobro
    • Marcar como incobrable
    • Pagar un cobro
    • Obtener un cobro
    • Listar cobros
    • Modificar total del cobro
    • Modificar items del cobro
    • Modificar descuentos del cobro
    • Eliminar descuento
  • Facturas
    • Cargar factura
    • Obtener factura
    • Listar facturas
    • Anular factura
    • Pagar una factura
  • Notas de crédito
    • Nota de crédito
    • Crear nota de crédito
    • Anular nota de crédito
    • Obtener nota de crédito
  • Productos
    • Crear producto
    • Actualizar producto
    • Obtener un producto
    • Listar productos
    • Eliminar producto
  • Precios
    • Crear precio
    • Actualizar precio
    • Obtener un precio
    • Listar precios
    • Eliminar precio
  • Enlaces de pago
    • Crear enlace de pago
  • Sesión de checkout
    • Sesión de checkout
    • Crear sesión de checkout
    • Obtener sesión de checkout
  • Cupones
    • Cupón
    • Crear cupón
    • Obtener un cupón
    • Eliminar un cupón
    • Actualizar cupón
    • Listar cupones
  • Pagos de facturas
    • Pago de facturas
    • Listar pagos de facturas
  • Eventos
    • Evento
    • Tipos de eventos
    • Webhooks
  • Catálogo de parámetros por país
    • Colombia
  1. Eventos

Webhooks

Recibe eventos en tu cuenta de Treli en tu punto de conexión webhook para que la integración pueda activar reacciones automáticamente.#

Crea un destino de evento para recibir notificaciones en un punto de conexión de webhook HTTPS. Una vez registrado el webhook, Treli enviará datos en tiempo real a tu aplicación cada vez que ocurra un evento en tu cuenta. Estos eventos se transmiten mediante HTTPS como una carga JSON que incluye un objeto de Evento.
Recibir webhooks te permite reaccionar ante eventos asincrónicos, como un pago fallido, la cancelación de una suscripción o la confirmación de un cobro recurrente exitoso.
Puedes crear un destino de evento para esuchar cualquiera de los eventos listados en Tipos de eventos

Como obtener la firma secreta de tu punto de conexión#

Ingresa a la sección Desarrolladores > Webhooks. Selecciona el punto de conexión del cual deseas obtener el secreto y haz clic en Revelar firma secreta.

Protege tu punto de conexión#

Debes proteger tu integración verificando que todas las solicitudes de webhook provengan realmente de Treli. Para ello, tu controlador debe validar la firma incluida en cada evento.
Cada webhook firmado incluye el encabezado x-treli-signature que contiene una marca de tiempo y una firma. La marca de tiempo aparece con el prefijo t=, mientras que la firma utiliza el prefijo v1=. Ambas deben ser verificadas antes de procesar el evento.
x-treli-signature: t=1764177654,v1=82d0f8e5c699e8d93589d2210fc74dbc1da553cfbafb7a3498fb1689d3f4d443
Treli genera firmas usando un código de autenticación de mensajes basado en hash (HMAC) con SHA-256. Para hacer la verificación. Para verificar la firma, debes completar los siguientes pasos:

Paso 1: extrae la marca de tiempo y las firmas del encabezado#

Divide el encabezado con el carácter , como separador para obtener una lista de elementos. Luego, divide cada elemento con el carácter = como separador para obtener un par de prefijo y valor.
El valor del prefijo t corresponde a la marca de tiempo, mientras que v1 corresponde a la firma.

Paso 2: prepara la cadena signed_payload#

La cadena signed_payload se crea concatenando:
La marca de tiempo (como cadena)
El carácter .
La carga JSON real (es decir, el cuerpo de la solicitud)

Paso 3: determina la firma esperada#

Calcula un HMAC con la función hash SHA256. Usa el secreto de la firma del punto de conexión como la clave, y la cadena signed_payload como el mensaje.

Paso 3: compara las firmas#

Compara la firma en el encabezado con la firma esperada. Para una correspondencia de igualdad, calcula la diferencia entre la marca de tiempo actual y la recibida, y luego decide si la diferencia está dentro de tu tolerancia.
Para protegerte contra ataques de sincronización, usa una comparación de cadenas de tiempo constante para comparar la firma esperada con la firma recibida.

Cómo prevenir ataques de reproducción#

Un ataque de reproducción se produce cuando un atacante intercepta una carga válida y su firma, y luego la vuelve a transmitir. Para mitigar estos ataques, Treli incluye una marca de tiempo en el encabezado x-treli-signature. Dado que esta marca de tiempo forma parte de la carga firmada, también se verifica mediante la firma, por lo que un atacante no puede cambiar la marca de tiempo sin invalidar la firma. Si la firma es válida, pero la marca de tiempo es demasiado antigua, puedes hacer que tu aplicación rechace la carga.
Treli genera la marca de tiempo y la firma cada vez que enviamos un evento a tu punto de conexión. Si Treli reintenta un evento, se generan una firma y una marca de tiempo nuevas para el nuevo intento de entrega.
Previous
Tipos de eventos
Next
Colombia
Built with