Cupones de reembolso

Se generan cuando un inscripto cancela su participación, siempre que:

  • La orden vinculada está pagada (processing o completed).
  • La política de cancelación de la actividad tiene un tier que califica.
  • El inscripto eligió “Emitir un cupón” en el modal (no “Reembolso del dinero”).

Ver el detalle del flujo en flujo-de-cancelacion.

Forma del cupón

  • Uno solo por cancelación, incluso si la actividad tiene varios tipos. Se emite sobre el primer pa_tipo_de_actividad de la actividad cancelada.
  • Código: refund-<tipo>-<id-inscripción>-<id-tipo>-<usuario>.
  • Descuento: el porcentaje del tier elegido por la política.
  • Uso único: usage_limit = 1, usage_limit_per_user = 1.
  • Rango de validez: del día de emisión hasta hoy + max_days_applicable_for_activities_starting_from_now (configurado por la política).
  • Usuarios permitidos: el comprador y, si aplica, el participante alternativo.

Provenance (origen)

Cada cupón de reembolso lleva un meta _refund_coupon_provenance que registra:

  • Tipo (cancellation_refund).
  • ID de la inscripción y de la orden originales.
  • ID del producto cancelado.
  • Motivo de la cancelación.
  • Porcentaje del tier aplicado.
  • Cutoff usado (días antes / días después del inicio).
  • Fecha de emisión (ISO).

Esto permite reconstruir el contexto completo desde el cupón mismo, sin tener que cruzar con otras tablas.

Idempotencia

Si por algún motivo el flujo de cancelación se ejecuta dos veces para la misma inscripción (por ejemplo: un reintento), el sistema no emite un cupón duplicado: detecta que ya existe un cupón con el mismo código y devuelve el id existente.

Ver también