Getting Paid on Time
Late fees
Add a fixed, percentage or statutory late fee to overdue invoices, stated in your terms in advance and waivable in one click.
Coming the week of 11 January 2027
This feature ships in the week of 11 January 2027. This page describes how it will work; details can change before release.
Late fees encourage clients to pay on time and compensate you when they do not. You set a policy once for a business (and, if you like, a different one for a particular client). When an invoice is overdue and its grace days have passed, the fee is added to the invoice as a traceable revision, and the next reminder tells the client. Late fees are off by default, and they only apply to invoices whose terms stated the fee before they were sent.
The policy
A late-fee policy belongs to a business, with an optional override per client. It has:
| Setting | Options |
|---|---|
| Type | A fixed amount, a percent of the overdue balance, or a statutory preset |
| Grace days | How many days after the due date before any fee applies |
| Repeat | Apply once, or every N days while the invoice stays overdue |
| Maximum total | A cap on the total of all fees on one invoice |
| On or off | The whole policy, and separately each invoice |
Statutory presets
Statutory presets follow the late-payment rules of a jurisdiction, so you do not need to work out the interest yourself:
| Preset | What it applies |
|---|---|
| EU Late Payment Directive | Statutory interest plus a fixed €40 compensation, for business-to-business invoices |
| UK late payment | UK statutory late payment interest plus the fixed sum |
The rates and fixed sums are kept as data, so they can be updated when the law changes. Other countries use a custom fixed or percent fee.
Late fees must be agreed in advance to be fair and enforceable. That is why an invoice gets a late fee only if its terms showed the fee rule before it was sent. An invoice sent without the fee in its terms never gets one, even if you turn on a policy later.
How a fee is applied
- An invoice passes its due date unpaid and becomes overdue.
- Once the grace days have passed, the fee is calculated from the policy (for a percent fee, on the overdue balance).
- The fee is added as a revision of the invoice: a new version with a Late fee line, a new snapshot, and an audit entry. The previous version stays readable, so you and your client can always see what changed.
- The client is told in the next reminder. See Reminders.
- If the policy repeats, the next fee is added after N more days, until the maximum total is reached. After that, no more fees are added.
Each fee is recorded on its own, with the date it was applied for, so it is never added twice for the same day. Fees are calculated by the same money engine as your totals, in integer minor units.
When no fee is added
- The invoice is void.
- Late fees are off for the business, the client or that invoice.
- The invoice's terms did not show the fee rule when it was sent.
- The cap is already reached.
- The grace days have not yet passed.
Waive a fee
You can waive an applied fee in one click, for example for a good client who paid a day late. Waiving removes the fee through a new revision, with an audit entry recording who waived it. The fee record is kept with the status waived, so your history stays complete.
Set up late fees in the app
Open Settings > Reminders and late fees
Choose the business. Late fees are off until you turn them on.
Create the policy
Pick the type (fixed, percent or a statutory preset), the grace days, whether it repeats, and a maximum total.
Check your terms
An invoice with late fees on must show the fee rule in its terms before it is sent. Check that your terms describe the fee on the invoices you send from now on.
Override for a client (optional)
On a client, set a different policy, or turn late fees off for them.
Turn off for one invoice (optional)
In the editor, switch late fees off for a single invoice before sending it.
Through the API
| Action | REST | Permission |
|---|---|---|
| List late-fee policies | GET /v1/late-fee-policies | documents.view |
| Create or update a policy | POST /v1/late-fee-policies or PATCH /v1/late-fee-policies/{id} | late_fees.manage |
| Delete a policy | DELETE /v1/late-fee-policies/{id} | late_fees.manage |
| Waive a late fee | POST /v1/late-fee-charges/{id}/waive | late_fees.waive |
Late-fee actions are not on the MCP tool list; use the app, the API or, from the week of 25 January 2027, the CLI (freeinvoiceautomation late-fee upsert and late-fee waive; command names are proposed).
curl -X POST "https://api.freeinvoiceautomation.com/v1/late-fee-policies" \
-H "Authorization: Bearer $FIA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: latefee-acme-default" \
-d '{
"business_id": "0193f2a1-1b2c-7d3e-8f40-5a6b7c8d9e01",
"type": "percent",
"percent": "1.5",
"grace_days": 7,
"repeat": "every_n_days",
"repeat_every_days": 30,
"max_total_minor": "50000",
"enabled": true
}'A policy with no client_id is the business policy; one with a client_id overrides it for that client. There is at most one of each. To turn fees off for a single invoice, set late_fees_enabled to false on the document.
When a fee is applied, the invoice gets a new revision and the late_fee.applied webhook event is sent; waiving sends late_fee.waived.
Instalments
From the week of 25 January 2027, invoices with a payment schedule have late fees worked out per instalment, against each instalment's own due date.
What the client sees
- The fee rule in the invoice terms, before the invoice is sent.
- A Late fee line on the invoice once a fee applies, with the new total on the pay page and PDF.
- A note about the fee in the next reminder.
- If you waive it, the line disappears in the new version of the invoice.
Permissions
| Key | Needed for | Default roles |
|---|---|---|
late_fees.manage | Creating, editing and deleting policies | Owner, Admin |
late_fees.waive | Waiving an applied fee | Owner, Admin, Editor |
documents.view | Seeing policies | Owner, Admin, Editor, Viewer, Accountant |
documents.edit | Turning fees off on one invoice | Owner, Admin, Editor |
Late-fee actions only ever act on your own account's invoices; a request from another account is refused.
Errors
| Code | When |
|---|---|
validation_failed | A required field for the type is missing, for example percent on a percent policy |
conflict | A business or client policy already exists; update it instead |
document_voided | The invoice is void |
permission_denied | Your role lacks late_fees.manage or late_fees.waive |