Reminders & follow-up
When Wajub reminds your customer of an unpaid invoice, and how to follow up from your own code.
Wajub reminds your customer of an unpaid invoice by e-mail, before and after its due date, whether you sent the invoice through the API or from the Dashboard. Reminders are on unless you turn them off.
When reminders go out
Each reminder falls on a day counted from the invoice's due_date. Until you pick other days, they
are:
| Reminder | Day |
|---|---|
| A week before | due_date − 7 |
| Three days before | due_date − 3 |
| The day before | due_date − 1 |
| A day late | due_date + 1 |
| A week late | due_date + 7 |
Settings → Invoice → Automatic Reminders in the Dashboard picks other days, 1, 3, 7 or 14 days before or after the due date, or turns reminders off. The choice holds for every invoice of the account: no invoice turns them off on its own, through the API or elsewhere.
A reminder whose day falls on or before the day the invoice was sent is skipped, so an invoice sent after its due date is reminded only on the days still ahead of it. A reminder never lands on a day the customer was already reminded. When several reminders are due at once, only the latest goes, and none goes out more than a week after its day.
Who receives what
An invoice is reminded when it has a due_date, has been sent (sent, viewed, partial or
overdue) and still has something owed. The e-mail goes to the customer customer_id links, else
to customer_email; an invoice with neither is not reminded. Drafts, quotes and estimates never
are.
The reminder is written in the invoice's language, with the PDF attached. It gives the invoice
number, the amount still due and the due date, with a button to the invoice's page. A partly paid
invoice is reminded of what is left.
A reminder sends no webhook and changes nothing on the invoice.
What stops the reminders
The invoice being paid, cancelled or refunded, or nothing being left to pay. A reminder that was about to go out when the invoice was paid is not sent.
Following up from your own code
To follow up over another channel, such as SMS or WhatsApp, or on a schedule of your own, you have two signals to build on, and they behave differently.
The first is the list, filtered on what is outstanding.
curl "https://api.wajub.com/invoices?status=overdue&payment_status=unpaid" \
-H "Authorization: sk.xxxxxxxxxxxxxxxx…"payment_status takes unpaid, partially_paid or fully_paid, and narrows on what has actually
been received rather than on the status label. due_date_from and due_date_to bracket the window
when you want this week's late invoices rather than all of them.
The overdue label lags by up to a day
Nothing flips an invoice to overdue at midnight. It happens overnight once due_date has
passed, so an invoice that fell due this morning still reads sent until tomorrow. If you need the distinction
on the day, compare due_date against today yourself rather than filtering on the status.
The second signal is the webhook, with one gap worth planning around.
invoice.updatedeventThe gap is overdue itself. Invoices turn overdue overnight, and that change sends no webhook.
Overdue is something you notice by asking, not something you are told.
So the pattern that works: hold your own list of open invoices, check it on your own schedule, and send your own reminder over the channel that customer actually reads. The message needs the payment URL, which you rebuild from the invoice id.
https://invoice.wajub.com/inv_LRQqYvlhrgUOE225KMKURelated pages
- InvoiceThe document, its payment page, and the full lifecycle.
- QuickstartIssue an invoice and get it paid, start to finish.
- Recurring invoicesWhat the recurring flag configures, and what it does not.
- WebhooksWhere invoice.updated fits with payment.succeeded.
- Invoices API referenceEvery filter on the list endpoint.