Production-grounded · rebuilt as an independent study · no institution named

Batch Authorisation

Three invoices, one supplier, and an instruction nobody can verify by looking

A finance director is about to approve 822,990 US dollars in one click. The question this page is about is not whether they are allowed to. It is what the screen owes them before they do — and whether it owes them the same thing when the instruction arrived in a voice and a face that were generated.

Scope The artefact is an independent study; the problem was not hypothetical Drawn from real corporate-banking interface work Thresholds are illustrative No bank, client or vendor named Sourced figures are separated from unsourceable ones What this can't tell you →

Three ways of being sure it is really them All three now cheap to fake

Before the screen below matters, one assumption has to go. Corporate payment controls were built around a person who can tell whether an instruction is genuine. That person no longer exists.

A site you recognise

A lookalike domain carrying a pixel-accurate copy of a real financial platform. Deposits work. Withdrawals never do. The interface is not the expensive part of this attack, it is the free part — and the harder the original works at looking trustworthy, the better the copy looks. What cannot be copied is the account the money lands in.

A face you know

In 2024 a finance employee at the engineering firm Arup joined a video call with colleagues he recognised, including the group's chief financial officer. Every other participant was synthetic. Fifteen transfers followed, totalling around 25 million US dollars. Sourced below.

A voice you trust

A cloned voice, assembled from public recordings, asks the account holder to read out the code that has just arrived by text. The code is the defect: a one-time password is a shared secret a person can say out loud, which makes it something that can be talked out of them.

Three different senses, one conclusion: recognition has stopped being evidence. Everything below assumes the person at the screen has already been convinced. The controls that survive that assumption are the ones that never asked whether the instruction looked genuine — they asked what shape the money was moving in.

The payment run Editable

Three invoices from one construction supplier, sitting in the queue on the same value date. The bank applies two thresholds: above 3,000 USD a payment attracts elevated authentication, above 500,000 USD it attracts enhanced authentication. Change any amount, change a payee, add a line — the chain below moves with it.

Invoice Payee Amount (USD) Alone In this batch
Batch total
Authentication tier applied
The rule this screen enforces, written out
tier(batch) = max( tier(sum of lines), max over lines of tier(line) )

A batch inherits the higher of two tiers: the one its total would attract, and the highest one any single constituent line would attract on its own. The second half of that expression is the part that matters. Without it, a batch is a place to put things — and the first thing anyone would put there is a payment they would rather nobody looked at twice.

The consequence runs the opposite way to how batching is usually sold. In the worked example the freight line is 2,990 USD, ten dollars under the elevated threshold. On its own it clears at the standard tier with two approvals. Folded into the batch it is pulled up to enhanced along with everything else. That is not a side effect to be smoothed over; it is the reason the batch is defensible, and the screen says so by name.

Eligibility is separate from tiering. Lines may only be batched when they share a payee, a currency and a value date. A batch that mixes payees is not a batch, it is cover.

What it costs, both ways

The same three invoices, submitted separately and submitted as one batch. The comparison people expect is fewer approvals. The comparison that is actually true is fewer submissions, and a higher bar on the smallest line.

Sent separately

Sent as one batch

Why the step labels are what they are
The chain is drawn from the approval routing used in corporate treasury: a request is raised, reviewed, endorsed by a budget owner, checked by finance, signed off, and audited. Not every tier walks the whole chain — the standard tier stops after review, the elevated tier stops after finance, and only the enhanced tier runs all six.

The labels are illustrative and the specific routing differs by institution. What does not differ is the shape of the problem: each additional gate is a person who must prove, on a bound device, that they are themselves — and each of those people takes holidays. That is the part of the design with no substitute, and it is dealt with in the next section rather than here.

The same rule, pointed at time Editable

The video call was flawless. Fifteen transfers were not. Split an instruction into pieces that each sit under a per-transaction threshold and every piece clears — unless the threshold is also computed across a window.

It is the expression from the batch above with one word changed:

The rule, both scopes side by side
tier(batch)  = max( tier(sum over lines), max over lines of tier(line) )
tier(window) = max( tier(sum over window), tier(this transfer) )

Same shape, different scope. One aggregates across a batch, the other across a rolling period for the same initiator and the same beneficiary. A control that only ever looks at one payment at a time is not a control against anybody patient enough to send two.
Standard Elevated Enhanced Where the window rule first raises the tier

Whether the payee is who you think Editable

Every attack on this page ends in the same place: money reaching a beneficiary the payer did not intend. Two live schemes check the name on the receiving account against the name the payer typed — on the rails they cover.

What the check is, and where it stops
In the United Kingdom this is Confirmation of Payee, an account name-checking service that has run since 2020 and now carries more than two million checks a day across 300-plus participating organisations. In the euro area the equivalent obligation, Verification of Payee, applies from 9 October 2025 under the Instant Payments Regulation, must be offered to the payer at no charge, and returns its result before the payment is initiated.

Close match is where this control does its worst work. An account opened in a deliberately adjacent name returns a soft warning on a screen the payer has already decided to trust. The interface can say that the two names differ. It cannot say which of them is right — and a warning that also fires on ordinary, legitimate payments is a warning people learn to clear without reading.

The second limit is coverage. The check exists on the rails the regulation names. Move a payment onto one it does not cover and every protection in this section is simply absent, which is a fair description of how routing gets chosen by the people this page is about.

What the supplier receives

Batching is a decision made by the payer that lands on the payee's ledger. One credit of 822,990 against three open invoices is an unallocatable payment — which is a worse outcome for the supplier than three separate credits would have been. ISO 20022 structured remittance information is what makes the trade even, and the failure state below is the one worth designing for.



      
Supplier's accounts-receivable ledger after the credit lands
The two routes, and why the choice is not obvious
Route one — remittance inside the payment. The customer credit transfer initiation message carries a remittance information block, and the structured form contains a repeating referred-document element. One payment can therefore name all three invoices, their numbers and their amounts. This is the cleanest arrangement, and the one that fails most often in practice, because intermediate channels impose field-length limits and shorten what they cannot carry. Truncation does not announce itself: the payment still settles.

Route two — standalone remittance advice. ISO 20022 defines remittance messages that travel outside the payment, with the payment carrying only an identifier that points at them — remt.001 for the advice itself and remt.002 for advising where the advice can be found. This removes the length limit. Its cost is that the money and the explanation now travel on separate paths and may not arrive together, which turns a formatting problem into a timing problem.

Neither route is free. A design that presents batching as a straightforward efficiency without showing the supplier's side of it has moved the work rather than removed it.

The part with no substitute: six gates, one bound device

The friction in corporate banking is usually described as too many fields. That is the symptom. The defect is that the credential is bound to a device rather than to a role, in a process that requires six different people.

What a user is asked for today

  1. Company identifier
  2. Company number
  3. User identifier
  4. Password
  5. Banking number
  6. Banking password
  7. Second factor, bound to one registered device

Three of these — company identifier, company number, banking number — are lookup keys, not secrets. They are asked for at every login because the system resolves who you are and which organisation you act for in the same transaction.

What the process actually needs

  1. Prove identity once, at enrolment, to the strength the regulator requires
  2. Bind that identity to a credential that can be held on more than one device
  3. At each of the six gates, prove intent — a signature over a hash of the exact payment being approved

Separating identity from intent is what lets biometrics finally do useful work here. A fingerprint is a poor answer to which company do you act for and an excellent answer to is this the payment you meant. Signing over the payload rather than logging into a session is the difference between what-you-see-is-what-you-sign and a session someone else can steer.

The failure this produces is not delay, it is a false audit trail

A six-gate chain on device-bound credentials has no legitimate path for absence. Somebody is travelling, somebody has a new phone, somebody is on leave at quarter end and the payment run cannot wait. What happens next is not that the payment waits. What happens is that a credential gets shared, and the system records six distinct approvals that were not made by six distinct people.

That is worse than a slow process. A slow process is visible. A control that has been quietly delegated produces a log that looks perfect and means nothing — and the log is the artefact everything downstream trusts. A design that adds a seventh gate to a chain people are already working around has made the record less true, not the bank safer.

What is actually documented Sourced

Three published figures survive checking. They are stated here with enough provenance to be disagreed with.

Corporate client onboarding can take up to 100 days

McKinsey reports that the average onboarding process for a new corporate client can take up to 100 days, drawn from quantitative surveys and interviews with two dozen global banks.

McKinsey & Company, Winning corporate clients with great onboarding, 5 October 2022. Source. Read as an upper bound on an average, not a typical duration.

94% of audited operational spreadsheets contained at least one error

Panko's synthesis of field audits conducted between 1995 and 2004 found that 94% of the 88 spreadsheets examined contained at least one error, with a mean cell error rate of 5.2% across the 43 for which it was reported.

Raymond R. Panko, What We Know About Spreadsheet Errors. The figure is at least one error, not serious error, and the audited sample is small and old — which is exactly why the number is quoted at 94 rather than rounded to a friendlier 90.

The anti-money-laundering regime intercepts an indicative 0.05% of criminal proceeds

Pol's peer-reviewed assessment puts a defensible indicative mid-point at about 0.05% of criminal funds intercepted, against private-sector compliance spending of roughly 300 billion US dollars a year and around 3 billion recovered — compliance costs many tens to hundreds of times greater than the amounts recovered.

Ronald F. Pol, Anti-money laundering: The world's least effective policy experiment? Together, we can fix it, Policy Design and Practice, vol. 3 no. 1, 2020. DOI. This is the figure that makes the credential argument above matter: the apparatus generating the friction is not, on this evidence, catching much.

Fifteen transfers, around 25 million US dollars, after a video call where everybody else was synthetic

In 2024 an employee in the Hong Kong finance function of the engineering firm Arup took part in a video conference with people he recognised, including the group's chief financial officer, and was instructed to move funds. Every other participant on the call was AI-generated. Fifteen transfers followed, reported at around 200 million Hong Kong dollars, roughly 25 million US dollars. Arup confirmed the incident publicly and stated that fake voices and images were used.

CNN Business, Arup revealed as victim of $25 million deepfake scam involving Hong Kong employee, 16 May 2024. Source. Read as a reported incident with figures given by the press and confirmed in outline by the firm, not as an audited forensic account. It is cited here for one reason: it is the clearest public case in which every human verification method available to the person at the screen returned a false positive at once.

Confirmation of Payee has run in the UK since 2020 and now carries over two million checks a day

An account name-checking service for UK domestic payments, run as an API-based peer-to-peer service with no central infrastructure, available to regulated payment service providers holding accounts addressable by sort code and account number. More than 300 organisations participate. The Payment Systems Regulator mandated an expansion of coverage in 2024.

Pay.UK, Confirmation of Payee. Source. Volume and participant counts are as published by the scheme operator.

Verification of Payee has applied in the euro area since 9 October 2025

Article 5c of the Instant Payments Regulation requires payment service providers to offer the payer a service verifying the payee to whom the payer intends to send a credit transfer. It must be provided at no cost to the payer, applies to standard as well as instant credit transfers, and returns its result before the payment is initiated.

European Central Bank, Instant Payments Regulation. Source. The obligation date given here is the euro-area application date for the verification requirement.

An authentication code bound to the amount and the payee, not to the session

The technical standards under the second Payment Services Directive require, at Article 5, that where a payer initiates an electronic payment the authentication code is specific to the amount and the payee, and that the payer is made aware of both. This is the regulatory anchor under the credential argument on this page: a code that authenticates a person can be read aloud to somebody doing something else, and a code bound to a payment cannot.

Commission Delegated Regulation (EU) 2018/389 of 27 November 2017, regulatory technical standards for strong customer authentication, Article 5. Instrument. Stated honestly: the instrument is linked, but the article text could not be retrieved to quote directly, so the requirement is described here from secondary legal commentary rather than reproduced from the primary text. Treat the description as accurate in substance and unverified in wording.

Numbers I could not source Unsourceable

These appeared in my own first draft. None of them survived a search for a primary source, so they are listed here rather than deleted. Removing an unsourced number is not the same as being honest about it — and a reader who has seen these figures elsewhere deserves to know where the trail stops.

“85–95% of AML alerts are false positives”

Traceable only to vendor marketing material from companies selling alert-reduction software. No regulator publication or peer-reviewed study found stating this range. The incentive of the only available source is to make the number large.

“51% of buyers cite procurement friction / 48% cite accounts payable”

Traces to vendor-commissioned surveys with undisclosed sampling. Not independently reproducible.

“90% of banks are blocked by legacy IT”

The closest figure I could find is 55%, in trade-press coverage rather than a primary study. The 90 appears to be a repeated rounding of something else.

“Settlement in 27 seconds / 3.2 seconds”

Cut entirely, along with the distributed-ledger section it belonged to. Not because the claim is impossible, but because neither number traces to a primary source, and because the section argued the wrong thing: a payment run of this kind fails on counterparty risk, custody and legal structure long before it fails on seconds. Speed was never the binding constraint here.

What this can't tell you

The problem is real; the artefact is not the original Not fixable

The observations behind it come from real production work on institutional banking software under confidentiality. Nothing proprietary appears here, no client is identified, and the thresholds, payee, invoice numbers and routing labels are illustrative. That is a real limit on what you can verify, and it is the reason this is published as an independent study rather than a named-institution case study.

The thresholds are made up By design

3,000 and 500,000 are chosen so the arithmetic is legible, not because any institution uses them. The max() rule is the transferable part; the specific numbers are not.

Nothing here has been tested with treasury users Fixable

No usability testing, no error-rate measurement, no comparison against an existing approval screen. The claim that showing constituent lines improves approval quality is an argument, not a finding.

The remittance behaviour is modelled, not observed Fixable

Truncation is modelled at a common field length to make the failure visible. Real behaviour depends on the specific channel, scheme and correspondent chain, and would need to be measured per corridor rather than assumed.

Escalation is not prevention Not fixable

The window rule raises the authentication tier; it does not stop the money. On the default settings the first transfer still leaves before the control engages. What the design buys is a ceiling on the loss and a routing decision the impersonation cannot follow, and it is worth being plain that those are different things from stopping the fraud.

A patient sequence defeats the window, and the page shows it doing so Inherent

Set the interval wider than the window and nothing accumulates: every transfer is judged alone again and the rule never fires. A longer window catches the slower sequence at the cost of holding ordinary business at a high tier for longer. That trade-off is the whole design decision and there is no setting that escapes it.

Name matching raises the cost of the attack, it does not remove it Inherent

An account opened in a deliberately adjacent name returns close match, which is the same answer thousands of legitimate payments produce every day. A warning that fires on honest traffic is a warning people are trained by experience to clear. The check is worth having and it is not a gate.

The failure that makes all of this possible is in another institution Not fixable here

Every scenario on this page ends in an account that somebody opened and somebody onboarded. Nothing on the paying side reaches that. This page argues about the payer's screen because that is the surface a designer controls, not because it is where the control belongs.

No attempt is made to detect synthetic media By design

Detection is an arms race against a generator that improves faster than the detector, and losing it once is enough. Nothing here inspects a face, a voice or a page for signs of being fake. The argument is that the payment leaves a shape that is checkable with arithmetic even when the impersonation is perfect — and that if the arithmetic is the defence, it should be stated as the defence rather than added quietly behind a detector that will eventually be beaten.

It does not address regulatory approval Not fixable here

Whether a supervisor accepts aggregate-level authentication at all is a legal question with a jurisdiction-specific answer. This page argues about what the interface must show once the rule exists; it does not argue that any particular regulator would permit the rule.