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.
- Operator: NPP Australia Limited (NPPA)
- Settlement: RBA Fast Settlement Service (FSS)
- Message Standard: ISO 20022 (MX format)
- Availability: 24/7/365
NPP Key Featuresโ
| Feature | Detail |
|---|---|
| Speed | Typically < 15 seconds end-to-end |
| Availability | 24/7, 365 days/year |
| Data richness | Up to 280 characters of remittance data |
| PayID | Proxy addressing (phone, email, ABN, org ID) |
| Settlement | Real-time gross via RBA FSS |
| Amount limit | No mandated cap (FIs may set own limits) |
NPP Architectureโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NPP Australia (NPPA) โ
โ Basic Infrastructure โ
โ (BI) โ ISO 20022 Hub โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโโผโโโโโโโโโโโ โโโโโโโโโผโโโโโโโโโโ โโโโโโโโโโผโโโโโโโโโโโ
โ Bank A โ โ Bank B โ โ Bank C โ
โ (Direct โ โ (Direct โ โ (Indirect via โ
โ Participant) โ โ Participant) โ โ Bank A) โ
โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ RBA Fast โ
โ Settlement โ
โ Service (FSS) โ
โโโโโโโโโโโโโโโโโโโโโ
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 Type | Example |
|---|---|
| Phone number | 0412 345 678 |
| Email address | [email protected] |
| ABN | 12 345 678 901 |
| Organisation ID | Assigned 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โ
| Message | Purpose |
|---|---|
pacs.008 | Credit transfer instruction |
pacs.002 | Payment status report |
pacs.004 | Payment return |
camt.054 | Account notification |
acmt.023 | PayID registration |
acmt.024 | PayID lookup response |
NPP vs BECS Direct Entryโ
| Feature | NPP | BECS/DE |
|---|---|---|
| Speed | < 15 seconds | Next business day |
| Hours | 24/7/365 | Business hours, cut-offs |
| Message format | ISO 20022 (MX) | Proprietary flat file |
| Remittance data | 280 characters | Limited |
| PayID | โ | โ |
| Settlement | Real-time gross (RTGS-like) | Deferred net (DNS) |
NPP vs RTGS/HVCSโ
| Feature | NPP | HVCS/RTGS |
|---|---|---|
| Target use | Retail/SME | High-value wholesale |
| Value limit | No mandated cap | Large (>$250K typical) |
| Customer visible | โ | Typically B2B only |
| Overlay services | โ Osko, PayTo | โ |
NPP Participationโ
| Type | Description |
|---|---|
| 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โ
| Code | Meaning |
|---|---|
AC01 | Incorrect account number |
AC03 | Invalid creditor account number |
NARR | Free text error narrative |
FF01 | Invalid file format |
AM04 | Insufficient funds |
RR04 | Regulatory reason (sanctions) |
Related Conceptsโ
- pacs.008 โ Core NPP payment message
- Inbound Payments โ Receiving NPP payments
- Outbound Payments โ Sending NPP payments
- Clearing โ NPP as clearing system
- Settlement โ RBA FSS real-time settlement
- On-Us Transactions โ Internal routing alternative
- Off-Us Transactions โ Default NPP interbank routing model
Interview Questions (Senior Level)โ
- How do you design NPP payment flows for strict idempotency and sub-15-second SLAs?
- What operational controls are critical for PayID resolution and misdirection prevention?
- How do you handle NPP participant outages while maintaining customer trust?
- 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.