Troubleshooting & Reference · Article 7.17
«Mi cliente recibió un correo de recordatorio pero ya había pagado»
Rara condición de carrera — el recordatorio se envió momentos antes de que la confirmación del pago se propagara. La tarea beat del recordatorio vuelve a comprobar el estado del pago en el momento del envío; si está pagado, lo omite. Si ocurre esto, la diferencia fue de segundos.
Un correo de recordatorio llegando a un cliente que ya pagó es embarazoso pero inofensivo. Clozo lo protege dos veces (la comprobación de idempotencia del evento de la Línea de tiempo + la comprobación del estado de pago en el momento del envío), pero una carrera estrecha entre el procesamiento del webhook y el envío puede saltarse la protección. Si ocurre una vez, discúlpese y siga adelante; si ocurre repetidamente, es un error que queremos conocer.
Step by step
Discúlpese con el cliente.
Mensaje personal: «Disculpe — ese recordatorio se envió justo antes de que nuestro sistema procesara su pago. Todo está al día.»
Verifique que el estado del pago
sea correctamente
Pagadaen Clozo. Si no lo es, es un problema diferente (Sección 10.14).Si es reproducible (varias propuestas pagadas recibiendo recordatorios)
, contacte con el soporte.
Why this works this way
La tarea beat send_overdue_reminders (tasks.py L2107) se ejecuta cada hora y encola los envíos por nivel. El despachador send_overdue_reminder_email (L2165) vuelve a comprobar proposal.status != Proposal.STATUS_OVERDUE en el momento del envío y lo omite si está pagado. La ventana de carrera son los pocos cientos de milisegundos entre la recomprobación y la llamada real a la API de Resend.
Si el correo de recordatorio se envió en una propuesta pagada, el pago debe haber llegado dentro de esa estrecha ventana. Muy inusual.
Troubleshooting
Keep reading
Refunds & Notifications
Email: Auto-reminders for overdue invoices (3 / 7 / 14 day escalation)
When a final invoice goes unpaid past its due date, Clozo sends three escalating reminders to the client at +3, +7, and +14 days. Tone moves from gentle to formal; the +14-day reminder cites the EU Late Payment Directive.
Lifecycle
Status: Awaiting final payment, then Paid
You've issued the final invoice. The client now owes the remaining balance (full amount minus the deposit they already paid). When the money lands, status flips to `Paid` and the final receipt is generated.
Refunds & Notifications
Every email Clozo sends, in one table
Clozo dispatches 13 distinct transactional emails across the proposal and amendment lifecycle. This page lists each one, who triggers it, who receives it, and what's attached.