Este es un recorrido de producto, no el caso de ningún despacho real: describe cómo se conectan las pantallas de TerraWare, sin cifras inventadas ni una desarrolladora en particular. La pregunta que resuelve es en qué momento exacto del camino entre el primer pago de un apartado y el vencimiento de su plazo queda decidido -sin que nadie lo note- si el dinero ya cobrado va a quedar visible o va a caer en un limbo (según lo visto en el apartado vencido en TerraWare puede dejar dinero cobrado sin que nadie lo vea).
1. El comprador aparta la unidad y abona parte de su plan de pagos
El recorrido empieza con la reservación: el comprador aparta una unidad y va abonando su plan de pagos (enganche, mensualidades) mientras reúne el resto o firma el contrato. Cada abono queda registrado contra ese plan, con su propio candado de prevención de lavado de dinero según el método de pago -eso ya funciona bien, y no es el objeto de este recorrido-.
2. El plazo vence y el barrido lo detecta
TerraWare no corre este barrido solo con un cron: alguien del despacho lo dispara desde la pantalla de apartados, a propósito, para que quede rastro de quién lo corrió. expireReservations() revisa los apartados cuyo plazo ya pasó, los marca expirado y devuelve la unidad a disponible para que otro comprador pueda apartarla.
3. Si el plan tenía dinero cobrado, no se cancela solo
Aquí es donde el sistema decide algo deliberado: si el plan de pagos de ese apartado ya tenía dinero abonado, no se cierra junto con el resto. El propio código lo dice -es un candado que existe desde un hallazgo de dinero del 2026-09-04-: se excluye del lote automático y el plan queda en un estado propio, pendiente_revision, en vez de cancelado. Y el método no se queda callado al respecto: calcula y regresa exactamente qué apartados quedaron así y cuánto tenían cobrado cada uno.
4. La señal llega hasta la pantalla del despacho... y se descarta ahí mismo
El endpoint que el botón "Liberar apartados vencidos" invoca sí recibe esa señal completa del servicio, sin recortarla. Pero el componente que la consume sólo espera un número: cuántos apartados se liberaron. Todo lo demás que vino en la respuesta -incluido cuáles quedaron con dinero pendiente de revisión y cuánto- se descarta en la misma línea donde se lee el resultado.
5. Ni el despacho ni el comprador ven la diferencia
A partir de ahí, el plan pendiente_revision no aparece marcado en el listado de apartados -que sólo colorea el estatus de la reservación-, ni en el detalle del apartado -que muestra el monto de las mensualidades pero no el estatus del plan-. Y del lado del comprador, su portal sigue mostrando "Pagado", "Saldo" y su calendario de cuotas exactamente igual que si su reservación siguiera vigente: ni el estatus de la reservación ni el del plan se leen en esa pantalla. El único rastro que queda vive en el registro de auditoría, dentro del detalle de un evento entre otros cientos -visible sólo si alguien exporta el CSV completo y lo abre a buscarlo a mano.
Qué guarda el sistema en cada etapa
| Etapa | Qué guarda TerraWare | Aviso al despacho / al comprador |
|---|---|---|
| 1. Abonos al plan | Pagos registrados contra el plan de pagos del apartado | El comprador ve su avance normalmente |
| 2. Vence el plazo | Reservación marcada expirado, unidad liberada | Ninguno todavía |
| 3. Plan con dinero cobrado | Plan marcado pendiente_revision, NO cancelado | El servicio calcula y devuelve la señal (reservación + monto cobrado) |
| 4. La señal llega al BFF | El endpoint reenvía la respuesta completa | El componente sólo lee "liberadas": la señal se descarta |
| 5. Después del barrido | Sin marca visible en listado, detalle ni portal del comprador | Ninguno: el único rastro vive sin resaltar en el log de auditoría |
En ninguna de las cinco etapas existe una pantalla que diga "este apartado venció con dinero cobrado pendiente de resolver". Puedes estimar cuánto representa eso, con tus propios números, en la calculadora de exposición por apartados vencidos.
Preguntas frecuentes
¿En qué paso exacto se pierde el rastro de un apartado vencido con dinero cobrado?
En el paso 4: el servicio calcula y entrega la señal completa hasta el BFF, pero el componente de la pantalla sólo lee cuántos apartados se liberaron y descarta todo lo demás de la respuesta.
¿TerraWare reintenta solo resolver esos planes más tarde?
No de forma automática. El plan queda en pendiente_revision a la espera de que alguien lo revise a mano, pero nada en el producto se lo recuerda ni lo prioriza.
¿Este recorrido aplica a cualquier método de pago del apartado?
Sí: el punto donde se decide si el plan se cancela o queda pendiente_revision ocurre después de que el dinero ya se cobró, sin importar el método con el que se abonó.
Ve el recorrido completo en tu propia demo
Te mostramos en vivo cómo TerraWare mueve un apartado del abono al vencimiento, y qué pasa exactamente cuando el plan queda con dinero cobrado sin resolver.
Agenda una demo gratis