Saltar a contenido

Mantener este documento como fuente única de estados

Cualquier otro archivo (incluido datos/equivalencias-estados.md) debe referenciar estos nombres. Los enums en código no deben aparecer en UI; el mapeo de traducción vive en equivalencias-estados.md.


Estados oficiales del sistema

Documento central

Este documento define los estados oficiales de cada entidad del sistema. Todos los demás documentos deben referirse a estos estados. Ningún desarrollo debe inventar estados fuera de esta lista.


Estados de prealerta (compra reportada por el usuario)

El usuario reporta una compra antes de que el paquete llegue al almacén.

Estado Descripción
borrador El usuario empezó a reportar pero no lo completó
reportada Reporte creado, completo, esperando llegada del paquete
reportada_sin_tracking Reporte creado pero sin número de tracking (caso normal en Amazon/SHEIN/Temu al principio)
tracking_actualizado El usuario agregó el tracking después de creado el reporte
vinculada_a_paquete El paquete físico llegó y fue asociado a este reporte
cancelada_por_usuario El usuario canceló el reporte
cancelada_por_operador Un operador canceló el reporte (por error, duplicado, etc.)
requiere_correccion Falta información o es incorrecta; el usuario debe corregir

Regla importante

Una prealerta puede existir sin tracking. El sistema debe permitir crear el reporte aunque el usuario todavía no tenga el tracking. El campo tracking es opcional en este estado.


Estados del paquete físico

El paquete que llega físicamente al almacén.

Estado Descripción
prealertado Hay una prealerta asociada y el paquete está en camino
en_camino_al_almacen El transportista está transportando hacia el almacén
recibido_sin_identificar Llegó al almacén, no se pudo identificar aún
recibido_identificado Llegó y se asoció a un usuario
pendiente_conciliacion Llegó pero no coincide con ninguna prealerta; requiere revisión manual
en_almacen Almacenado, esperando instrucciones del usuario
esperando_instrucciones El usuario aún no decidió qué hacer (enviar, consolidar, devolver)
en_servicio_adicional Tiene un servicio activo (inspección, prueba, reempaque) en proceso
listo_para_consolidar Puede ser incluido en una consolidación
reservado_para_consolidacion Ya fue seleccionado para una consolidación, esperando que se complete
consolidado Ya agrupado dentro de una consolidación
en_transito Enviado hacia Cuba
entregado Entregado al destinatario final
retenido_por_incidencia Retenido por algún problema que requiere resolución
devuelto_a_tienda En proceso de devolución al vendedor
descartado_o_cerrado Cerrado por cierre de caso, abandono o decisión operativa

Estados de la consolidación

Agrupación de varios paquetes para un mismo envío.

Estado Descripción
borrador Se empezó a armar la consolidación pero no se confirmó
completa Todos los paquetes reservados y listos para cotizar
cotizada Se calculó el costo de la consolidación
pendiente_pago Esperando que el usuario pague la consolidación
pagada Pago confirmado
en_preparacion Siendo preparada para despacho
despachada Ya enviada hacia Cuba
cancelada Cancelada antes de despacho

Estados del envío (despacho hacia Cuba)

Estado Descripción
borrador Envío creado pero no confirmado
pendiente_kyc KYC del usuario no aprobado; no puede despachar
pendiente_destinatario Falta definir el destinatario
pendiente_cotizacion Esperando cálculo de costo
cotizado Costo calculado, esperando aprobación del usuario
pendiente_pago Esperando pago
pagado Pago confirmado
en_preparacion Preparándose para despacho
despachado_desde_almacen Ya salió del almacén
en_transito_a_cuba En camino hacia Cuba
en_aduana En proceso de aduana en Cuba
liberado_de_aduana Pasó aduana, liberado
en_reparto En última milla de entrega
entregado Entregado al destinatario
incidencia Hay un problema que requiere atención
cancelado Cancelado antes de entrega

Estados del pago

Estado Descripción
pendiente Pago iniciado pero no confirmado
pago_reportado Comprobante manual informado; pendiente de validación del operador
completado Pago exitoso
fallido Pago rechazado o falló
reembolsado Dinero devuelto al usuario
parcial Pago parcial (crédito + dinero real) — se desglosa en el pago

Sobre el estado parcial

parcial no es un estado standalone del pago, sino una composición del pago. El pago puede combinar dinero real + crédito + tarjeta. El campo payment_method_mix registra qué se usó. El estado del pago como tal es completado cuando se confirma.


Estados del KYC (verificación de identidad)

Estado Descripción
sin_iniciar El usuario no empezó el proceso de verificación
borrador Empezó a cargar datos pero no lo completó
enviado Documentos cargados, enviado a revisión
en_revision Equipo revisando los documentos
aprobado Verificación aprobada
rechazado Documentos rechazados; puede reenviar
requiere_mas_informacion Se necesita más información o corrección
vencido La verificación expiró (por tiempo o por decisión)
bloqueado_manual Bloqueado manualmente por un operador

Reglas de KYC por estado

Estado KYC ¿Puede prealertar? ¿Puede despachar? ¿Puede consolidar? ¿Puede pagar?
sin_iniciar ✅ Sí ❌ No ❌ No ❌ No
borrador ✅ Sí ❌ No ❌ No ❌ No
enviado ✅ Sí ❌ No ❌ No ❌ No
en_revision ✅ Sí ❌ No ❌ No ❌ No
aprobado ✅ Sí ✅ Sí ✅ Sí ✅ Sí
rechazado ✅ Sí ❌ No ❌ No ❌ No
requiere_mas_informacion ✅ Sí ❌ No ❌ No ❌ No
vencido ✅ Sí ❌ No ❌ No ❌ No
bloqueado_manual ❌ No ❌ No ❌ No ❌ No

Principio

El KYC bloquea el despacho, no la prealerta. El usuario puede reportar compras aunque no tenga KYC aprobado. Esto evita paquetes sin prealerta que llegan al almacén.


Estados de servicios adicionales

Cada servicio adicional sigue su propio ciclo.

Inspección visual / Prueba funcional

Estado Descripción
no_solicitado No se pidió este servicio
solicitado Usuario lo solicitó
pendiente_cotizacion Esperando definir el costo
cotizado Costo definido, esperando aprobación
pendiente_pago Esperando pago
en_proceso Operador realizando la revisión
completado Servicio completado
completado_con_evidencia Servicio completado con fotos/videos como evidencia
rechazado No se pudo realizar
cancelado Usuario canceló el servicio

Reempaque

Estado Descripción
no_solicitado No se pidió
solicitado Usuario lo pidió
cotizado Costo definido
pendiente_pago Esperando pago
en_proceso Operador reembalando
completado Reempaque terminado

Devolución

Estado Descripción
no_solicitado No se pidió
solicitado Usuario solicitó devolución
pendiente_cotizacion Costos de devolución por definir
cotizado Costo definido
pendiente_pago Usuario debe pagar costos de envío de retorno
en_proceso Devolución en camino al vendedor
completado Devolución completada, dinero reembolsado si aplica
rechazado El vendedor rechazó la devolución
cancelado Cancelada

Estados de devolución (producto/devolución a tienda)

Estado Descripción
no_solicitado No se gestiona devolución
solicitada Usuario solicitó devolución
pendiente_revision Operador revisando si aplica
aprobada Se aprueba la devolución
rechazada No aplica o no se acepta
en_transito_retorno Paquete regresando al vendedor
recibido_por_vendedor El vendedor recibió el paquete
reembolso_iniciado Dinero en proceso de devolución
reembolso_completado Reembolso realizado
cerrada Caso cerrado

Estados de aduana

Estado Descripción
pendiente Aún no presentada a aduana
en_revision Aduana revisando el envío
retenida Retenida por alguna razón
documentacion_requerida Se requiere documentación adicional
pendiente_pago_aduana Pendiente de pago de aranceles
aduana_pagada Aranceles pagados
decomisada Mercancía decomisada por aduana
no_autorizada Envío no autorizado
libre Liberada, sin cargos extra
con_cargos Liberada con pago de aranceles/impuestos
reclasificada Aduana cambió la categoría del producto
incidencia Problema que requiere gestión adicional

Estados de almacenaje

Estado Descripción
dentro_del_periodo_gratuito Dentro de los días incluidos sin costo
por_vencer Próximo a vencer (alerta activa)
vencido Ya superó el período gratuito, aplicando cargos
maximo_alcanzado Alcanzó el máximo de días permitidos antes de acciones drásticas

Estados de incidencias

Estado Descripción
abierta Incidencia creada, requiere atención
en_revision Operador revisando la incidencia
requiere_accion_usuario El usuario debe hacer algo
resuelta Solucionada
cerrada Caso cerrado sin resolución
escalada Escalada a supervisor

Tipos de incidencia

Tipo Descripción
paquete_sin_identificar Paquete llegó sin identificador legible
tracking_no_coincide El tracking del paquete no coincide con el reporte
falta_factura No se encontró factura ni comprobante
producto_restringido Producto no permitido o restringido
peso_valor_inconsistente El peso o valor declarado no coincide con lo recibido
dano_visible Embalaje o producto dañado
direccion_mal_escrita La dirección tiene errores
kyc_rechazado KYC fue rechazado
pago_fallido El pago no se pudo procesar
aduana_requiere_revision Aduana solicita información adicional
usuario_sin_acceso Usuario bloqueado o suspendido

Estados del identificador del casillero

Estado Descripción ¿Recibe paquetes? ¿Puede despachar?
activo En uso normal ✅ Sí ✅ Sí
suspendido Temporalmente pausado ✅ Sí ❌ No
desactivado Inactivo ❌ No ❌ No
bloqueado Bloqueado por alguna razón ✅ Paquetes retenidos ❌ No
cerrado Cuenta cerrada ❌ No ❌ No

Transiciones válidas y reglas

Prealerta → Paquete

reportada / reportada_sin_tracking / tracking_actualizado
    → vinculada_a_paquete (cuando el paquete físico se identifica)
    → cancelada_por_usuario (usuario cancela)
    → cancelada_por_operador (operador cancela)
    → requiere_correccion (faltan datos)

Paquete físico

prealertado
    → en_camino_al_almacen
    → recibido_sin_identificar (no se encontró usuario)
    → recibido_identificado (se encontró usuario por identificador o tracking)

recibido_sin_identificar / recibido_identificado
    → pendiente_conciliacion (si no coincide con prealerta)
    → en_almacen (si se identificó correctamente)

en_almacen
    → esperando_instrucciones
    → en_servicio_adicional
    → listo_para_consolidar
    → en_transito
    → retenido_por_incidencia

esperando_instrucciones
    → listo_para_consolidar
    → en_servicio_adicional
    → en_transito
    → retenido_por_incidencia

en_servicio_adicional
    → listo_para_consolidar
    → retenido_por_incidencia

listo_para_consolidar
    → reservado_para_consolidacion

reservado_para_consolidacion
    → consolidado

consolidado
    → en_transito
    → retenido_por_incidencia

en_transito
    → entregado
    → retenido_por_incidencia

Matriz de acciones por estado (vista del cliente)

Paquete desde la perspectiva del usuario

Estado del paquete Visible al cliente? Qué ve el cliente Qué puede hacer
prealertado No (interno)
en_camino_al_almacen No (interno)
recibido_sin_identificar No (interno)
recibido_identificado "Paquete recibido en almacén" Ver fotos, solicitar acción
pendiente_conciliacion "Tu paquete llegó pero no lo reconocemos" Completar datos para identificarlo
en_almacen "Paquete en almacén" Enviar, consolidar, pedir inspección, devolver
esperando_instrucciones "Sin instrucciones aún" Enviar, consolidar, pedir servicio
en_servicio_adicional "Servicio en proceso" Ver estado del servicio
listo_para_consolidar "Listo para agrupar" Agregar a una consolidación
reservado_para_consolidacion "Incluido en consolidación" Ver consolidación
consolidado "Incluido en envío" Ver consolidación
en_transito "En camino a Cuba" Seguir tracking
entregado "Entregado" Ver confirmación
retenido_por_incidencia "Hay un problema con tu paquete" Ver motivo, resolver
devuelto_a_tienda "En devolución" Ver estado de la devolución

Estados internos

prealertado, en_camino_al_almacen y recibido_sin_identificar son estados operativos internos. El cliente no los ve porque el paquete aún no ha llegado o no está identificado.


Reglas generales de estados

  1. Ningún paquete avanza sin usuario asociado. Si no se identifica, va a pendiente_conciliacion.
  2. Todo paquete recibido debe tener prealerta asociada o crear una. Si no hay prealerta, se crea automáticamente y se notifica al usuario.
  3. Los estados son mutuamente excluyentes. Un paquete no puede estar en dos estados al mismo tiempo.
  4. Las transiciones deben quedar registradas. Cada cambio de estado genera un evento en package_events.
  5. Los estados visibles al usuario pueden diferir de los internos. El cliente ve estados simplificados; el operador ve los estados completos.
  6. El KYC no bloquea la prealerta, pero sí bloquea el despacho, la consolidación para envío y el pago.