PARCIAL Verificado contra producción · wb-services
v3.53.0 · 24 ago 2026Lealtad
Ciclo de vida de tarjeta
Una tarjeta tiene un estado: activa ⇄ inactiva, más expirada. Desactivar es un cambio suave y reversible. No se borra nada, y el saldo se congela. Mientras está inactiva, la tarjeta no gana ni canjea, y el pase en la billetera se pone en gris.
Activagana y canjea
→
Desactivarestado → inactiva
→
Inactivasaldo congelado · pase en gris
→
Reactivarestado → activa
Nada se borra. La tarjeta se puede reactivar después.
PARCIAL — Desactivar y Reactivar están trazados y verificados. Inscripción y expiración están sin trazar.
Preguntas frecuentes
Si desactivo la tarjeta, ¿el cliente la sigue teniendo en la billetera, solo que no escanea?
Sí. El pase queda en su billetera, pero se pone en gris. Escanearlo no hace nada. Puedes reactivar la tarjeta cuando quieras. </>
¿Desactivar borra sus puntos o su historial?
No. No se borra nada. El sistema conserva el saldo y el historial. Los dos vuelven si reactivas. </>
¿Se puede volver a activar una tarjeta desactivada?
Sí. Reactívala. Un detalle: si el cliente ya borró el pase de su teléfono, debe volver a agregarlo. </>
¿Quién desactivó esta tarjeta?
Queda registrado. A diferencia del ajuste de puntos, aquí sí se guarda el usuario. </>
Bueno saber
⚠️ Dos caminos de desactivación, inconsistentes. El camino canónico es
POST /…/deactivate. Existe también un DELETE legado. El legado pone la tarjeta en inactive, deja un log con el actor y sincroniza Autumn. Pero no escribe el asiento de auditoría (DEACTIVATION) ni anula el pase. Los dos caminos no son equivalentes.Hallazgo · candidato a ticket </>
⚠️ La puerta de gana/canje ahora auto-sana las tarjetas
expiradas. Una tarjeta expirada ya no bloquea. En la siguiente acción de puntos se reactiva sola. Solo inactive y disabled bloquean.Comportamiento nuevo desde v3.32.0 </>
Comportamientos
Desactivar POST /v2/customer-cards/:id/deactivate
Deshabilita la tarjeta de forma suave. Es reversible. No se borra nada.

- Cambia el estado. Pasa de
activaainactiva, en una transacción. No borra la fila. El saldo queda congelado, no en cero. Una tarjeta no se puede desactivar dos veces. </> - No gana ni canjea. Toda ruta de puntos rechaza el estado
inactive. El trabajo de premios salta la tarjeta. </> - Asiento de auditoría. Escribe un asiento
DEACTIVATIONcon el usuario que lo hizo, atómico con el cambio de estado. </> - Anula el pase. Google pasa a
EXPIRED, Apple avoided. Si esa anulación falla, no bloquea la desactivación. También libera cupo en Autumn. No avisa al cliente. </>
Acceso: cualquier usuario de negocio con el sistema de tarjetas.
Reactivar POST /v2/customer-cards/:id/reactivate
El inverso: vuelve la tarjeta a activa.
Mapa de código — para ingeniería
POST /v2/customer-cards/:id/deactivate · /reactivate→ customer-card-detail.controller.ts · customer-card-detail.service.tsPuerta de gana / canje→ orders.service.ts · validateCustomerCardStatus()Camino legado y frontend→ business-customers.service.ts (legado) · card-deactivate-customer-modal.tsx · lib/api/customer-cards.ts