Skip to main content

NPP — New Payments Platform

Overview

The New Payments Platform (NPP) is Australia's real-time, data-rich payment infrastructure launched in February 2018. It enables near-instant payments 24/7/365 between accounts at participating Australian financial institutions.

Global Payment Rails Explorer (NPP vs SWIFT gpi vs RTGS vs BPAY)
SELECT PAYMENT RAIL:
NPP (New Payments Platform / Osko)
SWIFT gpi (Cross-Border Payments)
RTGS / RITS (High-Value Wholesale)
BPAY (Bill Payment Network)
Rail Specifications & Topology
NPP (New Payments Platform / Osko)

Australia’s modern real-time instant payment rail supporting PayID aliases, 280-character descriptions, and PayTo digital mandates.

Speed: Sub-Second Real-Time (24/7/365)
Settlement: Real-Time Gross Settlement via Fast Settlement Service (FSS)
Data Standard: ISO 20022 Native (pacs.008 / PayTo pain.001)
  • Operator: NPP Australia Limited (NPPA)
  • Settlement: RBA Fast Settlement Service (FSS)
  • Message Standard: ISO 20022 (MX format)
  • Availability: 24/7/365

NPP Key Features

FeatureDetail
SpeedTypically < 15 seconds end-to-end
Availability24/7, 365 days/year
Data richnessUp to 280 characters of remittance data
PayIDProxy addressing (phone, email, ABN, org ID)
SettlementReal-time gross via RBA FSS
Amount limitNo mandated cap (FIs may set own limits)

NPP Architecture

Infrastructure EntityRole & Connectivity TypeISO 20022 ResponsibilitiesSettlement Interface
NPPA Basic Infrastructure (BI)Central Hub & Switching NetworkSWIFT-operated distributed messaging network routing ISO 20022 pacs.008 messages between PAGs.Coordinates settlement triggers with RBA.
Direct Participant (Bank A, B)Full clearing and settlement memberConnects directly to BI via Payment Access Gateway (PAG); hosts Exchange Settlement Account (ESA).Settles directly via RBA FSS.
Indirect Participant (Bank C)Tier-2 Sponsor Banking CustomerUses Direct Participant's PAG and ESA to route NPP payments on behalf of retail/business clients.Settles via Sponsor Bank's balance ledger.
RBA Fast Settlement Service (FSS)Real-Time Gross Settlement EngineSub-service of the Reserve Bank of Australia executing 24/7 line-by-line settlement between bank ESAs.Deducts Debtor Bank ESA and credits Creditor Bank ESA in <1 second.

NPP Message Flow (Credit Transfer)

Customer A Bank A (Debtor) Bank B (Creditor)
│ │ │
│── Initiate payment ────►│ │
│ (app/API/pain.001) │ │
│ │── Validate & screen │
│ │── Debit account │
│ │── Build pacs.008 ───────►│
│ │ │── Validate
│ │ │── Screen
│ │◄── pacs.002 ACK ─────────│
│ │ │
│ │◄── RBA FSS Settlement ──►│
│ │ (simultaneous) │
│ │ │── Credit account
│ │ │── camt.054 ──► Customer B
│◄── Debit notification ──│
(camt.054)

NPP Overlay Services

Overlay services are products built on top of NPP infrastructure:

Osko (by BPAY)

  • First NPP overlay service
  • Consumer and business payments
  • PayID-enabled
  • Real-time credit transfers

PayTo (launched 2022)

  • Agreement-based payments (replaces Direct Debit)
  • Payer authorises a payment agreement stored at NPP
  • Payee can initiate pull-based payments under the agreement
  • Near-real-time, 24/7
  • Replaces BECS Direct Debit for many use cases
PayTo Flow:
1. Biller creates Payment Agreement → sent to Payer's bank
2. Payer approves agreement (via banking app)
3. Biller initiates debit under agreement (any time)
4. Payer's bank validates agreement → credits biller

PayID

PayID is a proxy addressing system on the NPP that maps a simple identifier to a BSB/account number.

PayID TypeExample
Phone number0412 345 678
Email address[email protected]
ABN12 345 678 901
Organisation IDAssigned by NPPA

PayID Resolution Flow

Sender enters: "[email protected]"
│
▼
NPP PayID Directory
│
▼
Returns: Jane Smith, BSB 062-000, Acct 12345678
│
▼
Sender confirms name match
│
▼
Payment proceeds

NPP ISO 20022 Messages Used

MessagePurpose
pacs.008Credit transfer instruction
pacs.002Payment status report
pacs.004Payment return
camt.054Account notification
acmt.023PayID registration
acmt.024PayID lookup response

NPP vs BECS Direct Entry

FeatureNPPBECS/DE
Speed< 15 secondsNext business day
Hours24/7/365Business hours, cut-offs
Message formatISO 20022 (MX)Proprietary flat file
Remittance data280 charactersLimited
PayID✅❌
SettlementReal-time gross (RTGS-like)Deferred net (DNS)

NPP vs RTGS/HVCS

FeatureNPPHVCS/RTGS
Target useRetail/SMEHigh-value wholesale
Value limitNo mandated capLarge (>$250K typical)
Customer visible✅Typically B2B only
Overlay services✅ Osko, PayTo❌

NPP Participation

TypeDescription
Connected Institution (CI)Direct NPP participant with own connection to BI
Identified Institution (II)Participates via a CI (sponsor); has own PayID space
Addressing Service Provider (ASP)Manages PayID on behalf of others

Java Spring Integration Notes

@Service
public class NppPaymentService {

@Value("${npp.endpoint}")
private String nppEndpoint;

public NppResult submitPayment(PaymentOrder order) {
// Build pacs.008
Pacs008 pacs008 = pacs008Builder.build(order);

// Validate against NPP-specific rules
nppValidator.validate(pacs008);

// Submit to NPP BI
NppResponse response = nppClient.submit(pacs008);

if (response.isAccepted()) {
order.setStatus(PaymentStatus.SUBMITTED_TO_NPP);
order.setNppTxId(response.getTransactionId());
}

return NppResult.from(response);
}

@Async
public void resolvePayId(String payId) {
PayIdLookupRequest request = new PayIdLookupRequest(payId);
PayIdResponse response = nppClient.lookupPayId(request);
// Cache and return account details
}
}

NPP Error Codes

CodeMeaning
AC01Incorrect account number
AC03Invalid creditor account number
NARRFree text error narrative
FF01Invalid file format
AM04Insufficient funds
RR04Regulatory reason (sanctions)

Interview Questions

  1. How do you design NPP payment flows for strict idempotency and sub-15-second SLAs?
  2. What operational controls are critical for PayID resolution and misdirection prevention?
  3. How do you handle NPP participant outages while maintaining customer trust?
  4. Which telemetry should drive real-time alerting for NPP service health?

Short answer guide:

  • Use stable transaction IDs, dedup checks, and deterministic state transitions.
  • Add name-check verification and confirmation UX safeguards.
  • Implement queue/retry/fallback policies with transparent status communication.
  • Monitor latency percentiles, reject codes, settlement lag, and exception rates.
Interview Focus

Highlight sub-15s SLA design with idempotency, participant dependency handling, and observability.

Interview Trap

Assuming real-time rails remove the need for fallback and exception workflows.

📖
Track Page Progress0 / 635 Read
Knowledge Base Completion0%