Reference🧭 Global overviewsIntermediate⏱ 18 min read

📊 Reconciliation and reporting around the world

Statement formats market by market (camt.053, MT940, BAI2, CNAB 240, Zengin, CFONB), acquirer files, the reconciliation key for each rail, value date gaps, mobile money reconciliation, and what automation can realistically handle

Five statement families, five banking histories

A bank statement is the document in which a bank reports the transactions posted to an account, along with the opening and closing balances. Its structure varies by country, because each national banking tradition developed its own. A group operating in six markets therefore receives the same document in six different forms. European banks deliver ISO 20022 XML, US banks a fixed-position file, Brazilian banks 240-character records, and Japanese banks a 120-character file. All of them describe the same money movements, using different conventions for fields, encoding, and record layout.

The format determines what a matching engine can do with the data it receives. Four factors set that ceiling: the length of the reference carried, the presence of a standardized transaction code, a separate booking date and value date, and access to the detail of transactions grouped under a single aggregated entry. Each one is a piece of information the file either carries or does not. A format that is weak on these four points caps the auto-match rate, because no downstream processing can rebuild data that is missing at the source.

FormatMain region of useStandards bodyStructureReference carried
`camt.053` (ISO 20022 XML)SEPA area, Switzerland, UK, developed Asia, subsidiaries of global groupsISO 20022; CGI-MP implementation guidelines, coordinated by SwiftHierarchical XML: Stmt → Ntry → TxDtls35-character EndToEndId, structured remittance information
`MT940` / MT942 / MT950Swift network, plus file delivery worldwideSwiftTags :20: to :86:, compact text16 characters in field :61:
BAI2US, CanadaBank Administration Institute (1980, then 1987); rights transferred to Accredited Standards Committee X9 in 2008Records 01/02/03/16/49/98/99, comma-delimited fieldsFree-text field, not standardized
CNAB 240, segment EBrazilFEBRABAN240-position records, one segment per productFixed-position fields; boleto Nosso Número, Pix txid
Zengin formatJapanJapanese Bankers AssociationFour 120-character record types: header, data, trailer, end of filePayer name, in katakana
CFONB 120FranceComité français d'organisation et de normalisation bancaires (French banking standards body)120-character records, AFB transaction codesShort description, extended through type 05 records
The five families of statement formats and what they carry
1987
release of BAI2, replacing the 1980 BAI1
Bank Administration Institute; copyright transferred to ASC X9 in 2008
Nov. 22, 2025
end of MT / ISO 20022 coexistence for cross-border payments
Swift, CBPR+ program
July 14, 2025
“big bang” migration of the Fedwire Funds Service to ISO 20022
Federal Reserve Financial Services, 2025
16
characters of customer reference in the `:61:` field of an MT940
Swift, MT category 9 standards
🔑
The statement format is an architecture constraint, not an integration detail
The format the bank delivers is the first design decision in a reconciliation pipeline, and it limits what every later step can extract. Negotiate it when the account is opened and write it into the service agreement, not six months later when unmatched items have piled up. When a bank offers only MT940 in a given market, references have to be rebuilt from the free-text description with regular expressions. That works in practice. It is not auditable, though, because the match depends on a text extraction rule rather than an identifier carried by the transaction.

camt.053: convergence, and what it leaves unsolved

The camt (Cash Management) family covers the ISO 20022 messages used for account reporting. Three of them handle most use cases, each for a different need: tracking the intraday cash position, closing the accounting day, or itemizing the transactions behind an aggregated entry.

  • `camt.052`, Bank to Customer Account Report: the intraday report, sent several times a day, with no guarantee of completeness. It supports cash management, not the close.
  • `camt.053`, Bank to Customer Statement: the official end-of-day statement, including opening and closing balances. It is the document of record for reconciliation.
  • `camt.054`, Bank to Customer Debit/Credit Notification: the transaction advice, often the only message that itemizes a batch shown as a single entry on the statement.

Several versions of the message coexist, and moving from one to another changes the tree structure that parsers expect, breaking integrations that did not plan for it. Older European deployments run on camt.053.001.02, while newer offerings deliver .001.08 and later, aligned with the recommendations of the CGI-MP group (Common Global Implementation – Market Practice). Its Working Group 2 publishes camt best practices through Swift. The tree structures are similar across versions but not identical, and the same version can be implemented differently from one bank to the next. Parser testing must therefore cover each version and bank combination you actually receive, not just compliance with the standard.

One camt.053 entry: the four fields that drive reconciliation
<Ntry>                                        <!-- one statement entry -->
  <Amt Ccy="EUR">14208.55</Amt>
  <CdtDbtInd>CRDT</CdtDbtInd>
  <BookgDt><Dt>2026-08-06</Dt></BookgDt>      <!-- booking date -->
  <ValDt><Dt>2026-08-07</Dt></ValDt>          <!-- value date: the one that matters for treasury -->
  <AcctSvcrRef>BNK2608061147</AcctSvcrRef>    <!-- bank reference -->
  <BkTxCd>
    <Domn><Cd>PMNT</Cd>                       <!-- domain: payments -->
      <Fmly><Cd>RCDT</Cd>                     <!-- family: received credit -->
        <SubFmlyCd>ESCT</SubFmlyCd></Fmly>    <!-- subfamily: SEPA credit transfer -->
    </Domn>
  </BkTxCd>
  <NtryDtls><TxDtls>                          <!-- detail under the aggregated entry -->
    <Refs><EndToEndId>PAYOUT-2026-08-06-000871</EndToEndId></Refs>
    <RmtInf><Ustrd>PSP BATCH 000871</Ustrd></RmtInf>
  </TxDtls></NtryDtls>
</Ntry>
March 20, 2023
T2 and the start of CBPR+ coexistence
The Eurosystem replaces TARGET2 with T2 on ISO 20022, the same weekend Swift opens MT/MX coexistence for cross-border payments. The original schedule had targeted November 2022.
July 14, 2025
Fedwire switches over in one go
The Federal Reserve migrates the Fedwire Funds Service to ISO 20022 with no coexistence period. The proprietary FAIM format is retired; every high-value US dollar integration now uses pacs.008 and pacs.009.
November 22, 2025
End of coexistence for payment instructions
MT 103 and MT 202 are retired from the FIN service for cross-border payments. Twenty years after the standard was adopted, ISO 20022 becomes the only language of correspondent banking.
After November 2025
MT statements live on
The end of coexistence applied to instructions, not reporting. MT 940, MT 942, and MT 950 are still available on FIN, and many banks still deliver them as files. Their retirement follows a separate timeline that has not yet been set.
⚠️
Cascading truncation survives the migration
A credit transfer received as a data-rich pacs.008 can still be reported in a stripped-down MT940, because banks apply MX-to-MT mapping tables with documented data loss. A 35-character reference then arrives cut to 16 characters, and matching fails as soon as several transactions share the same prefix. Receiving camt messages alone does not guarantee rich data. What matters is what the bank actually populates in RmtInf and EndToEndId, and that requirement belongs in the service agreement.

The formats that won't migrate: BAI2, CNAB, Zengin

BAI2 (Cash Management Balance Reporting Specifications, Version 2) is the format US banks use to report account balances and transactions to corporate clients. It remains the most widely used bank-to-corporate statement format in the US, outside Europe's move to ISO 20022. It descends from a lockbox standard published in 1971. BAI1 came in 1980, the current version in 1987, and loan transaction codes in 2001. Ownership then changed when the Bank Administration Institute transferred the rights to the Accredited Standards Committee X9 in 2008. The record structure published in 1987 is still the one in use today.

A BAI2 file: hierarchy and type codes
01,SENDER,RECEIVER,260807,0730,1,,,2/      file header
02,RECEIVER,BANKID,1,260806,,USD,2/        group header (one date, one currency)
03,0001234567,USD,010,15250000,,/          account + opening balance (code 010), in cents
88,015,17310000,,/                         continuation: closing ledger balance (code 015)
88,045,16980000,,/                         continuation: closing available balance (code 045)
16,275,2500000,0,DEP0099,,VIREMENT PSP/    code in the 100-399 range = credit
16,475,1440000,0,CHK0451,,PAIEMENT FRNS/   code in the 400-699 range = debit (475 = check paid)
49,32050000,5/                             account total + record count
98,32050000,1,7/                           group total
99,32050000,1,9/                           file total

Reading a BAI2 file depends on two conventions, and ignoring them causes most integration errors. First, amounts are expressed in the currency's minor units, with no decimal separator. Second, the direction of a transaction comes from the range its type code falls in, not from the code on its own. Codes 010 to 099 carry balances, on record 03. Codes 100 to 399 are credits, 400 to 699 are debits, and codes above 900 are defined by each bank. Software can therefore rely on the range to determine direction, even though the precise meaning of a code varies from bank to bank.

Brazil has its own family of formats. FEBRABAN publishes the CNAB 240 Layout Padrão, in which statements for bank reconciliation are exchanged through segment E, which carries an entry category for each transaction. CNAB 400, a legacy of the 1980s, is still used by many billers for boleto submission and return files. A Brazilian integration therefore handles two generations of files at once, plus the business key that links them. That key is the Nosso Número, the boleto identifier assigned by the bank. In Japan, the Japanese Bankers Association's Zengin format uses four 120-character record types, identified by their first character. It carries no structured reference. The payer's only identifier is the name they typed, in katakana.

FormatStrengthsGapsCommon workaround
camt.053Full end-to-end reference, standardized Bank Transaction Code values, detail under the aggregated batchNothing structural; quality depends on what the bank populatesMake populating RmtInf and EndToEndId part of the service agreement
MT940Balances, booking and value dates, basic transaction codeAny reference longer than 16 characters; the year of the MMDD booking dateExtract the reference from the :86: description with regular expressions
BAI2Separate ledger and available balances, transaction direction by code rangeStandardized customer reference, detailed semantics consistent across banksVirtual accounts, or a lockbox service that carries the customer ID
CNAB 240 segment EEntry category, amounts, dates, consistency with submission filesLong free-text reference fieldBoleto Nosso Número, Pix txid, both set before collection
ZenginStable structure, clearly delimited batchesAny structured reference; the typed name is the only keyDedicated deposit account for each customer, opened in bulk at the bank
What each format adds to, and takes away from, reconciliation
ℹ️
A rich format does not guarantee rich data
A bank can deliver a fully compliant camt.053 and leave RmtInf empty on 80% of entries. The file passes XML schema validation, but those entries carry nothing to match on, so reconciliation stays manual. Before signing the service agreement, check a real production sample. It should cover the cases typical of your business, including an acquirer batch, a returned direct debit, an incoming international transfer, and an FX transaction. Schema compliance takes 10 minutes to check with a validation tool, but the actual field fill rate shows up only in files produced in real conditions.

Acquirer files: why the net amount is what it is

An acquirer file itemizes the cleared transactions and the resulting amounts, on behalf of the card network or acquirer that produces it. These files follow scheme- and acquirer-specific formats that have nothing in common with bank statement formats. They carry the breakdown that a bank statement lacks, since the statement shows the amount that reached the account without saying what it is made of. Visa has historically cleared in Base II files, organized by transaction codes. A sale is a TC05, a credit a TC06. Mastercard uses IPM (Integrated Product Messages), in which a 1240 message carries a first presentment, a 1442 a chargeback, and a 1740 fees.

Settlement itself appears in a separate set of reports. VSS (VisaNet Settlement Service) reports are delivered as machine-readable TC46 records; TC47 is the human-readable version. The VSS-110 report contains the day's settlement summary, which an acquirer uses to reconcile its position. Merchants have no access to these files. They receive a settlement report from their PSP, which is derived from them. Reconciliation then means checking that report, line by line, against the credit received in the bank account.

From sale to net payout: where the gap comes from
Sales platform
Creates an order and initiates a payment
Keys created here: order number, PSP reference. These are the only ones the merchant controls.
Acquirer
Presents the transaction to the scheme
ARN assigned; TC05 record at Visa, 1240 message at Mastercard.
Scheme
Calculates net positions and publishes its reports
VSS-110 and TC46 records at Visa; IPM files and settlement advices at Mastercard.
Acquirer or PSP
Builds the payout batch
Captured sales, minus refunds, minus fees, minus chargebacks, minus reserve, plus or minus FX.
Merchant's bank
Credits a net amount
One line on the statement, one description, one value date, and nothing linking that amount to the thousands of sales behind it.
Batch lineSignSource of truthWhat breaks reconciliation
Captured sales+PSP settlement reportA partial capture creates a difference with the authorized amount, never with the amount sold
Refunds−PSP settlement reportA refund of a sale from a prior fiscal year lands in today's batch
Fees−PSP report, then billing statementDeducted at source or invoiced separately: two accounting treatments, two dates
Returns and chargebacks−Dispute fileThe entry arrives weeks after the sale, without the original order reference
Rolling reserve− then +Acquirer agreementThe release can be identified only with the batch detail; without it, it looks like an unexplained deposit
Currency exchange±PSP settlement reportThe rate applied to the batch is not the rate on the day of sale: the difference is an FX gain or loss, not an error
Net payout=Bank statementThe only number accounting sees by default
The payout batch equation, and the trap in each line
⚠️
An incoming transfer is not supporting evidence
A credit of €14,208.55 on the statement proves that money reached the account, but not what it is made of. It becomes supporting evidence only once it is matched to the batch that explains it, and that batch is in turn matched to its underlying transactions. The chain therefore has three levels of information. They come from three sources and are linked by two joins. A tax audit or a financial audit examines that full chain, not just the balance. Keep settlement reports as you would invoices: they are the only proof of the breakdown, and PSPs purge them from their dashboards after a few months.

The reconciliation key, rail by rail

The reconciliation key is the identifier that travels with a transaction from initiation to its entry on the statement and links the two records. Each rail produces one, and only one, that survives the whole journey. Its format, who creates it, and where it first appears vary from one system to another. The auto-match rate depends on that key being present in every source being reconciled, so identifying it is the first step in designing a payment acceptance setup.

RailTechnical keyFormatCreated byWhere it appears
Card, clearingARN (Acquirer Reference Number)23 digitsThe acquirer, at presentmentSettlement report, dispute file, issuer lookup
Card, authorizationRRN (DE37) and authorization code (DE38)12 and 6 charactersAcquirer and issuerAuthorization log, dispute case file
SEPA credit transfer`EndToEndId`35 charactersThe payerpain.001, pacs.008, then camt.053
Swift cross-borderUETR36-character UUIDThe issuing bankpacs messages, gpi end-to-end tracking
ACH (US)Trace number15 digitsThe originating bank (ODFI)ACH file, statement, return files
Pix (Brazil)`EndToEndId`, then txid32 characters; txid of 26 to 35 characters for a dynamic QR codeThe payer's PSP for the EndToEndId; the payee for the txidPix API, webhook, bank statement
SPEI (Mexico)Clave de rastreo, then CEPString set by the sending bank; the CEP is a signed documentThe sending bank; the CEP is issued by Banco de MéxicoBanxico CEP portal, as a PDF or sealed XML
UPI (India)RRN12 digitsNPCINPCI settlement files, payer app, merchant portal
M-PESA (Kenya)TransID and BillRefNumberShort alphanumeric code; reference typed by the customerSafaricom for the TransID; the customer for the referenceC2B callback, merchant portal statement
End-to-end identifiers, by payment system

Brazil's Pix uses two separate identifiers. The `EndToEndId` is a 32-character code generated by the payer's institution at initiation, built as E + the participant's ISPB + a timestamp + a sequence number. It is unique within the SPI and follows the transaction end to end, which makes it the natural deduplication key. The `txid`, by contrast, is chosen by the payee and returned with the payment. The Banco Central's rulebook explicitly assigns it the job of merchant-side reconciliation. The payee sets its own reference before collection and gets it back unchanged in the incoming message, with no manual rekeying.

Mexico relies on centralized proof of settlement rather than a reference carried by the merchant. For every SPEI transfer that the receiving bank has confirmed as credited, Banco de México issues a Comprobante Electrónico de Pago (CEP). The document shows the clave de rastreo, the banks, the accounts, and a digital seal, and can be downloaded as a PDF or as verifiable XML. High-volume businesses automate the download and check each reported credit against its CEP. The service is public. Most other markets have nothing like it.

🔑
Choose the key before you collect, never after
Three rules about the key shape the design of a payment acceptance pipeline. First, the key should be generated by the merchant whenever the rail allows it, as with the SEPA EndToEndId, the Pix txid, or the boleto Nosso Número. Rebuilding it after the fact from statement descriptions and amounts costs 10 times more. Second, it must be stored on receipt, before any business processing, and used as the idempotency key: a replayed webhook or a re-imported file must never create a second payment. Third, it must survive the reporting format. When the statement truncates it, a parallel channel such as camt.054 or the PSP's API delivers it in full.

Three dates per transaction, and none of them line up

Every transaction carries at least three dates. The transaction date is when the sale or purchase took place. The booking date is when the entry is posted to the account. The value date drives interest calculations and the cash actually available. Some markets add a fourth, the funds availability date, which is distinct from the other three. Reconciling on a different date from the one the other source uses creates a daily discrepancy. The next day's opposite discrepancy offsets it but never eliminates it.

Market or railRulePractical effectSource
European Economic Area, payment accountThe value date of a credit can be no later than the business day on which the provider receives the fundsFloat on incoming credits is ruled out by lawDirective (EU) 2015/2366 (PSD2), Art. 87
US, check depositAt least $275 available the next business day, a threshold raised from $225 to $275The available balance and the ledger balance diverge by design, hence the two balances in BAI2Regulation CC (12 CFR 229), thresholds effective July 1, 2025
Card, acquirer payoutT+1 to T+3 depending on the acquirer, the network, and weekend cutoffsFriday-to-Sunday sales arrive bundled into a single payoutAcquirer contracts; scheme settlement calendars
Brazil, card receivablesCredit at maturity rather than on demand, with optional early payment and mandatory registration of the receivableThe receivable exists, and can be sold, before it is collected: the agenda de recebíveis becomes a reconciliation source in its own rightResolução CMN nº 4.734 and Circular BCB nº 3.952, June 27, 2019
UPI, IndiaCycles 1 to 10 reserved for approved transactions; disputes settle in separate cyclesA single business day settles as several positions, at different timesNPCI, UPI OC Circular No. 222/A, FY 2025–26
Pix, BrazilContinuous settlement in the SPI, 24 hours a day, every dayThe business-day statement combines overnight, weekend, and holiday flowsBanco Central do Brasil, Pix regulations
Value date and funds availability rules, by market and rail
Friday, 6:40 p.m.
Sale and authorization
The funds are put on hold at the issuer. No money moves, and nothing appears on the statement.
Friday, 11:00 p.m.
Batch cutoff
The PSP closes the day's batch. Later sales roll into the next batch, and therefore get a different payout date.
Saturday and Sunday
The scheme clears, but banks don't settle
Interbank settlement calendars follow business days, so positions build up.
Monday
Interbank settlement
Three days of sales end up in a single net position, with a single value date.
Monday or Tuesday
Merchant account credited
One line on the statement, for a net amount with nothing to tie it to the thousands of weekend sales.

In Brazil, receivables from payment arrangements, meaning what the acquirer owes the merchant before the payment date, are registered with entities licensed by the Banco Central. CERC, Núclea, B3, TAG, and CRDC are linked by an interoperability agreement published by the central bank. Brazilian merchants therefore have an official, legally enforceable record of their agenda de recebíveis (receivables schedule) that is independent of their acquirer. Reconciliation relies on this registry as much as on the bank statement, and no other large market has an equivalent.

⚠️
A 24/7 rail vs. a business-day statement
Pix, UPI, SPEI, PromptPay, DuitNow, and NIBSS Instant Payment settle around the clock, including weekends and public holidays, while statements are still divided into accounting days. A transaction received on Sunday at 23:55 local time may show up on Monday's statement or on Sunday's, depending on the bank's convention. The file's time zone is not always the same as the sales system's. Set the reference time zone, document it, and test it before going live. Leaving it undefined is the most common cause of one-day discrepancies. Those discrepancies clear on their own, and their sheer number hides the persistent ones, which do not.

Reconciling mobile money

Mobile money is a payment and transfer service built on an e-money account held with an operator and used from a mobile phone. It is the dominant rail in several dozen markets, and reconciling it follows different rules from a bank account. The money in circulation is e-money issued by the operator and backed by a safeguarding account, while the agent network handles conversion to and from cash. Three ledgers therefore coexist where a bank keeps only one.

2,300M
mobile money accounts registered worldwide in 2025
GSMA, State of the Industry Report on Mobile Money 2026
593M
accounts active in the past 30 days, up 15% year over year
GSMA, State of the Industry Report on Mobile Money 2026
$2T
global transaction value in 2025, double the 2021 level
GSMA, State of the Industry Report on Mobile Money 2026
$1.4T
sub-Saharan Africa's share of that total
GSMA, State of the Industry Report on Mobile Money 2026

These networks process more transactions than many card schemes. M-PESA in Kenya, run by Safaricom since 2007, processed 46.41 billion transactions in the fiscal year ended March 31, 2026. They were worth KES 41,680 billion, across 40 million monthly active customers. The distribution of transaction sizes is unusual. Free micro-transactions reached 17.1 billion, or 58% of activity. A matching engine calibrated on European ticket sizes therefore gets vastly more lines for the same revenue, and breaks down at that volume. MTN MoMo, for its part, reports 23.3 billion fintech transactions worth $500.3 billion in fiscal 2025.

Mobile money collection relies on a payment pushed by the payer to the merchant's account. The customer approves the payment to a Paybill or Till number; the merchant does not pull the funds. The notification arrives through an HTTP callback, with a TransID generated by the operator and a BillRefNumber typed by the customer on their phone keypad. That manual entry is the main source of unmatched items: one transposed digit in an invoice number makes the payment impossible to apply, even though the funds have arrived. The merchant wallet also separates the account that receives collections from the one that funds disbursements, called the Utility Account and the Working Account at Safaricom. Reconciliation therefore covers two separate balances for the same merchant.

⌨️
The reference is typed by hand
The BillRefNumber is typed by the customer. The operational fix is to assign each customer a short account number, add a check digit, and fall back to fuzzy matching on the payer's phone number when the reference is wrong.
🔁
The callback gets replayed
Notifications are retried until acknowledged, so the same payment arrives several times. The TransID serves as the idempotency key, enforced by a unique constraint in the database, never by an application-level check alone.
🏦
Three ledgers, not one
The operator's e-money ledger, the safeguarding account at the bank, and the merchant's books move at different speeds. The float is a prudential issue as much as an accounting one. MTN Ghana reported GHS 38.4 billion of it in 2025.
🌍
Interoperability adds a key
A transfer between rival networks, or from a wallet to a bank, adds a second identifier and its own timing. MTN–Airtel corridors and wallet-to-bank gateways must be reconciled separately from on-network flows.
⚠️
An SMS confirmation is not an accounting record
Many organizations still reconcile mobile money from the SMS messages the store manager receives, or from screenshots. Such messages can be edited. Their timestamps are not legally binding, and they show neither fees nor the account balance. The records that count are the merchant portal statement supplied by the operator and the API records, kept with their TransID. Replacing SMS messages and screenshots with those two sources is the first internal control win in these markets, and it comes before any automation project.

Automating: reconciliation engine, virtual accounts, exception queue

Automating reconciliation involves two workstreams. The first makes transactions matchable upstream, through a key set before collection, a negotiated statement format, and virtual accounts. The second industrializes the handling of whatever the engine leaves unmatched. Nearly all organizations that achieve high auto-match rates fixed the source data before writing a single matching rule.

A multi-market reconciliation pipeline
Ingestion
Collects sources in their native formats
Statements (camt.053, BAI2, CNAB 240, MT940), PSP settlement reports, mobile money callbacks, dispute files. Each file is archived as received, before any processing.
Normalization
Maps everything to a single data model
Each entry carries: amount, currency, booking date, value date, direction, rail key, source, and a hash of the original file.
Reconciliation engine
Applies rules from most to least reliable
Exact key first, then batch totals, then amount and date within a tolerance. Every match records the rule that produced it.
Exception queue
Routes what is left to a named owner
Without a named owner, an item just sits there, because no team is responsible for opening it. Every item therefore carries a reason code, an age, and a due date.
Posting
Posts entries and clears suspense accounts
Gross revenue, fees as expenses, FX differences, provisions for disputes. The suspense account must net to zero.
  • Exact key matching. EndToEndId, txid, ARN, TransID, trace number. The only case where a match is proof rather than a presumption.
  • Batch matching. The bank payout against the settlement report total, then the batch broken down into transactions. Essential whenever the bank aggregates.
  • One to many. A customer transfer that pays eight invoices; it needs allocation logic, not a one-to-one match.
  • Many to one. A split payment, an order paid in two installments, or a mobile money payment topped up by a second transfer.
  • Controlled tolerance. A difference of a few units from FX conversion or rounding can be matched automatically, below a documented threshold and with logging. Without that log, the differences absorbed by the tolerance can no longer be counted after the fact, and internal control loses track of what was accepted without review.

Some rails carry no usable reference at all. Virtual accounts solve this with a banking setup rather than another matching rule. The bank assigns the merchant a range of account numbers, one per customer or contract, all linked to a single physical account. The payer sends funds to the number they were given, and the payment is applied based on the account credited, deterministically, however poor the statement format. This is the standard answer to the Zengin format in Japan, to BAI2 statements with no standardized reference, and to most Asian and African rails that route by account number.

IndicatorDefinitionReview trigger
Auto-match rateEntries matched with no human intervention as a share of the total, by country and by railAny month-over-month drop: it signals a change in format, description text, or configuration at the bank or PSP
Aging of unmatched itemsUnmatched items broken down by age bucketAny item aged over 30 days, because after that the information needed to explain it is often gone
Batch varianceDifference between the payout received in the bank account and the net amount calculated from the settlement reportA nonzero variance on the same PSP two days in a row: stop processing and go back to the source file
Statement delivery timeTimestamp when the camt.053 or equivalent is received, by bankA delay that pushes the daily close past the agreed service time
Share of entries with no usable keyLines where no rail reference is present or readableA sustained increase: open virtual accounts or renegotiate the statement format, rather than adding fuzzy rules
KPIs for running a reconciliation pipeline
🔑
What a global reconciliation has to prove
A reconciliation pipeline answers the same two questions in every market. It tracks down every unit of currency collected, and it explains the gap between the amount received in the bank and the amount sold. That explanation breaks down into fees, refunds, disputes, FX, reserves, and timing differences. Only the difficulty of producing it varies. It is low in Brazil, thanks to the txid and the receivables registry, and high wherever the statement carries nothing but a payer name in local script. Effort should therefore be sized market by market: a uniform group standard would overinvest where data is rich and underinvest where it is missing.