Getting Paid on TimeLate fees

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:

SettingOptions
TypeA fixed amount, a percent of the overdue balance, or a statutory preset
Grace daysHow many days after the due date before any fee applies
RepeatApply once, or every N days while the invoice stays overdue
Maximum totalA cap on the total of all fees on one invoice
On or offThe 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:

PresetWhat it applies
EU Late Payment DirectiveStatutory interest plus a fixed €40 compensation, for business-to-business invoices
UK late paymentUK 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

  1. An invoice passes its due date unpaid and becomes overdue.
  2. Once the grace days have passed, the fee is calculated from the policy (for a percent fee, on the overdue balance).
  3. 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.
  4. The client is told in the next reminder. See Reminders.
  5. 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

1

Open Settings > Reminders and late fees

Choose the business. Late fees are off until you turn them on.

2

Create the policy

Pick the type (fixed, percent or a statutory preset), the grace days, whether it repeats, and a maximum total.

3

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.

4

Override for a client (optional)

On a client, set a different policy, or turn late fees off for them.

5

Turn off for one invoice (optional)

In the editor, switch late fees off for a single invoice before sending it.

Through the API

ActionRESTPermission
List late-fee policiesGET /v1/late-fee-policiesdocuments.view
Create or update a policyPOST /v1/late-fee-policies or PATCH /v1/late-fee-policies/{id}late_fees.manage
Delete a policyDELETE /v1/late-fee-policies/{id}late_fees.manage
Waive a late feePOST /v1/late-fee-charges/{id}/waivelate_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

KeyNeeded forDefault roles
late_fees.manageCreating, editing and deleting policiesOwner, Admin
late_fees.waiveWaiving an applied feeOwner, Admin, Editor
documents.viewSeeing policiesOwner, Admin, Editor, Viewer, Accountant
documents.editTurning fees off on one invoiceOwner, Admin, Editor

Late-fee actions only ever act on your own account's invoices; a request from another account is refused.

Errors

CodeWhen
validation_failedA required field for the type is missing, for example percent on a percent policy
conflictA business or client policy already exists; update it instead
document_voidedThe invoice is void
permission_deniedYour role lacks late_fees.manage or late_fees.waive