National Payment Stack—why?
A short explainer on what NPS is and why NIBSS is doing it
Last week, NIBSS announced the first successful transaction on the National Payment Stack (NPS). For people who work in payments, this was straightforward. Not confusing at all.
But then Asemota and some other contrarians started posting these long-winded takes, and I realized how this could low-key confuse people who aren’t terminally fintech. So today, I’m writing this to explain what NPS is and how it’s different from NIP—so you don’t look lost when your fintech friends start talking about it.
Quick reference:
(Also, no, the CBN didn’t sell your data to China and the Soviet Union isn’t about to turn us into a Pluribus hive mind. I wish. That would be wild, but no.)
Background: Why ISO 20022?
So NIBSS is moving from NIP to NPS. It’s a shift from their own proprietary electronic funds transfer system to an ISO 20022-based international standard platform.
NIP did its job admirably. NIBSS actually shipped something useful for once, and we should give them credit for that. But at a certain point, you hit the limits of what you can do with a proprietary system. Instead of trying to patch it up, NIBSS decided to start fresh and adopt what everyone else is using: ISO 20022 messaging standard.
And yeah, this is happening everywhere. SWIFT’s been migrating to ISO 20022 for a minute now, and pretty much everyone’s hopping on this train.
SWIFT’s ISO 20022 Timeline:
- November 2022: SWIFT began supporting ISO 20022 for cross-border payments and cash reporting
- March 2023: Coexistence period started—both old (MT) and new (MX/ISO 20022) formats supported
- November 2025: All SWIFT payments must be ISO 20022 compliant
Why does any of this matter? By adopting ISO 20022 now, NIBSS is future-proofing Nigerian financial institutions. When they eventually need to integrate with SWIFT or other global systems, they’re already speaking the same language.
It’s also good for Africa’s regional trade. As AfCFTA pushes for more intra-continental commerce, having ISO 20022 makes everything smoother if all the different local payment systems have to work together.
It’s not just Nigeria doing this:
- US: Fedwire moving to ISO 20022 (2025)
- Europe: TARGET2 already migrated (2022)
- UK: CHAPS migrated (2023)
- Australia: NPP uses ISO 20022
- Singapore: FAST uses ISO 20022
So, What’s the Actual Difference?
Okay, so the transaction lifecycle is basically the same between NIP and NPS.
Civilians will probably not notice any changes, in fact.
So let me walk you through what happens when you try to transfer money in both systems:
Phase 1: Confirmation of Payee (Name Enquiry)
What goes down:
1. Customer: “I want to send ₦10,000 to account 1234567890 at Bank B”
2. Bank A asks NIBSS: “Yo, who owns this account?”
3. NIBSS routes it to Bank B
4. Bank B responds: “That’s John Doe’s account”
5. Bank A shows customer: “You’re sending to John Doe—that right?”
This first step prevents you from sending money to the wrong person. Can’t be overstating how useful this is, but some people **cough…OPay** don’t run this step every time.
Where they differ:
- NIP: Uses Name Enquiry (10 second timeout)
- NPS: Uses acmt.023/024 message format (20 second timeout)
Same vibe, different message format. That’s really it.
Phase 2: The Payment Processing
Step 1 — Bank A Initiates
- Customer: “Okay, go ahead”
- Bank A debits the account immediately (₦10,000 + fees)
- Bank A sends payment instruction to NIBSS
- Bank A’s settlement account gets marked for debit
Step 2 — NIBSS Does Its Thing
- Validates the message format is legit
- Checks that Bank A is actually authorized to do this
- Very Important Step: Makes sure Bank A has enough funds in their settlement account.
- Routes the payment to Bank B
When MoMo PSB launched, NIBSS actually skipped the very important step in their early days because “…it’s MTN. Surely, they’re good for the money.” Well, MTN cooked one beans that led to massive fraud and NIBSS was fulfilling payments that weren’t backed by what MoMo had in the bank. Step 3 — Bank B Receives It
- Gets the payment instruction
- Validates that John Doe’s account exists and can receive funds
- Has to respond within the timeout window or the transaction fails
Step 4 — What Happens Next (Two Scenarios)
Everything works:
- Bank B responds positively
- NIBSS tells both banks it’s good
- John Doe’s account gets credited
- Settlement positions get updated
Something goes wrong:
- Bank B rejects it (or just times out)
- NIBSS tells both banks it didn’t work
- Bank A reverses the customer’s debit right away
- Nothing settles
Phase 3: End-of-Day Settlement
Throughout the day, transactions flow in both directions. When it’s time to settle, here’s what happens:
Quick example:
- Bank A sent ₦1M to Bank B
- Bank B sent ₦800K back to Bank A
- Net: Bank A owes Bank B ₦200K
Real money moves between banks’ accounts at the CBN, and you get reconciliation reports.
What’s true for both NIP and NPS:
- Your bank debits you immediately when they send the payment
- The beneficiary only gets credited after their bank confirms it’s legit
- Timeout = transaction fails. You get your money back
- Settlement happens later, but it’s net—so if banks exchange money both ways, only the difference settles
- Once both banks confirm, that’s it. No take-backs. Payment’s final
- NIBSS doesn’t actually hold any money. It just routes messages and keeps score of who owes whom
Where NPS Actually Changes Things
Okay, so the response choreography is where NPS actually does something different.
Response Choreography
NIP: One-step process
Bank B gets payment → Responds yes/no → DoneNPS: Two-step process
Bank B gets payment → Sends “AUTH” (I authorize this) → Switch confirms “ACSP” (okay, finalize it) → Customer gets creditedIt seems long so why change? Better coordination between banks, easier error handling, and it aligns with what everyone else is doing internationally etc
But the end result is the same.
Payment either succeeds (everyone agrees) or fails (someone rejects or times out).
Payment Finality & Uncertainty Handling
The Problem (Same for Both)
Network timeouts are annoying: “Did the beneficiary bank actually process this or nah?”
NIP’s Way: Manual & Reactive
- Bank has to send a TSQ (Transaction Status Query)
- Might need to retry multiple times
- Bank figures out what to do based on the response
- Result: More ambiguity, more manual work
NPS’s Way: Automated & Proactive
- The switch itself times out after 10 seconds
- Switch automatically sends RJCT (rejection) to both banks
- Clearer decision tree (AUTH → ACSP)
- Result: Less confusion, less manual intervention
NPS makes life easier by having the central switch handle timeouts instead of leaving banks to sort it out themselves.
The Key Operational Differences
1. Timeout Architecture
NIP: Pretty straightforward
- Single timeout: 20 seconds, end-to-end
- Name Enquiry: 10 seconds
NPS: More layered
- Customer → Bank A → NPS: 20 seconds
- NPS → Bank B: 10 seconds
- Name Enquiry: 20 seconds
Bank B basically has half the time to respond now. NPS has introduced a tighter SLA.
2. Payment Authorization Model
NIP: One-shot deal
- Send payment → Get yes/no → Done
NPS: Needs both banks on the same page
- Step 1: Bank B sends AUTH (authorization) within 10 seconds
- Step 2: Switch confirms ACSP (acceptance) to finalize
- Both banks wait for ACSP before they finalize anything
There’s more back-and-forth between banks, but what’s happening is clearer and there’s less room for confusion.
4. Response Codes
NIP: Custom NIBSS codes
- Example: Code 25 = transaction not found
- Made-up numbering system
NPS: Uses global ISO 20022 codes
- AUTH (Authorized)
- ACSP (Accepted)
- RJCT (Rejected)
- NAUT (Not Authorized)
5. Transaction Types
NIP has a bunch:
- Direct Credit ✓
- Direct Debit ✓
- Mandate Advice ✓
- Amount Block/Unblock ✓
- Account Block/Unblock ✓
- Financial Institution List ✓
NPS (v1.0) is scaled back:
- Identification Verification ✓
- Payment Request ✓
- Payment Status Request ✓
NPS is launching with just core payment stuff. Everything else is coming later. Things like direct debit will run on NIP until they’re migrated to NPS
6. Platform Scope
NIP: Just payments
- That’s all it does
NPS: Way more ambitious
- “Payment AND non-payment capabilities”
- Built to scale
- Account verification, KYC checks, etc. can be added without building a new platform
7. Account Designation
NPS adds a new field: Account Designation (customer type):
- Corporate
- Individual
- Joint
- Others
- Juvenile
- Sole Proprietorship
When the new tax regime kicks in, this is going to be very very important. Sorry to you tax dodgers.
So What Does It All Mean?
NPS is just NIP rebuilt in line with global best practice.
What’s actually changing: Message formats, how banks coordinate, timeout logic, and operational stuff.
What’s the same: The core flow still goes debit → validate → route → credit → settle. That’s not changing.
For now, it focuses on bank transfers. But expect card payments and other payment methods to align with ISO 20022 in the coming months too.



Love the clarity (y)
This succinctly explained the major difference between the two platforms. Thank you for the explaination.