Seguimiento de envíos mediante Webhooks: cómo funcionan los Webhooks de seguimiento frente al sondeo (cargas útiles, reintentos y configuración)
Los webhooks de seguimiento de envíos envían una solicitud HTTP a tu aplicación cuando un servicio de seguimiento tiene una actualización que informar. El sondeo funciona en la dirección opuesta: tu aplicación solicita repetidamente la información de seguimiento más reciente. Para los desarrolladores que conectan datos de envíos con un sistema de gestión de pedidos, una tienda o un servicio de notificaciones al cliente, los webhooks suelen ser el mejor mecanismo principal de actualización cuando están disponibles; el sondeo dirigido puede ayudar a recuperar actualizaciones perdidas y conciliar registros.

Ninguno de los dos métodos hace que un transportista escanee un paquete antes. Ambos dependen del momento en que la fuente de seguimiento recibe y expone nueva información. La diferencia práctica es cómo tu aplicación recibe esa información, cuánto tráfico de solicitudes genera y qué ocurre cuando la entrega falla.
Webhooks de seguimiento frente a sondeo: la diferencia operativa
Estos son patrones de integración, no bases de datos de seguimiento que compiten entre sí. Un transportista o una plataforma de seguimiento puede ofrecer uno de estos patrones o ambos, con distintas condiciones de acceso. Compara el comportamiento de la API específica que planeas utilizar en lugar de asumir que todos los servicios de webhook ofrecen las mismas garantías.
| Punto de decisión | Webhooks | Sondeo |
|---|---|---|
| ¿Quién inicia la solicitud? | El servicio de seguimiento llama a tu endpoint. | Tu aplicación llama a la API de seguimiento. |
| Retraso de actualización | Depende de la actualidad de la fuente, la generación del evento, la entrega y el procesamiento. | También depende de cuándo se ejecute tu próxima solicitud programada. |
| Volumen de solicitudes | Está determinado por las actualizaciones emitidas, la agrupación y los reintentos de entrega. | Está determinado por el volumen de envíos, la frecuencia de sondeo y la agrupación. |
| Infraestructura | Requiere un receptor accesible y una gestión segura de las solicitudes entrantes. | Requiere un programador, acceso saliente a la API y gestión de límites de frecuencia. |
| Recuperación ante fallos | Depende de los reintentos del proveedor y de tu propio proceso de conciliación. | Depende de las solicitudes posteriores y de si la API conserva el historial necesario. |
Elige primero los webhooks cuando las actualizaciones oportunas sean importantes y tu equipo pueda operar un receptor fiable. Elige primero el sondeo cuando los endpoints entrantes no sean prácticos, el volumen de envíos sea moderado o la fuente no proporcione webhooks adecuados. Utiliza un diseño híbrido cuando las actualizaciones perdidas puedan interrumpir las comunicaciones con los clientes o las operaciones y la API admita la conciliación.
No des por sentado que los webhooks son más baratos. Las tarifas de suscripción, el registro de seguimientos, las llamadas a la API, la entrega de eventos y la infraestructura pueden facturarse de manera diferente. Compara las condiciones comerciales reales y la carga de trabajo prevista en lugar de considerar que menos solicitudes implican necesariamente una factura menor.
¿Qué ocurre entre el escaneo del transportista y tu aplicación?
- Identifica el envío. Asocia el número de seguimiento, la información del transportista cuando sea necesario y una referencia interna del envío. Algunos servicios requieren registrarse antes de iniciar la supervisión.
- Configura la entrega de eventos. Proporciona una URL de devolución de llamada HTTPS y selecciona las suscripciones a eventos disponibles.
- La fuente recibe la información de seguimiento. Un escaneo del transportista o un cambio de estado pasa a estar disponible para el servicio de seguimiento.
- El servicio envía un webhook. La solicitud puede contener una instantánea completa del seguimiento, un único punto de control o solo una referencia que requiera una consulta a la API.
- Tu receptor lo valida y almacena. Autentica la solicitud, comprueba su estructura y registra de forma duradera el evento o lo coloca en una cola.
- Un trabajador actualiza los sistemas empresariales. Normaliza los estados, actualiza los registros de envío y activa únicamente las acciones que sigan siendo apropiadas.
La entrega de un webhook no es lo mismo que la entrega física. Es un mensaje sobre la información del envío. Del mismo modo, una respuesta correcta del webhook no demuestra que se haya enviado un correo electrónico ni que se haya actualizado un registro de pedido; esos son resultados del procesamiento posterior que requieren su propia supervisión.
Cómo leer la carga útil de un webhook de seguimiento
El siguiente JSON es un diseño ilustrativo de integración, no una carga útil de 17TRACK ni un esquema universal. Los nombres de los campos, códigos de estado, formatos de fecha y hora e identificadores de eventos reales deben proceder de la documentación del proveedor seleccionado.
{
"event_id": "evt_example_001",
"event_type": "shipment.updated",
"created_at": "2025-04-08T10:16:00Z",
"shipment": {
"reference": "shipment_example_123",
"tracking_number": "EXAMPLE123456",
"carrier_code": "example_carrier",
"status": "in_transit",
"checkpoint": {
"occurred_at": "2025-04-08T10:10:00Z",
"description": "Departed processing facility"
}
}
}Separa tres relojes en tu modelo de datos: cuándo ocurrió el evento del envío, cuándo generó el proveedor el mensaje y cuándo lo recibió tu aplicación. Un punto de control retrasado puede llegar después de uno más reciente. Una marca de tiempo sin desplazamiento también requiere una interpretación explícita; no trates silenciosamente todas las marcas de tiempo locales del transportista como UTC.
Conserva tu referencia interna del envío junto con los identificadores del proveedor. Un número de seguimiento por sí solo puede no ser suficiente como identificador global permanente, especialmente entre distintos contextos de transportistas. Para pedidos divididos, mantén registros a nivel de envío en lugar de permitir que el estado entregado de un paquete marque todo el pedido como completado.
Conserva el estado y la descripción originales junto con tu estado empresarial normalizado. Tu aplicación puede asignar varios mensajes del transportista a “en tránsito”, pero el personal de soporte aún puede necesitar el punto de control original para comprender un retraso. Trata las fechas de entrega estimadas como estimaciones y distingue entre un campo ausente y una instrucción explícita para borrar un valor existente.
Reintentos, confirmaciones y eventos duplicados
La entrega de webhooks puede fallar debido a tiempos de espera agotados, interrupciones de red, errores de autenticación o un receptor no disponible. Un proveedor puede reintentar, pero no existe un calendario universal de reintentos, una ventana de retención ni un número máximo de intentos. Confirma qué respuestas activan otro intento, cómo se gestionan las redirecciones y si está disponible la reentrega manual.
Confirma después de aceptar de forma duradera
Mantén breve la ruta de solicitud: valida la solicitud, persiste el trabajo aceptado y devuelve la respuesta correcta requerida por el proveedor. Envía correos electrónicos y realiza las operaciones empresariales más lentas de forma asíncrona. La especificación HTTP define 202 Accepted como aceptación para procesamiento, no como procesamiento completado, pero tu proveedor puede requerir una respuesta correcta diferente. Sigue el contrato de webhook del proveedor.
Devolver una respuesta correcta antes de almacenar nada puede provocar la pérdida de la actualización si el proceso se bloquea. Esperar a que finalicen todas las acciones posteriores puede causar un tiempo de espera agotado y otro intento de entrega. Una bandeja de entrada o cola duradera proporciona un límite entre la recepción y el procesamiento.
Haz que el procesamiento sea idempotente
La idempotencia significa que procesar de nuevo el mismo evento no repite sus efectos empresariales. Un emisor puede reintentar después de que tu servidor haya aceptado un evento pero se haya perdido su confirmación. Por ello, la entrega duplicada debe ser un caso de prueba habitual.
- Utiliza un identificador de evento documentado como clave de deduplicación cuando esté disponible, dentro del ámbito del proveedor o la cuenta correctos.
- Si no existe ningún identificador, diseña una clave compuesta a partir de campos de evento estables y prueba sus riesgos de colisión.
- Impón la unicidad de forma atómica en el almacenamiento; una secuencia independiente de “comprobar y luego insertar” puede sufrir condiciones de carrera durante una entrega simultánea.
- Protege también las acciones posteriores. Un evento duplicado no debe enviar otra notificación de entrega ni repetir una acción financiera.
- Establece la retención según el comportamiento de reproducción del proveedor y tus requisitos de recuperación, en lugar de eliminar inmediatamente los registros de deduplicación.
No supongas que la llegada es cronológica
No sobrescribas el estado actual del envío simplemente porque una solicitud haya llegado en último lugar. Compara el significado del evento, las marcas de tiempo y cualquier información de secuencia documentada. Conserva los puntos de control tardíos en el historial sin hacer retroceder automáticamente el estado mostrado. Al mismo tiempo, permite las correcciones documentadas: una regla rígida según la cual los envíos entregados nunca pueden cambiar puede ocultar excepciones legítimas o información corregida.
Lista de comprobación práctica de configuración
1. Confirma el contrato del proveedor
Antes de la implementación, confirma los requisitos de registro, los eventos compatibles, la estructura de la carga útil, la autenticación, las expectativas de respuesta, los tiempos de espera, el comportamiento de los reintentos y los límites de la API. Comprueba si una notificación representa una instantánea o un cambio incremental, si las entregas pueden contener varios registros y si la suscripción envía un estado inicial.
Para una integración con 17TRACK, comienza por la página oficial de Tracking API y la documentación de API. Utiliza la documentación específica del proveedor para establecer los campos de solicitud y los requisitos de devolución de llamada; la carga útil genérica anterior no la sustituye. Confirma las condiciones de acceso y los límites operativos de la integración que pretendes implementar.
2. Protege el endpoint receptor
Utiliza HTTPS y el mecanismo de autenticación documentado por el proveedor. Si utiliza una firma HMAC, valida exactamente la entrada firmada que especifica. Cuando se firman los bytes sin procesar de la solicitud, analizar y volver a serializar el JSON antes de la verificación puede cambiar esos bytes e invalidar la firma. Utiliza una comparación en tiempo constante para los valores de firma derivados de secretos.
Si hay marcas de tiempo o identificadores de entrega firmados disponibles, aplica los controles de repetición documentados. Una firma válida autentica un mensaje, pero por sí sola no demuestra que sea reciente. Mantén los secretos fuera de las URL y de los registros de la aplicación, admite la rotación de secretos y restringe el tamaño de las solicitudes. La lista de permitidos de IP puede ser un control adicional cuando existan rangos de direcciones mantenidos, pero no sustituye la autenticación del mensaje.
3. Separa la recepción del procesamiento empresarial
Almacena suficiente información para rastrear y reproducir de forma segura un evento aceptado. Los trabajadores de la cola deben normalizar la actualización, aplicar las reglas de transición de estado y registrar los resultados de las acciones. Coloca los trabajos que fallan repetidamente en un flujo de trabajo de cola de mensajes no entregados que pueda revisarse, en lugar de reintentarlos indefinidamente. Limita el acceso y la retención porque las cargas útiles de seguimiento pueden contener información relacionada con los clientes.
4. Prueba las rutas de fallo antes del lanzamiento
- Envía el mismo evento dos veces, incluidas entregas simultáneas.
- Entrega un punto de control antiguo después de uno más reciente.
- Simula una interrupción de la cola y un bloqueo del trabajador después de la recepción.
- Prueba una autenticación no válida, JSON mal formado y solicitudes demasiado grandes.
- Prueba envíos desconocidos, campos opcionales ausentes y campos añadidos.
- Verifica que un paquete entregado no complete un pedido dividido.
- Reproduce un evento después de la recuperación y confirma que las notificaciones siguen deduplicadas.
Sé tolerante con los campos adicionales cuando sea seguro, pero no reinterpretes silenciosamente valores de estado desconocidos. Conserva el valor sin procesar y dirige los casos no reconocidos mediante un proceso de reserva o revisión definido.
Cuándo el sondeo sigue siendo útil
El sondeo es útil para la sincronización inicial, la recuperación después de una interrupción y la comprobación de envíos cuyas actualizaciones esperadas no han llegado. Sin embargo, el silencio por sí solo no demuestra un fallo del webhook: un paquete puede no tener realmente nuevos escaneos. Concilia con el estado o el historial actuales de la API en lugar de asumir que todo envío silencioso necesita una alerta.
Para planificar la escala, un modelo de sondeo simplificado es requests per hour ≈ active shipments × polls per shipment per hour, suponiendo un envío por solicitud. Los endpoints por lotes cambian ese cálculo. Como ejemplo, 1.000 envíos comprobados cuatro veces por hora generan 4.000 solicitudes por hora antes de los reintentos; esto es aritmética, no una cuota del proveedor ni una estimación de precios.
Programa las comprobaciones según la actividad de los envíos y el riesgo empresarial, respeta los límites de frecuencia y añade variación aleatoria para que los trabajos no comiencen todos a la vez. Para los fallos reintentables, utiliza un retroceso limitado y respeta las indicaciones aplicables del servidor. No reintentes repetidamente errores permanentes de credenciales o validación sin corregirlos.
Un sistema híbrido práctico utiliza webhooks para las actualizaciones rutinarias y lecturas dirigidas de la API para las posibles brechas. Supervisa por separado los fallos de recepción, la antigüedad de la cola, los fallos de procesamiento, las tasas de duplicados y las discrepancias de conciliación. Cuando las marcas de tiempo sean fiables, distingue el retraso de los datos de origen del retraso de entrega del webhook y del retraso del procesamiento interno.
Preguntas frecuentes
¿Los webhooks de seguimiento son en tiempo real?
Pueden reducir el retraso causado por esperar al siguiente ciclo de sondeo. No garantizan escaneos inmediatos del transportista ni actualizaciones instantáneas de la fuente. La actualidad de extremo a extremo incluye los informes del transportista, el procesamiento del proveedor, la entrega de la solicitud y tu propia aplicación.
¿Puedo dejar de hacer sondeos por completo después de activar los webhooks?
Es posible, si las funciones de recuperación del proveedor y tus requisitos empresariales lo hacen aceptable. Para los registros de envíos importantes desde el punto de vista operativo, conserva un método de conciliación. Puede ser dirigido en lugar de un sondeo continuo de todos los envíos.
¿Qué ocurre si mi endpoint de webhook está desconectado?
La recuperación depende de la política de reintentos documentada por el emisor. No supongas que los reintentos continúan indefinidamente. Después de restaurar el endpoint, inspecciona las entregas fallidas, utiliza las herramientas de reentrega disponibles y concilia los envíos afectados mediante la API cuando sea posible.
¿Cada webhook debe activar una notificación al cliente?
No. Un evento puede ser un duplicado, un punto de control histórico o una actualización que no cambie el estado visible para el cliente. Activa las notificaciones a partir de transiciones empresariales deduplicadas, con reglas para excepciones y correcciones.
¿Una respuesta HTTP correcta significa que la actualización del envío se ha completado?
No necesariamente. En un diseño asíncrono, significa que el receptor aceptó el evento conforme al contrato acordado. Supervisa por separado la finalización del procesamiento y los resultados de las notificaciones posteriores para que una solicitud aceptada no oculte un flujo de trabajo fallido.
Fuentes
- RFC 9110: Semántica HTTP — semántica de las respuestas HTTP, incluida la aceptación para procesamiento y Retry-After.
- RFC 2104: HMAC—Hashing con clave para la autenticación de mensajes — la construcción HMAC mencionada en las directrices de verificación de firmas.
- GitHub Docs: Prácticas recomendadas para utilizar webhooks — directrices generales de ingeniería sobre HTTPS, secretos, gestión asíncrona e identificación de entregas; sus reglas específicas del servicio no establecen el comportamiento de los proveedores de envíos.
- 17TRACK Tracking API — punto de entrada oficial para evaluar una integración de seguimiento de 17TRACK.
- Documentación de la API de 17TRACK — referencia específica del proveedor para los requisitos de implementación.


