Chapter 1. Choosing the rail the market actually runs on.
The rail is the infrastructure that actually carries a given market's payment volume. It is determined country by country, not region by region: each of the five markets in this course has its own dominant infrastructure. Accepting payments in Africa is therefore five separate projects, not one. Kenya pays by telco wallet, Nigeria by instant interbank transfer, and Ghana by interoperable mobile money. South Africa pays by card, and WAEMU by wallet, in an open price war. The first decision in a collection project is the rail, and it comes before choosing a provider.
| Market | Rail that carries the volume | Supervisor | Connect first | Connect next |
|---|---|---|---|---|
| Kenya (KES) | M-PESA: KES 41,680 billion and 46.41 billion transactions in the fiscal year ended March 31, 2026, 40 million monthly active customers, ~89% of Kenyan mobile money (Safaricom, FY26 annual results, May 2026) | Central Bank of Kenya | An M-PESA merchant identifier (till or paybill) and the prompt pushed to the customer's phone | Cards via Kenswitch (26 member banks, ~2,500 ATMs, ~40,000 POS terminals, Kenswitch, 2026), and instant interbank transfers via PesaLink (80+ institutions, IPSL/KBA, 2025–2026) |
| Nigeria (NGN) | NIBSS Instant Payment (NIP): nearly 11 billion transactions in 2024 (NIBSS/CBN, 2025). The dominant rail is the account-to-account transfer, not the telco wallet | Central Bank of Nigeria | NIP transfers via a gateway, with a dedicated virtual account per order | Verve cards (70M+ issued, Interswitch, press release, Oct. 2025) and AfriGO, then bank USSD |
| Ghana (GHS) | Mobile money, led by MTN MoMo: GHS 4,100 billion in transactions and a GHS 38.4 billion float in 2025 (MTN Ghana / MML, March 2026) | Bank of Ghana | A merchant account with Mobile Money Limited (MML), the licensed EMI, and a connection to MMI, the mobile money interoperability platform run by GhIPSS (since 2018) | GhIPSS Instant Pay (GHS 50,000 cap per transaction, GhIPSS, 2026), gh-link cards, and GhQR, keeping in mind that it is deployed but not adopted |
| South Africa (ZAR) | Cards: the most banked market on the continent. PayShap is growing very fast, with 905 million cumulative transactions at the end of May 2026, up from 461 million at the end of December 2025 (ClearingPost / PayInc, 2026) | South African Reserve Bank, with the Payments Association of South Africa as the payment system management body | A card acquiring agreement, supplemented by PayShap Request for small amounts | Instant EFT (Ozow, registered as a System Operator and Third Party Payment Provider), closed-loop QR (SnapScan, Zapper), and DebiCheck direct debits |
| WAEMU (8 countries, XOF) | Mobile money, in an open price war: Wave charges 1% on transfers, with free deposits and withdrawals, and claims more than 20 million monthly active users as of mid-2025 (company figures, unaudited), against Orange Money, the leader across the CFA franc zone | BCEAO | Orange Money and Wave, usually through a regional aggregator rather than directly | GIM-UEMOA cards (130+ members, GIM-UEMOA, official website, 2025/2026) and SICA-UEMOA / STAR-UEMOA transfers, live since 2004 under the BCEAO, the region's central bank |
- Which rail carries the volume here? Not the one that gets the most press, but the one whose scale is established by a recent primary figure. In Nigeria, the answer is not “mobile money.” It is NIP.
- Can my customers use it without changing their habits? A rail that requires an app, a smartphone, or a bank account automatically excludes part of your customer base. Size that share before you choose.
- How long until we're live? A merchant account with an issuer, a connection to a national switch, and a card acquiring agreement all have different lead times. The most effective rail is not always the one you can open this quarter.
- Who settles with me, in which currency, and how many days later? This question separates two rails that look equivalent, and it is the one most often forgotten when comparing them.
Chapter 2. Building a mobile money collection flow.
Building a mobile money collection flow means connecting the merchant's system to the wallet issuer's, from payment initiation through reconciliation. The work comes down to four decisions, made in this order: which merchant identifier you obtain when the account is opened, who initiates the transaction, how the merchant learns that it succeeded, and what it is reconciled against. The last three are technical. The first is contractual: it is made weeks before any code is written, and it locks in everything else.
| Market | Identifier to obtain | What it allows | The onboarding trap |
|---|---|---|---|
| Kenya | A till number (Buy Goods) or a paybill (bill payment with a reference), plus the API credentials for the push prompt | A till collects without a reference; a paybill collects with a customer reference keyed in by the payer | Taking a paybill when a till would do: you add a manual entry that will be wrong one time in N, and you sign up for a permanent queue of unmatched payments |
| Nigeria | A dedicated virtual account (NUBAN) issued by the gateway, ideally one per order or per customer | The NIP transfer arrives already carrying the reference, because the account identifies the order, not a text field filled in by the payer | Reusing a virtual account across two orders: two payments of the same amount become impossible to tell apart |
| Ghana | A MoMo merchant ID with Mobile Money Limited (MML), plus a connection to the GhIPSS rails | MoMo collection, plus MMI interoperability with other wallets and with bank accounts | Collecting on a personal MoMo account: the most common shortcut among small businesses, and it costs you merchant settlement, support, and the audit trail |
| South Africa | An acquirer MID on the card side, plus a ShapID and access to PayShap Request on the account-to-account side | PayShap Request pushes a payment request to the payer, who approves it in their banking app, with no account number to read out | Treating SnapScan or Zapper QR codes as interoperable: they are closed loops, and acceptance depends on the customer's app |
| WAEMU | A merchant ID with each issuer (Orange Money, Wave, MTN, Moov), or a single ID with an aggregator that already has them | One contract and one API instead of N contracts and N test cycles | Assuming “Orange Money” is a single entity: the e-money license is issued to a named entity in each country, for example Orange Finances Mobiles Mali, BCEAO license EME.ML.008/2015. You sign country by country |
ALLOWED STATES
initiated -> pending -> { succeeded | failed | unknown }
unknown -> { succeeded | failed } via status query or statement
unknown -> unknown as long as nothing decides: THIS IS LEGITIMATE
RULE 1 — a missing notification is NOT a failure
never switch to "failed" on a timer expiring alone
a payment may have debited the customer without you being notified
RULE 2 — idempotency on the issuer's identifier
key = (issuer, country, issuer_transaction_id)
second notification with the same key -> ignored, logged, 200 OK
answering a notification slowly triggers a resend
RULE 3 — bounded polling loop, not an infinite one
t+20s, t+60s, t+180s, t+600s, then stop
beyond that, the state is resolved at reconciliation, not by one more call
RULE 4 — never match on the amount
amount, timestamp, and payer number do NOT discriminate:
the same customer pays the same amount twice in the same minute
more often than you would think
RULE 5 — always keep the issuer's identifier
it is the only evidence that holds up if you request a "reversal":
there is no chargeback, in the card sense, on these rails- Answer the notification in under a second, then process it. Return an acknowledgment, queue the work, and process it asynchronously. Heavy business logic inside the notification handler triggers resends, and therefore duplicates.
- Store the amount in local currency, never converted. KES, NGN, GHS, ZAR, and XOF are the only amounts that hold up in a dispute. A database that stores only the euro or dollar equivalent makes reconciliation impossible and leaves any correction request indefensible.
- Mask the payer's number in storage. On these rails, the phone number is the payment identifier: treat it with the same care as a card number.
- Build the unmatched payments queue into version 1. If customers key in the reference, it will start filling up in the first week. The question is not how to avoid it but who works it, how fast, and with which screen.
- Test replays. Resend yourself a notification you have already processed, both in testing and in monitored production. If a second copy of the order ships, your idempotency is decorative.
Chapter 3. USSD: designing the flow without a smartphone.
USSD is a text-menu dialog channel that any handset can open by dialing a short code, with no data connection. It still carries a decisive share of collections in these markets. The channel is synchronous, keeps no state on the handset, has a cramped screen, and is billed per session. Those four properties set USSD apart from a mobile app, which keeps its state between screens and tolerates waiting. A flow designed by app rules ends in sessions that time out right at the moment of payment. This chapter covers designing the collection flow, not the channel's technology.
- The latency budget is your technical contract. A USSD session expires (roughly 20 to 180 seconds depending on the operator). Any slow external call in the session path kills it. The rule: respond immediately, confirm asynchronously, and never make a blocking call to your back office.
- Every screen costs you twice. The operator bills for it, often per session or per screen, and it adds a drop-off point. A seven-screen flow is not “more complete” than a three-screen one: it costs more and converts less.
- A screen holds about 182 characters. That is not a layout constraint but a copywriting one: the amount label and the payee's name must fit without truncation, in the local language.
- A short code is a scarce, regulated asset. It is assigned by the country's electronic communications regulator, not by the mobile money operator. Getting your own takes an application and lead times measured in months. Most projects therefore use the issuer's or the aggregator's code. Decide this at scoping, not during testing.
- Codes differ by country for the same operator. MTN MoMo uses
*170#in Ghana,*165#in Uganda,*133#in Côte d'Ivoire,*126#in Cameroon,*182#in Rwanda, and*671#for MoMo PSB in Nigeria; M-PESA uses*334#in Kenya (codes published by the operators, 2026; check again with the local subsidiary before printing them on anything customer-facing, as they change). - The channel is not end-to-end encrypted. The PIN protects the transaction, not the confidentiality of the transport. Nothing sensitive should travel in clear text through a menu, above all nothing that would allow a transaction to be replayed.
SESSION BUDGET — set it BEFORE writing the first screen
usable session length 20 to 180 s depending on operator (low case: 20 s)
read + input time ~6 to 10 s per screen for the customer
=> 3 screens already use up most of a short session
what your back office may consume: < 1 s per screen
what it may NOT do inside the session:
- call a third-party service without a strict timeout
- compute a price, check stock, call an ERP
- wait for final payment confirmation
TARGET DESIGN — three screens, zero reference entry
screen 1 confirm the item and amount "Pay 2,500 to NAME? 1=Yes 2=No"
screen 2 PIN handled by the issuer's platform
screen 3 acknowledgment "Request sent. Confirmation by SMS."
-> final status arrives by server notification, NOT in the session
WHAT BREAKS FLOWS, MOST FREQUENT FIRST
1. customer types in an order reference -> typo
2. synchronous call to a slow internal system -> session timeout
3. label truncated on screen -> drop-off from doubt
4. amount recalculated after screen 1 -> perceived inconsistency
5. delivery triggered on screen 3 -> delivery without payment| Channel | What it asks of the customer | What it requires of you | When to choose it |
|---|---|---|---|
| USSD (short code) | Any phone, no data plan | A flow within the session budget, an immediate response, an asynchronous confirmation | Maximum reach, local in-person collection, recurring bills initiated by the customer |
| Push prompt to the handset | Nothing to remember: the customer only enters their PIN | A server integration, timeout handling, and status polling | Online and phone sales: the best completion rate of any app-free channel |
| Wallet via branch / agent | Going to an agent to deposit cash | Nothing technical, but your collection depends on the agent's liquidity that day | Unbanked customers, large amounts, areas where cash-out is still the norm |
| Interoperable merchant QR | A smartphone and an app connected to the standard | Check actual reach: GhQR is deployed in Ghana but not adopted, whereas TANQR in Tanzania is adopted because it is backed by mandatory participation in the national rail | In-store payments, in markets where the standard is actually used |
| Offline chip card | A card and a fingerprint | A compatible terminal; national reach, not interoperable outside the country | Ghana: e-zwich (GhIPSS, since 2008) is still the rail for government payments and one of the few instruments available without a bank account |
Chapter 4. Domestic cards, A2A rails, and recurring payments.
A domestic card scheme is a card network whose rules and brand belong to an entity based in the zone where it operates. An account-to-account (A2A) transfer rail carries a credit pushed by the payer from their account to the payee's. Alongside the wallet, each of these five markets has built its own instruments in both families, and South Africa adds one of the most sophisticated direct debit regimes on the continent. This chapter sets out what each one allows and what it rules out. Most unexplained declines in production come from assigning the wrong role to one of these instruments.
| Instrument | Market | Type | What it enables, and its limit |
|---|---|---|---|
| Verve | Nigeria | Private card scheme, an Interswitch subsidiary, since 2009 | Africa's first and largest domestic card scheme: more than 70 million cards issued (Interswitch, press release, Oct. 2025), up from 50 million in July 2024. It wins on interchange cost and ATM acceptance |
| AfriGO | Nigeria | Sovereign card scheme, launched on January 26, 2023, by the CBN and NIBSS, operated by AfriGoPay | More than 1 million cards and more than NGN 70 billion in transactions in 2025, accepted at more than 16,000 ATMs and about 70% of POS terminals (NIBSS, 2025). Its rationale is saving foreign currency: its transactions never leave the country |
| gh-link and e-zwich | Ghana | Domestic switch and card brands of GhIPSS, a wholly owned subsidiary of the Bank of Ghana | gh-link (2012) switches ATM, POS, and online transactions between banks; e-zwich (2008) is a biometric card that works offline and without a prior bank account, used for government payments. The GhDual Card combines the two |
| GIM-UEMOA / GIM-Switch | WAEMU, 8 countries | Regional card scheme and switch, set up by the BCEAO and the Union's banks | West Africa's only multi-country domestic card scheme: a GIM card is accepted across the whole zone. The latest cross-checked public figure for card market share dates from the end of December 2018: 28.87% for GIM-UEMOA vs. 31.26% for Visa (BCEAO). Never quote it without its date |
| NIP and NEFT | Nigeria | NIBSS's instant rail (2011) and bulk ACH (2004) | NIP routes by account number and BVN, 24/7: it is the collection rail. NEFT, with deferred net settlement, remains the rail for batches (payroll, suppliers) |
| GhIPSS Instant Pay (GIP) | Ghana | Interbank instant rail, since 2016 | Real-time account-to-account credit, capped at GHS 50,000 per transaction. Nationally, GIP carries less weight than mobile money interoperability: Ghana was built around the wallet, not the account (GhIPSS, 2026) |
| PayShap | South Africa | ISO 20022 instant rail operated by PayInc (formerly BankservAfrica), since 2023 | Alias-based addressing (ShapID), 12 participating banks, 6 million registered users, average ticket ~ZAR 874 (ClearingPost / PayInc, 2026). PayShap Request carries merchant payment requests; extension to merchant payments is under way |
- A domestic card does not cross borders. AfriGO is designed to keep transactions inside the country; gh-link, e-zwich, and GIM-UEMOA are zone schemes. A subscription billed from a foreign entity on one of these cards will fail, and the decline will not say why. If your model relies on recurring international debits, these cards are not your instrument.
- Co-badging changes the cost, not just acceptance. When a card carries both a domestic and an international scheme, routing determines the interchange you pay. It is an acquiring parameter to negotiate explicitly, not a technical default.
- The instant rail has no two-step authorization. No pre-authorization, no delayed capture, no void: the credit is pushed, immediate, and final. Any business model built on a hold followed by a later debit (deposit, reservation, amount adjustment) has to be redesigned, not transplanted.
- The limit is a product parameter. GHS 50,000 per transaction on GIP in Ghana; KYC-tier limits on wallets, which vary by country, by tier, and sometimes by channel. A high average order value may be structurally impossible to collect on the rail you chose: check before integrating, not after.
- An instrument can be live without being used. GhQR has been technically deployed since 2020 and has disappointed commercially; the eNaira is still running, and the CBN publicly acknowledged its weak adoption in November 2025. “Available” and “used” are two different things, and only the second matters to a collection plan.
Chapter 5. Aggregator or direct: choosing, and calculating the full cost.
There are three paths to collecting payments in these markets. The first is to contract directly with every issuer and acquirer. The second goes through a domestic gateway that has already connected all of them in one country. The third goes through a pan-African aggregator covering several countries under a single contract. The choice depends on time to launch, the chain of accountability, and full cost, rather than on the technical features of the integration. That full cost goes well beyond the headline fee, which is just one line out of six, alongside settlement fees and settlement lag, FX, transaction tax, and the cost of failures and disputes.
| Path | Time and effort | Cost | Chain of accountability | When to choose it |
|---|---|---|---|---|
| Direct with each issuer | The longest: one application, one test cycle, and one contract per issuer and per country | The lowest at high volume, since you pay no intermediary layer | Short and clear: you deal directly with whoever holds the funds | One or two markets, high volumes, a team able to run N separate integrations |
| Domestic gateway | A few weeks: one contract, one API, every instrument in the country | Mid-range, often with separate pricing per instrument | One more layer, but a local partner who knows the regulator and the issuers | Launching in one specific market, with Paystack, Flutterwave, Interswitch, Moniepoint in Nigeria; Hubtel, ExpressPay, Zeepay in Ghana; Ozow, Yoco, Peach Payments in South Africa |
| Pan-African aggregator | The fastest across several countries: one connection, N markets | The highest per transaction, the lowest in project cost | The longest: when something goes wrong, you are two companies away from the issuer holding the money | Multi-country rollout with volumes still uncertain, with Onafriq (formerly MFS Africa), DPO Pay (a Network International brand), Flutterwave across its multi-country footprint |
THE SIX COST LINES. The last five are the ones people forget.
1. COLLECTION FEE % of the amount, + a fixed part, often tiered
and per instrument (wallet != card != transfer)
2. SETTLEMENT FEES payout from the merchant account to a local
bank account -- billed separately, per
transfer or per batch
3. SETTLEMENT LAG D+0 in e-money, often D+1/D+2
to the bank. Cost = cash tied up
4. FX spread vs. the interbank rate, NOT the
headline fee. Measure it, don't ask for it
5. TRANSACTION TAX a political line, variable, open to change
in every budget law (see chapter 6)
6. FAILURE AND DISPUTE COST unmatched payments to match by hand,
"reversals" to pursue, tier-1 support
WORKED EXAMPLE -- THE RATES ARE EXAMPLE PARAMETERS,
NOT OBSERVED PRICES: replace them with YOUR negotiated rates.
Order value 10,000 (local currency)
Collection fee assumed 1.80% 180
Fixed part assumed 20
Settlement fees assumed, amortized 8
Cost of the D+2 lag assumed 3
FX spread on repatriation assumed 1.20% 120
Transaction tax country-dependent 0
Failure/matching provision assumed 0.40% 40
------------------------------------------------------------
FULL COST 371 = 3.71%
HEADLINE FEE 180 = 1.80%
>>> THE RATIO BETWEEN THESE TWO LINES IS THE ONLY FIGURE
THAT LETS YOU COMPARE TWO OFFERS.
WHAT TO DEMAND TO FILL IN THE GRID
- a simulation on YOUR actual mix (instrument, amount, country, month)
- the FX rate applied to a test amount on a given day,
compared with that day's interbank rate
- the settlement schedule: frequency, minimum threshold, fee per transfer
- the unmatched payment rate observed at comparable merchants- Who holds my money between collection and settlement, and under what license? The answer must name an entity and its legal status, not a brand.
- What is the contractual settlement lag, by instrument, and what can suspend it? This is the first line to negotiate, even before the fee.
- Which currency am I settled in, and who sets the rate? Settlement in local currency that you convert yourself does not cost the same as settlement converted by the provider.
- What is the actual coverage by issuer, in this specific country? An aggregator that is “present in Ghana” may cover only one issuer in three there.
- What happens when a payment arrives without a usable reference? Is there a screen, a matching API, a retention period?
- *How do I request a reversal, how long does it take, and what is the observed success rate? There is no standardized dispute framework on these rails: the provider's procedure is* your only recourse.
- What daily reconciliation mechanism do you provide? A machine-readable statement, or an export that needs reworking?
- Which limits apply, per transaction, per day, per KYC tier? And how will I be notified when they change?
- How easy is it to leave? Portability of merchant IDs, export of transaction history, notice period. The exit cost is negotiated on the way in.
- Which of the figures you gave me are audited? See the warning below.
Chapter 6. E-money licenses, FX, repatriation, and PAPSS.
Two assessments decide whether a collection project in these markets is feasible, and both come before the first API call. The first concerns licensing: whether the merchant needs its own license or collects under a third party's. The second concerns getting the money out: which route the funds take to leave the country, at what rate, and how fast. Companies that address the second question after go-live find, at best, that their margin disappears into FX.
| Region | Regime | What it means for you |
|---|---|---|
| WAEMU (8 countries) | BCEAO Instruction No. 008-05-2015 of May 21, 2015, governing e-money issuers | An EME (e-money issuer) license from the BCEAO, with funds ring-fenced in bank accounts (Article 32) and coverage by the WAMU Deposit Guarantee Fund if the custodian bank fails. An EME licensed in one country may operate in another with authorization from the central bank. Licenses are issued to named entities: Orange Finances Mobiles Mali, EME.ML.008/2015 |
| CEMAC (6 Central African countries) | BEAC Instruction No. 001/GR/2018, mandatory interoperability | Issuance is regulated by the BEAC (the CEMAC central bank), and interoperability runs through GIMACPAY: you connect to the network, not to banks one by one |
| Ghana | EMI license from the Bank of Ghana, separate from the telco | MTN had to house its business in Mobile Money Limited (MML), a licensed entity separate from MTN Ghana. The float (GHS 38.4 billion in 2025) is subject to prudential supervision in its own right |
| Nigeria | Payment Service Bank (PSB) license, created by the CBN in 2018 | A telco cannot issue e-money freely: MoMo PSB (MTN) and SmartCash PSB (Airtel) launched in May 2022, alongside 9PSB, Hope PSBank, and MoneyMaster PSB. A PSB can take deposits and make payments but cannot lend, which is one reason Nigerian retail payments moved through NIP rather than the telco wallet |
- Work out repatriation before signing, never after the first month. The questions: which local bank, what supporting documents per outgoing transfer, what observed lead time, how much hard currency is available, and what prior approvals are needed. The answers shape your treasury model, not just your accounting.
- Transaction taxes are the region's No. 1 political risk, and they can be modeled. Ghana introduced an e-levy in May 2022 at 1.5% above a daily exemption threshold of GHS 100, cut to 1% in January 2023. Mobile money values fell by about 12% in the six months after it took effect (Bank of Ghana), before the repeal passed on March 26, 2025, and took effect on April 2, 2025. Cameroon has levied 0.2% on both sending and withdrawals since its 2022 finance law, with a flat 4 CFA francs added in 2025; Uganda taxes withdrawals at 0.5%. Every revenue forecast in these markets must include a tax scenario.
- In a monetary union, “cross-border” doesn't mean what you think. Between two WAEMU countries, a payment is technically domestic: SICA-UEMOA for clearing and STAR-UEMOA for settlement have operated since 2004 under the BCEAO, and GIM-UEMOA covers cards across all eight countries. An Abidjan–Dakar flow does not raise the FX issue of an Abidjan–Accra flow.
- Mobile money is the cheapest origination instrument for receiving money. Sending $200 to sub-Saharan Africa cost 8.78% on average in Q1 2025, vs. a global average of 6.49%, but 3.63% when originated via mobile money and 9.50% via a bank (World Bank, Remittance Prices Worldwide, Q1 2025). That is the economic reason every corridor is converging on the wallet.
Chapter 7. Testing, fraud, and daily operations.
A failure mode is a way a collection fails or gets corrupted in production. In these markets, failure modes differ from those in a card market, where disputes follow a cycle-based framework, network arbitration, and representment rules. None of those three mechanisms exists here. Correcting an erroneous payment goes through a *reversal procedure run by the issuer on request, with highly variable timelines and success rates. The checks therefore happen upstream*, and testing must cover the local failure modes, not just the happy path.
| Failure | What happens | The design countermeasure |
|---|---|---|
| Fake confirmation SMS | The customer shows a fabricated SMS at the point of sale, or one from an earlier transaction | Never hand over goods on the strength of a screen shown by the payer. Confirmation is read in your own channel: merchant line, merchant app, server notification, statement. Train point-of-sale staff on this before any technical measure |
| Missing or duplicate notification | An order is never confirmed, or is confirmed twice | Idempotency on the issuer's transaction ID, bounded status polling, daily reconciliation against the issuer's statement |
| Wrong order reference | The payment arrives but cannot be matched to an order | Remove the entry step (virtual account, dedicated till, push prompt). Failing that, an unmatched queue with a named owner and a handling deadline |
| SIM takeover | The payment identity is the phone number: whoever takes the SIM takes the account | On the merchant side: refuse sensitive transactions in the hours after an operator-reported SIM change, and lower limits during that window |
| KYC limit reached | A legitimate collection fails for no understandable reason | Map limits by country, tier, and channel, monitor them, and show the customer a message that states the real cause |
| Agent out of liquidity | The customer cannot top up their wallet: your collection fails before it reaches you | Factor the local liquidity calendar (paydays, market days, holidays) into your collection forecasts and payment reminders |
EVERY DAY, IN THIS ORDER
1. PULL the issuer's / provider's statement for D-1
-> source of truth. Your application log is NOT
2. MATCH on the issuer's transaction ID
never on (amount, time, number): not distinctive
3. SORT discrepancies into FOUR groups, each with its own handling
a. at the issuer, missing here -> lost notification:
create, deliver, alert
b. here, missing at the issuer -> phantom state:
cancel, DO NOT deliver
c. amounts differ -> unmodeled fees,
or wrong tier
d. unmatched (no reference) -> matching queue,
named owner, deadline
4. RECONCILE the bank settlement received against gross collected on D-2/D-3
gross collected - fees - settlement fees - tax = expected net
any unexplained gap is disputed within the contractual window,
which is short
5. PUBLISH three indicators, every day, to the same people
- rate of states still unknown at D+1
- age of the oldest unmatched item
- expected net vs. received net gap, in LOCAL currency
WHAT SHOULD TRIGGER AN ALERT, NOT A TICKET
- an unknown state older than 24 h
- a bank settlement missing on the contractual date
- a fee discrepancy that repeats two days in a row