Saltar al contenido principal
Un endpoint de webhook es una dirección a la que StockShift envía eventos. Agrega uno en la app, en Configuración > Webhooks, o con las operaciones de endpoints de webhook de la API.

Agrega un endpoint

  1. Presiona Nuevo endpoint.
  2. Ingresa la URL. Debe ser HTTPS y accesible desde internet. Las direcciones privadas y locales se rechazan.
  3. Marca los eventos que quieres. La lista de eventos tiene el cuerpo de cada uno.
  4. Presiona Agregar endpoint.
  5. Copia el secreto de firma que aparece. Se muestra una sola vez. Rotar secreto genera uno nuevo.
Enviar ping de prueba envía un evento webhook.ping de inmediato para que puedas revisar tu endpoint.

Qué recibe tu endpoint

Cada evento es un POST con un cuerpo JSON:
Responde con cualquier 2xx en menos de 10 segundos. StockShift no sigue redirecciones. Un evento puede llegar más de una vez y fuera de orden. Los reintentos conservan el mismo id, así que guárdalo y omite los eventos que ya procesaste.

Revisa la firma

Revisa el encabezado StockShift-Signature antes de confiar en el cuerpo. Tiene el formato t=1760000000,v1=5257a8...:
  • t es la hora Unix en que se envió el evento.
  • v1 es el HMAC-SHA256 de <t>.<raw body> con el secreto de firma del endpoint, en hexadecimal.
Calcula el mismo HMAC sobre el cuerpo sin procesar, exactamente como llegó, compáralo en tiempo constante y rechaza todo lo que tenga un t de más de cinco minutos de antigüedad. Cada SDK tiene una función auxiliar que hace todo esto:
En una app de Laravel, el paquete de Laravel agrega una ruta que revisa la firma y dispara un evento de Laravel por cada entrega.

Reintentos

Una entrega que recibe cualquier respuesta distinta de 2xx se vuelve a intentar después de 1, 5, 30, 120, 360 y 720 minutos. Si sigue fallando, o si pasan 24 horas, la entrega se marca como fallida, el endpoint se desactiva y los propietarios de la organización reciben un correo electrónico. Los eventos que ocurren mientras un endpoint está desactivado no se envían después. La tarjeta Entregas de un endpoint muestra sus 50 entregas más recientes con su estado, código de respuesta, duración e intentos. Reintentar vuelve a enviar una entrega fallida una vez más. Las entregas se conservan durante 30 días. Para pausar un endpoint, desmarca Activado y presiona Guardar endpoint.