Skip to main content

Outbound Payments

An outbound payment is a credit transfer initiated by a bank on behalf of one of its customers โ€” money going out of the bank to another financial institution. It is the counterpart to an inbound payment.


Outbound Payment Channels

ChannelRailBest For
NPP / OskoNPPDomestic real-time (<$1M typically)
PayToNPPPull-based collections
BECS Direct EntryBECSBulk payroll, batch supplier credits
BPAYBPAYBill payments with biller code
RTGS / HVCSRITSHigh-value, time-critical, >$250K
SWIFT MT103SWIFTInternational cross-border
PayIDNPPDomestic using PayID alias

Outbound Payment Processing โ€” End to End

Customer submits payment instruction (pain.001 / API / online banking)
โ”‚
โ–ผ
1. RECEIPT & PARSING
- Parse pain.001 XML or API request
- Assign InstrId, TxId, MsgId
- Validate schema and business rules
โ”‚
โ–ผ
2. AUTHENTICATION & AUTHORISATION
- Customer authenticated (OAuth, biometric, OTP)?
- Payment within customer's authorised limits?
- Dual approval required (corporate)? โ†’ approval queue
โ”‚
โ–ผ
3. DUPLICATE DETECTION
- Check EndToEndId (customer-provided)
- Check content hash (amount + accounts + date)
- Reject with AM05 if duplicate found
โ”‚
โ–ผ
4. BENEFICIARY VALIDATION
- Account format valid?
- PayID lookup (NPP)
- Confirmation of Payee (CoP) name check (if enabled)
โ”‚
โ–ผ
5. COMPLIANCE CHECKS (parallel)
โ”œโ”€โ”€ Sanctions screening (debtor, creditor, remittance text)
โ”œโ”€โ”€ Fraud rules (velocity, amount, counterparty patterns)
โ””โ”€โ”€ AML / transaction monitoring
โ”‚
โ”œโ”€โ”€ PASS โ†’ proceed
โ””โ”€โ”€ FAIL โ†’ hold/reject with reason
โ”‚
โ–ผ
6. BALANCE / LIMIT CHECK
- Customer account balance โ‰ฅ payment amount + fees?
- Daily limit not exceeded?
- Credit facility check (if overdrawn)
โ”‚
โ–ผ
7. CHANNEL SELECTION
- Domestic real-time? โ†’ NPP
- High-value? โ†’ RTGS/HVCS
- Bulk? โ†’ BECS
- International? โ†’ SWIFT
- Bill? โ†’ BPAY
โ”‚
โ–ผ
8. DEBIT POSTING
- Hold/debit customer account (pre-funding)
- Create debit journal entry
โ”‚
โ–ผ
9. PAYMENT INSTRUCTION BUILD
- Construct pacs.008 (or MT103 / DE record)
- Set UETR (SWIFT gpi), InstrId, TxId
- Include EndToEndId from customer instruction
โ”‚
โ–ผ
10. NETWORK SUBMISSION
- Submit to NPP / RITS / BECS clearing / SWIFT
- Record submission timestamp and reference
โ”‚
โ–ผ
11. STATUS TRACKING
- Receive pacs.002 acknowledgement
- Update payment status (ACTC โ†’ ACSP โ†’ ACSC)
- Handle rejections (RJCT โ†’ return credit to customer)
โ”‚
โ–ผ
12. CUSTOMER NOTIFICATION
- Send payment confirmation (camt.054 DBIT notification)
- Update internet/mobile banking status

Dual Approval โ€” Corporate Payments

High-value corporate payments often require dual approval (four-eyes principle):

AmountApproval Required
< $10,000Single user (initiator)
$10,000 โ€“ $100,000Secondary approver
> $100,000Senior approver or management
> $1,000,000Treasury / C-suite

Implementation:

public PaymentApprovalResult submitForApproval(PaymentInstruction payment) {
ApprovalPolicy policy = approvalPolicyService.getPolicy(
payment.getCustomerId(),
payment.getAmount()
);

if (policy.requiresDualApproval()) {
// Create approval request โ€” payment not executed until approved
ApprovalRequest request = approvalService.create(payment, policy);
notificationService.notifyApprovers(request);
return PaymentApprovalResult.pendingApproval(request.getId());
}

// Single approval โ€” execute immediately
return execute(payment);
}

Payment Factory Pattern

A Payment Factory centralises all payment initiation from multiple channels into a single orchestration layer:

Initiating ChannelsPayment Factory Central OrchestratorTarget Payment Rails GatewayProcessing SLA & Model
Internet & Mobile BankingNormalises input to IMF canonical model; executes duplicate detection and real-time fraud scoring.NPP Gateway (BI / PAG)Real-time immediate clearing (<1s)
Corporate Portal & ERPValidates dual-authorisation workflow; checks corporate account daily limits and delegation authority.BECS Direct Entry EngineSame-day / next business day batch clearing
Open Banking / CDR APIsEvaluates FAPI OAuth 2.0 consent tokens and PayTo payment agreement mandate status.NPP / PayTo EngineNear-instant real-time clearing
Core Batch Files (ABA/CSV)High-throughput batch streaming with bulk payroll and direct debit validation.SWIFT Alliance GatewayHigh-value cross-border RTGS / ISO 20022

Benefits:

  • Single compliance/fraud/sanctions policy
  • Consistent audit trail
  • Centralised rate/limit management
  • Channel switching without app changes

Channel Selection Logic

public PaymentChannel selectChannel(PaymentInstruction instruction) {

boolean isDomestic = isDomesticAUD(instruction);
BigDecimal amount = instruction.getAmount();

if (!isDomestic) {
return PaymentChannel.SWIFT; // All international go SWIFT
}

if (instruction.isBpay()) {
return PaymentChannel.BPAY;
}

if (instruction.isBatch()) {
return PaymentChannel.BECS; // Bulk/payroll
}

if (amount.compareTo(HVCS_THRESHOLD) > 0) {
return PaymentChannel.HVCS; // High-value
}

// Real-time domestic โ€” prefer NPP
if (nppService.isReachable(instruction.getCreditorBsb())) {
return PaymentChannel.NPP;
}

return PaymentChannel.BECS; // Fallback to batch
}

Outbound Payment States

CREATED โ†’ Received and stored
VALIDATED โ†’ Schema and business rules passed
PENDING_APPROVAL โ†’ Dual approval required
APPROVED โ†’ Approval obtained
COMPLIANCE_REVIEW โ†’ Held for compliance
SUBMITTED โ†’ Sent to clearing/network
ACKNOWLEDGED โ†’ pacs.002 ACTC received
IN_PROGRESS โ†’ pacs.002 ACSP (settlement in process)
SETTLED โ†’ pacs.002 ACSC (settlement complete) โ€” FINAL
REJECTED โ†’ pacs.002 RJCT โ€” credit returned to customer
RETURNED โ†’ pacs.004 received from beneficiary bank โ€” credit returned
CANCELLED โ†’ Cancelled before submission

Cutover Times by Channel

ChannelSame-Day Cutoff (AEST)After Cutoff
NPP24/7 โ€” no cutoffAlways same-day
BECS credit~11:00 AM (midday window)D+1
BECS debit~3:00 PMD+1
BPAY~5:30 PMNext business day
HVCS/RTGS~8:00 PMNext business day
SWIFTCurrency-specificNext value date

Interview Questions

Q: What checks must occur before debiting a customer's account for an outbound payment?

  1. Authentication/authorisation โ€” customer is who they claim to be and has authority
  2. Duplicate detection โ€” not a replay of a previous instruction
  3. Schema validation โ€” message is correctly formed
  4. Sanctions/AML/Fraud screening โ€” no compliance blocks
  5. Balance check โ€” sufficient cleared funds
  6. Limit check โ€” within daily/transaction limits Only after all pass should the debit post. Partial failures must roll back cleanly.

Q: What is a Payment Factory and why do banks build one?

A Payment Factory is a centralised orchestration layer that normalises all payment instructions from multiple channels (internet banking, mobile, corporate portals, APIs, batches) into a single processing pipeline. It ensures consistent compliance checks, audit trails, limits enforcement, and channel selection logic. Without it, each channel reimplements these rules independently โ€” creating inconsistency, compliance gaps, and higher maintenance cost.

STP Optimisation

The single biggest driver of low STP rates in outbound payments is incomplete or incorrect beneficiary details. Implementing Confirmation of Payee (CoP) upfront โ€” before the customer submits โ€” significantly reduces the rate of payments that end up in exceptions due to account mismatches.


๐Ÿ“–
Track Page Progress0 / 635 Read
Knowledge Base Completion0%