Cupones de reembolso
Se generan cuando un inscripto cancela su participación, siempre que:
- La orden vinculada está pagada (
processingocompleted). - 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_actividadde 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.