Skip to main content
InicioBlogGuíasEstado de entrega de la API de envíos: códigos de estado, webhooks y alertas de excepciones

Estado de entrega de la API de envíos: códigos de estado, webhooks y alertas de excepciones

17TRACK

El estado de entrega de una API de envíos describe el progreso de un paquete, no si una solicitud de API tuvo éxito. Para crear un seguimiento fiable, mantén separados los códigos de respuesta HTTP de los estados del envío, procesa los webhooks sin suponer que llegan una sola vez o en orden, y convierte las excepciones accionables en alertas con responsables claros. Para los equipos de ingeniería y operaciones de comercio electrónico, el objetivo es contar con un registro del envío que siga siendo fiable cuando las actualizaciones del transportista se retrasen, se dupliquen o se corrijan.

Códigos de estado de entrega de la API de envíos, webhooks y alertas de excepciones

Esta guía explica cómo estructurar ese registro, gestionar los eventos de seguimiento entrantes y distinguir un problema de entrega de un problema de integración del seguimiento.

Separa los códigos HTTP, los resultados de la API y los estados del envío

La expresión «código de estado» puede referirse a tres capas diferentes. Mezclarlas crea paneles engañosos y notificaciones innecesarias para los clientes.

CapaQué indicaInterpretación de ejemplo
Respuesta HTTPEl resultado de la solicitud HTTPUna respuesta 200 indica éxito a nivel HTTP; no significa que el paquete haya sido entregado.
Resultado empresarial de la APISi la operación solicitada tuvo éxito según las reglas de aplicación del proveedorEl cuerpo de la respuesta puede indicar que se rechazó el registro de seguimiento, incluso dentro de una respuesta HTTP exitosa si la API utiliza ese diseño.
Estado del envíoEl estado físico u operativo informado del paqueteEn tránsito, a la espera de recogida o entregado.

El estándar de semántica HTTP define el significado de las respuestas HTTP. Por ejemplo, 202 Accepted significa que una solicitud fue aceptada para su procesamiento, pero que el procesamiento no necesariamente ha terminado. No demuestra que un transportista haya aceptado un paquete.

Del mismo modo, una solicitud de seguimiento fallida no demuestra que un envío haya dejado de moverse. Tu aplicación puede perder temporalmente la visibilidad mientras la entrega física continúa con normalidad. Supervisa estas capas de forma independiente.

Crea un modelo de estados sin descartar los detalles del transportista

No existe un código numérico universal de estado de entrega compartido por todas las API de envíos y todos los transportistas. Un valor de una integración no debe interpretarse utilizando el mapeo de otro proveedor. Utiliza la documentación de la versión específica de la API que implementes.

Un modelo interno práctico combina un pequeño conjunto de estados normalizados con el evento original del transportista. La normalización permite elaborar informes coherentes; el evento original conserva los detalles necesarios para la investigación.

Estado interno ilustrativoSignificadoPrecaución operativa
Información recibidaExiste información electrónica del envío.No consideres la creación de la etiqueta como una entrega física confirmada.
En tránsitoEl registro de seguimiento indica movimiento a través de la red de entrega.Esta categoría amplia puede incluir distintas etapas del transporte.
En repartoSe informa que el paquete está en una ruta de entrega.No conviertas esto en una garantía incondicional de entrega.
A la espera de recogidaSe espera que el destinatario recoja el paquete.Incluye instrucciones o plazos de recogida solo cuando la fuente los respalde.
EntregadoLa fuente de seguimiento informa de la entrega.Un escaneo de entrega, por sí solo, no resuelve la reclamación de un cliente que no ha recibido el paquete.
ExcepciónUn evento puede requerir atención o interrumpir el progreso normal.Conserva el motivo en lugar de considerar perdida cada excepción.
Devolución en curso o devueltoEl paquete está regresando o se ha informado de que la devolución se ha completado.Mantén el progreso de la devolución separado de la entrega al destinatario original.
DesconocidoLa información disponible no puede asignarse con confianza.Investiga el mapeo o la falta de datos en lugar de inventar un estado de entrega.

Estas etiquetas son un modelo de aplicación sugerido, no una lista oficial de códigos de 17TRACK. Conserva el código de estado del proveedor, el subestado, la descripción, la hora del evento, la información de zona horaria, la ubicación y la hora de recepción cuando estén disponibles. Conserva también la versión del mapeo para poder auditar cambios posteriores.

Para una implementación con varios transportistas, 17TRACK Tracking API es una opción de integración relevante. Utiliza su documentación oficial de la API para establecer el contrato de implementación, en lugar de copiar etiquetas ilustrativas en campos específicos del proveedor. Confirma las definiciones de estado aplicables, la configuración de webhooks, los requisitos de autenticación y la semántica de las respuestas antes de crear el adaptador.

Diseña la gestión de webhooks en torno a una recepción duradera

Un webhook es una solicitud HTTP enviada a tu endpoint para informar de un evento. Puede reducir la necesidad de realizar consultas repetidas, pero no debe considerarse una garantía de entrega inmediata, ordenada o exactamente una vez. Diseña el receptor para tolerar reintentos, interrupciones y cargas inesperadas, salvo que el proveedor garantice explícitamente lo contrario.

  1. Autentica la solicitud. Aplica el método de verificación documentado por el proveedor. Si se admiten firmas, valídalas utilizando el algoritmo especificado y los bytes sin procesar de la solicitud. No inventes un encabezado de firma ni supongas que todos los servicios utilizan HMAC.
  2. Valida la carga útil. Comprueba los campos obligatorios, los tipos, el tamaño de la carga útil y la asociación con un envío gestionado por tu cuenta. Gestiona los campos opcionales desconocidos sin romper innecesariamente la compatibilidad futura.
  3. Persiste antes de confirmar. Almacena el evento aceptado o colócalo en una cola duradera antes de enviar la respuesta de éxito documentada. Si falla la persistencia, no confirmes que el evento se ha recibido de forma segura.
  4. Procesa de forma asíncrona. Realiza el mapeo de estados, las actualizaciones de pedidos y las decisiones sobre notificaciones fuera del gestor de solicitudes cuando sea práctico.
  5. Haz que los efectos secundarios sean idempotentes. Un evento repetido no debe crear otro ticket de soporte ni enviar otra copia del mismo mensaje al cliente.

El código exacto de confirmación, el tiempo de espera, el calendario de reintentos y el comportamiento de reproducción dependen del proveedor. Comprueba explícitamente esos detalles. Una instrucción genérica de «devuelve 200» no sustituye al contrato del webhook.

Utiliza HTTPS y mantén las credenciales fuera de las URL y de los registros rutinarios. Aplica controles de acceso a las cargas útiles almacenadas porque los datos de seguimiento pueden contener información personal. El OWASP REST Security Cheat Sheet ofrece orientación relevante sobre la protección del transporte, la validación de entradas y la seguridad de los endpoints.

Deduplica los eventos sin suprimir actualizaciones reales

Da preferencia a un identificador de evento documentado y estable cuando esté disponible. De lo contrario, deriva una clave de deduplicación a partir de una combinación cuidadosamente seleccionada de la identidad del envío, la marca de tiempo del evento, el código del evento y la ubicación. Prueba este enfoque con cargas útiles reales: dos eventos legítimos pueden compartir una marca de tiempo, y el mismo evento puede llegar con un texto descriptivo ligeramente diferente.

Utiliza controles de deduplicación independientes para la ingesta de eventos y las acciones posteriores. Puede ser necesario volver a almacenar una actualización de estado como corrección, mientras que su notificación al cliente debe seguir suprimida. Asigna a cada notificación o acción de ticket su propia identidad duradera.

Mantén separadas la hora del evento y la hora de recepción

Supón que un evento «en tránsito» llega a tu sistema después de un evento «en reparto», pero su marca de tiempo del transportista es anterior. Almacénalo en el historial sin cambiar automáticamente el estado actual de nuevo a «en tránsito».

El orden de las marcas de tiempo por sí solo no es suficiente en todos los casos. Las zonas horarias faltantes, los escaneos corregidos y las fuentes contradictorias requieren reglas explícitas. Conserva la precisión y los desplazamientos de las marcas de tiempo, registra cuándo recibió tu sistema cada evento y utiliza la información de secuencia documentada por el proveedor cuando esté disponible. No impongas una escala de estados rígida y unidireccional: los intentos de entrega, las redirecciones, las devoluciones y las correcciones pueden crear transiciones legítimas que parezcan retroceder.

Convierte las excepciones en acciones con responsables

Una alerta de excepción debe explicar qué ocurrió, qué acción se necesita y quién es responsable del siguiente paso. Un mensaje genérico de «excepción del envío» obliga al personal de operaciones a repetir la misma investigación y puede alarmar a los clientes sin ayudarles.

Empieza con una política de asignación sencilla:

  • Problema de dirección o acceso: Asigna el caso a atención al cliente para verificar el problema y comprobar el proceso de corrección disponible del transportista. No prometas un cambio de dirección antes de confirmar que es posible.
  • Recogida necesaria: Notifica al destinatario cuando la fuente proporcione instrucciones de recogida utilizables. Conserva cualquier plazo verificado.
  • Acción aduanera necesaria: Asigna el caso según quién deba proporcionar los documentos o la información solicitados. Un evento relacionado con aduanas, por sí solo, no establece que deba realizarse un pago.
  • Intento de entrega fallido: Comprueba el siguiente paso informado antes de recomendar una nueva entrega o la recogida.
  • Devolución al remitente: Abre una revisión operativa. No emitas automáticamente un reembolso basándote únicamente en una etiqueta de seguimiento general, salvo que tu política lo autorice explícitamente.
  • Pérdida o daño informado por el transportista: Asigna el caso al responsable de reclamaciones y conserva las pruebas del evento. Mantén las decisiones sobre reclamaciones separadas de la detección general de retrasos.

Cada alerta debe incluir un identificador del envío, una referencia del pedido, el motivo del evento, la marca de tiempo de origen, el último estado conocido, el responsable asignado y la siguiente acción. Incluye un enlace al registro interno correspondiente en lugar de exponer detalles innecesarios del cliente en canales de mensajería compartidos.

Trata la «falta de actualizaciones» como una condición independiente

Un envío sin un escaneo reciente no se ha perdido automáticamente. Puede encontrarse entre puntos de control, estar a la espera de su primer escaneo físico o verse afectado por una falta de visibilidad.

Define los umbrales de inactividad por servicio, ruta, etapa del envío y compromiso comercial, en lugar de aplicar un único temporizador universal. Distingue un paquete que nunca ha recibido un escaneo de aceptación de otro que dejó de actualizarse después de entrar en la red. Si las pruebas históricas son limitadas, utiliza el umbral para iniciar una investigación, no para declarar una pérdida.

Suprime las alertas repetidas mientras un caso sin cambios permanezca abierto. Escala el caso cuando aparezcan nuevas pruebas, se incumpla un seguimiento acordado o el compromiso de entrega al cliente requiera intervención.

Supervisa la salud de la integración por separado del rendimiento de las entregas

La supervisión de la API responde si tu integración de seguimiento funciona. La supervisión de las entregas responde qué ocurre con los envíos. Un endpoint saludable puede recibir datos obsoletos del transportista, mientras que un endpoint no disponible puede perder actualizaciones de paquetes que se mueven con normalidad.

  • Salud de las solicitudes: Registra los fallos de autenticación, los tiempos de espera, las respuestas por límite de frecuencia, los errores del servidor y los rechazos a nivel de aplicación.
  • Salud de los webhooks: Registra los fallos de verificación, la latencia de confirmación, los fallos de persistencia, las entregas duplicadas y los errores de procesamiento.
  • Salud del procesamiento: Supervisa la antigüedad de la cola, los eventos sin procesar, los fallos de mapeo y los fallos de notificación.
  • Actualidad del seguimiento: Mide por separado el tiempo transcurrido desde el último evento de la fuente y el tiempo transcurrido desde la última ingesta correcta.
  • Resultados operativos: Registra las excepciones sin resolver, el tiempo hasta la asignación y los seguimientos vencidos.

Para los reintentos de solicitudes, sigue las indicaciones del proveedor sobre límites de frecuencia y reintentos. Evita repetir a ciegas operaciones que puedan crear registros duplicados u otros efectos secundarios; utiliza mecanismos de idempotencia documentados cuando estén disponibles.

Cuando sea compatible, utiliza un proceso de conciliación para recuperar el registro de seguimiento más reciente después de interrupciones o de posibles eventos perdidos. Establece su frecuencia dentro de los límites contractuales y de frecuencia. Los webhooks y la conciliación tienen objetivos diferentes: uno entrega cambios y el otro ayuda a detectar y reparar lagunas.

Prueba los casos de fallo antes de activar las notificaciones para clientes

Empieza con un procesamiento exclusivamente interno e inspecciona envíos representativos antes de permitir que los cambios de estado envíen mensajes a los clientes. Prueba algo más que la progresión normal de «en tránsito» a «entregado».

  • Un webhook duplicado crea una sola notificación prevista para el cliente.
  • Un evento antiguo que llega tarde no sustituye incorrectamente el estado actual.
  • Un estado desconocido se conserva y se marca, en lugar de asignarse silenciosamente como «entregado».
  • Un fallo de escritura duradera no genera una confirmación exitosa.
  • Una interrupción temporal posterior deja los eventos disponibles para reintento.
  • Un evento de entrega seguido de una corrección permanece auditable.
  • Un pedido con varios paquetes no pasa a estar completamente entregado cuando solo se ha entregado un paquete.
  • Una interrupción de la API alerta a ingeniería sin informar automáticamente a los clientes de que sus paquetes están retrasados.

El criterio de lanzamiento debe ser la coherencia operativa: el registro del envío, el mensaje al cliente y la acción de soporte deben coincidir con las mismas pruebas subyacentes. Una respuesta exitosa del webhook por sí sola no demuestra que la experiencia de entrega esté funcionando.

Preguntas frecuentes

¿HTTP 200 significa que el paquete fue entregado?

No. Indica éxito a nivel HTTP para la solicitud. Lee por separado el resultado empresarial de la API y los campos de estado del envío. En un webhook, una confirmación exitosa se refiere a la recepción de la notificación, no a la entrega física del paquete.

¿Debo utilizar webhooks o consultas periódicas para las actualizaciones de seguimiento?

Utiliza webhooks para las actualizaciones basadas en eventos cuando el proveedor los admita. Cuando sea compatible y esté justificado operativamente, añade consultas de conciliación limitadas para recuperar lagunas. Las consultas periódicas por sí solas pueden ser adecuadas cuando los webhooks no estén disponibles, pero su frecuencia debe respetar los límites del proveedor y tus requisitos de actualidad.

¿Por qué puede cambiar el estado del seguimiento después de «entregado»?

Una fuente puede corregir un evento, o tu integración puede recibir información retrasada o contradictoria. Conserva el historial y evalúa las pruebas más recientes en lugar de tratar «entregado» como técnicamente inmutable. Una entrega informada y la confirmación de recepción por parte del cliente también son hechos diferentes.

¿Con qué rapidez debe enviarse una alerta de excepción?

Basa la urgencia en la acción necesaria y en cualquier plazo verificado. Un problema que requiere la acción del destinatario merece un tratamiento diferente al de un retraso informativo. La velocidad de procesamiento no puede compensar un evento del transportista que se publicó tarde, por lo que debes conservar tanto la marca de tiempo de origen como la de recepción.

¿Deben ver los clientes el estado sin procesar del transportista?

Por lo general, los clientes se benefician más de una explicación clara y de un siguiente paso respaldado que de un código sin explicación. Conserva los detalles sin procesar para fines de soporte y auditoría. Nunca simplifiques un estado convirtiéndolo en una promesa más contundente de lo que respalda el evento subyacente.

Fuentes

  • RFC 9110: HTTP Semantics — referencia para el significado de los códigos de estado HTTP, incluidos 200 y 202.
  • OWASP REST Security Cheat Sheet — orientación de seguridad relevante para endpoints de API y webhooks.
  • 17TRACK Tracking API — referencia oficial del producto para la opción de integración de seguimiento analizada.
  • 17TRACK API Documentation — referencia oficial de los requisitos de integración específicos del proveedor; los esquemas ilustrativos y las recomendaciones de flujo de trabajo de esta guía no sustituyen dicho contrato.
Loading