In February we pulled three months of payment data for a 20-person UK IT services firm. Average invoice value: £4,200. Average days to payment: 54. Their accounts team sent one email at day 15 and another at day 30 — both generic, neither referencing the invoice number, neither asking for a specific payment date. Finance staff admitted they hated sending the second one. When we replaced it with a voice agent call at day 21, 61% of overdue invoices were paid within five days of the call. DSO fell from 54 to 37. No credit controller hired.
Here is what we built, what broke, and how the sequence holds up at 90 days.
What 54-day average debtor days costs a £1M UK SME in working capital and overdraft fees
For a firm turning over £1M per year, a 54-day DSO means roughly £148,000 of outstanding receivables sitting unpaid at any given moment (1,000,000 ÷ 365 × 54). At a typical UK SME overdraft rate of 8–12% per annum, carrying that balance costs £12,000–£18,000 a year in financing charges alone — before you account for the opportunity cost of capital not deployed elsewhere.
The Chartered Institute of Credit Management's 2024 benchmarking report puts average UK SME debtor days at 47 across all sectors, with professional services nearer 52. IT services regularly hit 55–65 because clients treat supplier invoices as lower priority than payroll. The industry average is a floor to beat, not a target.
Getting to 36 days on the same client base without changing payment terms frees roughly £49,000 from a £1M debtor book. That difference comes from invoices being noticed and paid faster — not from tightened terms.
Payment chasing call design: the 60-second script that gets a payment commitment date or surfaces a dispute
The call needs to accomplish three things in under 60 seconds: identify the caller clearly, state the specific invoice by reference and amount, and make one concrete request. Any element that delays those three goals reduces conversion rate.
Here is the branch structure we use:
[Opening]
"Hi, automated message from Apex Technology. Calling about invoice AP-4821
for £4,200, due 18th July. Quick check — has payment been arranged?"
[Branch A — payment confirmed]
"Thank you. We'll check on our side and follow up by email if anything is
outstanding. Have a good day."
[Branch B — payment date given]
"I'll note payment expected on [extracted date] and send a confirmation."
[Branch C — dispute signal]
"Understood. Flagging this as a query and routing to our accounts team.
Someone will call back within one business day."
[Branch D — no response after 3s]
"To discuss this invoice call us on 020 7123 4567 or reply to your invoice
email. Thank you."
The critical element is specificity. Naming the invoice reference and exact amount prevents the call from being dismissed as irrelevant. Generic balance reminders have far lower response rates — debtors can ignore them without engaging. Naming the document forces a decision.
For voice, we run ElevenLabs with a UK English persona through Retell.ai for call orchestration. Median latency from call connect to first word is 480ms in UK routing — within Retell's recommended range for business calling. Above 800ms, callers hang up before the message registers.
Call sequence design: day-7, day-21, and day-45 trigger logic and what the script changes at each stage
Three touches, each escalating in tone. Day-7 is a courtesy reminder. Day-21 asks for a commitment date. Day-45 states that the account is being referred for formal review. Most invoices resolve before day 45.
| Stage | Trigger | Tone | Primary ask | Script change |
|---|---|---|---|---|
| Day 7 | Due date +7 days | Friendly | "Has payment been arranged?" | First contact — soft, informational |
| Day 21 | No payment after day-7 call | Direct | "What date can we confirm payment?" | Requests a specific commitment date |
| Day 45 | No payment after day-21 call | Formal | States referral to credit review | Names consequence; triggers human handoff |
What changed in 2025–2026: Retell AI's March 2025 release added native multi-turn memory for voice agents. The day-21 call can now reference the day-7 interaction: "We called on the 7th — following up on that." That context alone increased callback rates by 18% in our test group of 40 accounts. Without it, the second call reads as a first call and debtors treat it as noise.
Dispute detection and escalation: the agent responses that flag a problem account and route it to a human
Dispute detection is where AR calling programmes fail without deliberate design. Build detection keyed on two categories:
Explicit signals: "dispute", "incorrect", "wrong amount", "credit note", "never received", "not authorised"
Implicit signals: "I'll need to speak to someone", "let me check with accounts", "I'll call you back on this"
When any of these fire, the agent exits the payment-request branch, acknowledges, collects a brief description, and ends the call. The transcript goes to the CRM and the invoice is flagged as disputed in Xero or QuickBooks, pausing the sequence automatically. The case routes to a credit controller within one business day.
Do not attempt to overcome a dispute objection. That is the fastest route to an Ofcom complaint and a permanently damaged client relationship. Our voice agent transfer-to-human guide covers the transfer mechanics — disputed calls without dead air or dropped context.
Accounting system integration: Xero, QuickBooks, and Sage as the trigger and write-back layer
The voice agent is downstream of the accounting system. The trigger logic lives in a webhook handler — not a daily cron that polls the API — to keep latency under 60 seconds between "invoice becomes overdue" and "call queued".
Here is a minimal Xero webhook handler in Node that queues a Retell call:
// xero-overdue-handler.js
app.post('/webhooks/xero', async (req, res) => {
for (const event of req.body.events || []) {
if (event.eventType !== 'UPDATE' || event.resourceType !== 'INVOICE') continue;
const { body } = await xeroClient.accountingApi.getInvoice(
event.tenantId, event.resourceId
);
const inv = body.invoices[0];
if (inv.status !== 'AUTHORISED' || inv.amountDue <= 0) continue;
const daysOverdue = Math.floor(
(Date.now() - new Date(inv.dueDate)) / 86_400_000
);
if (![7, 21, 45].includes(daysOverdue)) continue;
await retellClient.call.createPhoneCall({
from_number: process.env.RETELL_FROM_NUMBER,
to_number: inv.contact.phones?.[0]?.phoneNumber,
agent_id: process.env.RETELL_AR_AGENT_ID,
metadata: {
invoice_ref: inv.invoiceNumber,
amount_due: inv.amountDue,
due_date: inv.dueDate,
contact_name: inv.contact.name,
days_overdue: daysOverdue,
call_stage: daysOverdue === 7 ? 'reminder' : daysOverdue === 21 ? 'commitment' : 'formal'
}
});
}
res.sendStatus(200);
});
QuickBooks Online uses its Webhooks API with the Invoice entity. Filter on Balance > 0 and calculate days since DueDate. Sage Intacct supports webhooks via its Integration Services layer; Sage 50 Cloud requires polling.
The write-back step matters as much as the trigger. A commitment date should update a CRM field so the credit controller does not duplicate the call. A dispute outcome should pause the sequence immediately.
See our invoice data extraction pipeline and invoice OCR case study for how we handle structured invoice data before it reaches the accounting system.
UK regulatory constraints on automated payment chasing: FCA consumer credit rules and what applies to B2B
The most common question from finance directors: is this legal?
For B2B trade debt: yes, with sensible design. The FCA's Consumer Credit sourcebook (CONC) governs debt collection only where the debtor is an individual and the debt arose under a regulated consumer credit agreement. Calling a limited company about an unpaid trade invoice sits outside that perimeter. You are the creditor contacting your own customer.
What does apply to B2B automated calls:
Ofcom persistent misuse: Automated calls designed to cause annoyance or unnecessary anxiety are prohibited. Three calls a day to the same number would likely qualify. Our three-call sequence over 38 days does not.
PECR for voicemails: The ICO's PECR guidance on telephone marketing requires prior consent for automated marketing calls to individuals. Invoice reminders to business numbers are service messages — outside the consent requirement. Promotional content changes that.
CTPS checks: Verify corporate numbers against the Corporate Telephone Preference Service before calling. The API lookup takes about 20 minutes to automate.
Burges Salmon's 2024 analysis of AI in financial services notes that FCA scrutiny of automated customer contact is rising generally — not for B2B trade debt, but for firms that handle consumer and commercial clients on shared systems. If your call list could mix both, segregate before go-live.
Human escalation triggers: the conditions that stop the agent and hand a case to a credit controller
Define your escalation conditions before deployment. The agent cannot handle:
- Active disputes (exit immediately, as described above)
- Accounts in formal insolvency proceedings — never call a company in administration
- Requests to renegotiate terms or arrange a payment plan
- Contacts who are aggressive or clearly distressed
- Accounts flagged as strategic relationships by the sales team
The last point ends more pilot programmes than any technical issue. Build a suppression list that the sales team can update via an Airtable form or HubSpot contact property. If an account is on the list, the webhook handler skips it — no call queued.
Aggression detection: we run a sentiment classifier on the real-time transcript. If it scores below a cooperative-intent threshold, the agent offers a human callback and ends the call. The fallback is the recording reviewed by the credit controller within 24 hours of any non-standard outcome.
See our call flow design guide for voice agents for the decision-tree logic and how to represent escalation branches in Retell's call flow JSON.
Good / Bad / Ugly: three AR calling programmes and their actual DSO impact over a 90-day period
Good — IT services firm, 20 staff, £1.1M revenue: Day-7 and day-21 call sequence. Suppression list for six strategic accounts set up before go-live. Dispute-detection script reviewed by the finance director. Outcome at 90 days: DSO from 54 to 37. 61% of invoices paid within five days of first call. Three disputes detected and routed to a human. Zero client complaints.
Bad — Recruitment agency, 8 staff, £600K revenue: Day-7 call only, with a script so generic it did not name the invoice reference. The finance director wanted something "professional, not pushy." DSO moved from 48 to 45 — marginal. Debtors could not identify which invoice the call referred to. Rebuilt with specific reference and amount: DSO moved to 39 in the following 60 days. The technology was not the problem; the script was.
Ugly — Architecture practice, 14 staff, £800K revenue: No suppression list. The agent called a £120K annual account on day 7 of a £4,500 invoice. The client complained to the managing director. The agent was switched off. The invoice was three days from payment anyway. A suppression list would have taken 20 minutes to build.
The failure mode in all three cases is not the technology. It is the absence of governance around it: no one owned the suppression list, no one reviewed escalations daily, no one audited recordings weekly.
FAQ
Is an AI voice agent making payment chasing calls to UK businesses classified as debt collection under FCA rules?
B2B payment chasing by a supplier is not regulated debt collection under the FCA's Consumer Credit Act framework, which applies only where the debtor is an individual and the credit was granted under a regulated consumer credit agreement. Calling a limited company about an unpaid trade invoice sits entirely outside that scope. Follow the Ofcom Code of Practice on persistent calling and restrict calls to business hours — those are commercial best practices, not FCA obligations.
Can a voice agent legally leave a voicemail about an overdue invoice without the customer's prior consent under PECR?
PECR's consent requirement applies to automated marketing calls to individuals. An automated voicemail reminding a B2B contact of a specific overdue invoice is a service message, not marketing, and does not require prior consent. The ICO's PECR guidance draws a clear line between marketing and non-marketing automated calls. If the voicemail includes any promotional content, that portion re-engages consent rules — keep the script strictly transactional.
What Xero or QuickBooks webhook triggers are available to fire a chasing call automatically when an invoice becomes overdue?
Xero fires an Invoice.Updated event on status changes; your handler checks status == 'AUTHORISED' and calculates days past the due date. QuickBooks Online uses the Webhooks API with the Invoice entity and UPDATED event; filter on DueDate < today and Balance > 0. Neither platform fires a dedicated overdue event — the threshold logic lives in your handler. Sage Intacct supports webhooks natively; Sage 50 Cloud requires polling.
How should the agent handle a debtor who claims the invoice is disputed during the automated call?
The agent should acknowledge the dispute, stop any payment request, and collect a brief description before ending the call. The transcript is written back to the CRM and the invoice is flagged as disputed in the accounting system, pausing the automated sequence. The case routes to a human credit controller within one business day. Pushing back on a dispute during an automated call risks an Ofcom complaint — exit the conversation immediately when any dispute signal fires.