ACH, Wire Transfers & SWIFT Payments

Learn how ACH, Wire Transfers, and SWIFT payments work from a software engineer's perspective. This guide covers payment architecture, transaction lifecycle, clearing, settlement, routing numbers, SWIFT messages, enterprise banking workflows, and real-world Java banking systems.


Introduction

Moving money electronically is one of the most important capabilities provided by banks.

Every day, financial institutions process millions of domestic and international payments using different payment networks.

The three most important payment systems are:

  • ACH (Automated Clearing House)
  • Wire Transfers
  • SWIFT

Although all three move money from one account to another, they differ significantly in:

  • Speed
  • Cost
  • Settlement
  • Security
  • Use Cases
  • Processing Architecture

As a banking software engineer, understanding these systems is essential because payment applications, core banking systems, fraud detection systems, and reconciliation platforms all integrate with these networks.


Learning Objectives

After completing this article, you will understand:

  • ACH Fundamentals
  • Wire Transfer Fundamentals
  • SWIFT Network
  • Clearing vs Settlement
  • Routing Numbers
  • SWIFT Codes
  • Payment Lifecycle
  • Enterprise Payment Architecture
  • Java Payment Models
  • Banking Best Practices

Electronic Payment Landscape

flowchart TD

Customer

Customer --> ACH
Customer --> Wire
Customer --> SWIFT

ACH --> DomesticPayments

Wire --> UrgentPayments

SWIFT --> InternationalPayments

High-Level Banking Architecture

flowchart LR
    C["Customer"]
    M["Mobile App"]
    G["API Gateway"]
    P["Payment Service"]
    B["Core Banking"]
    ACH["ACH Network"]
    WIRE["Wire Network"]
    SWIFT["SWIFT Network"]

    C --> M
    M --> G
    G --> P
    P --> B

    B --> ACH
    B --> WIRE
    B --> SWIFT

What is ACH?

ACH stands for:

Automated Clearing House

ACH is an electronic payment network primarily used in the United States for low-cost domestic transfers.

Examples:

  • Salary deposits
  • Utility bill payments
  • Mortgage payments
  • Insurance premiums
  • Tax refunds
  • Vendor payments

ACH transactions are processed in batches rather than individually.


ACH Workflow

flowchart LR
    C["Customer"]
    OB["Originating Bank"]
    ACH["ACH Network"]
    RB["Receiving Bank"]
    R["Receiver"]

    C --> OB
    OB --> ACH
    ACH --> RB
    RB --> R

ACH Characteristics

Feature Value
Processing Batch
Speed Same Day / 1–3 Days
Cost Low
Country Domestic (US)
Best For Payroll, Bills, Recurring Payments

ACH Example

Employer

↓

Payroll File

↓

ACH Network

↓

Employee Bank

↓

Savings Account

ACH Batch Processing

Unlike card payments, ACH processes payments in groups.

flowchart TD

Payment1

Payment2

Payment3

Payment4

Batch

Settlement

Payment1 --> Batch
Payment2 --> Batch
Payment3 --> Batch
Payment4 --> Batch

Batch --> Settlement

What is a Wire Transfer?

Wire Transfer is a real-time bank-to-bank transfer.

Unlike ACH:

  • Individual processing
  • Faster settlement
  • Higher fees
  • Used for urgent transfers

Examples:

  • Home purchase
  • Business payment
  • Large-value transfer
  • Emergency transfer

Wire Transfer Workflow

flowchart LR
    S["Sender"]
    SB["Sending Bank"]
    FED["Federal Reserve"]
    RB["Receiving Bank"]
    R["Receiver"]

    S --> SB
    SB --> FED
    FED --> RB
    RB --> R

Wire Characteristics

Feature Value
Processing Individual
Speed Minutes to Hours
Cost Higher
Country Mostly Domestic
Best For High-value Urgent Payments

ACH vs Wire

ACH Wire
Batch Real Time
Low Cost High Cost
Slower Faster
Payroll Urgent Payments
Bills Home Purchase
Salary Business Settlement

What is SWIFT?

SWIFT stands for:

Society for Worldwide Interbank Financial Telecommunication

SWIFT is not a payment system.

It is a secure messaging network that enables banks worldwide to exchange payment instructions.

SWIFT connects over 11,000+ financial institutions across more than 200 countries and territories.


SWIFT Architecture

flowchart LR
    C["Customer"]
    BA["Bank A"]
    SWIFT["SWIFT Network"]
    BB["Bank B"]
    BEN["Beneficiary"]

    C --> BA
    BA --> SWIFT
    SWIFT --> BB
    BB --> BEN

SWIFT Payment Flow

flowchart LR
    A["Initiate"]
    B["Validate"]
    C["Generate SWIFT Message"]
    D["Transmit"]
    E["Receiving Bank"]
    F["Credit Account"]

    A --> B
    B --> C
    C --> D
    D --> E
    E --> F

SWIFT Code

Every participating bank has a SWIFT/BIC code.

Example:

BOFAUS3N

BOFA
US
3N

Meaning:

  • Bank Identifier
  • Country
  • Location

Routing Number

ACH and Wire Transfers in the US use routing numbers.

Example:

111000025

Used for:

  • ACH Payments
  • Domestic Wire Transfers

Clearing vs Settlement

Many developers confuse these concepts.

Clearing

Validation and exchange of payment information.

Settlement

Actual movement of money.

flowchart LR
    A["Payment Request"]
    B["Clearing"]
    C["Settlement"]
    D["Completed"]

    A --> B
    B --> C
    C --> D

Payment Lifecycle

flowchart LR

Initiated

Validated

Authorized

Cleared

Settled

Completed

Initiated --> Validated
Validated --> Authorized
Authorized --> Cleared
Cleared --> Settled
Settled --> Completed

Enterprise Payment Architecture

flowchart TD
    C["Customer"]
    MB["Mobile Banking"]
    APIGW["API Gateway"]
    PS["Payment Service"]
    FD["Fraud Detection"]
    CB["Core Banking"]
    ACH["ACH"]
    WIRE["Wire"]
    SWIFT["SWIFT"]
    LEDGER["Ledger"]
    NOTIFY["Notification"]

    C --> MB
    MB --> APIGW
    APIGW --> PS
    PS --> FD
    PS --> CB

    CB --> ACH
    CB --> WIRE
    CB --> SWIFT

    CB --> LEDGER
    PS --> NOTIFY

Java Payment Model

public class Payment {

    private String paymentId;

    private String paymentType;

    private BigDecimal amount;

    private String currency;

    private String status;

}

Payment Types

ACH

WIRE

SWIFT

CARD

UPI

INTERNAL_TRANSFER

Payment API Example

POST /api/payments

Request

{
  "paymentType":"WIRE",
  "amount":5000,
  "currency":"USD",
  "beneficiary":"John Smith"
}

Response

{
  "paymentId":"PAY12345",
  "status":"PROCESSING"
}

Transaction Status

INITIATED

VALIDATED

AUTHORIZED

PROCESSING

SETTLED

SUCCESS

FAILED

REVERSED

Security

Payment systems implement:

  • TLS Encryption
  • OAuth2
  • JWT Authentication
  • MFA
  • Digital Signatures
  • Tokenization
  • Fraud Detection
  • AML Checks
  • Audit Logs

Fraud Detection

Banks monitor:

  • Unusual locations
  • Large transfers
  • Velocity rules
  • Blacklisted accounts
  • Device fingerprint
  • Sanction screening
  • AML rules

Compliance

Payment systems must comply with:

  • PCI DSS
  • AML
  • KYC
  • OFAC Screening
  • FATF Guidelines
  • NACHA Rules (ACH)
  • SWIFT Security Controls Framework (SWIFT CSP)

Reconciliation

Every payment should reconcile:

flowchart LR
    A["Customer Account"]
    B["Ledger"]
    C["Settlement"]
    D["Reports"]

    A --> B
    B --> C
    C --> D

Banks compare:

  • Payment Request
  • Authorization
  • Settlement
  • Ledger
  • Statements

Real-World Examples

ACH

  • Employee salary
  • Utility bill
  • Insurance payment
  • Mortgage payment

Wire

  • Home purchase
  • Business payment
  • Same-day settlement
  • Large corporate transfer

SWIFT

  • International education fee
  • Overseas vendor payment
  • Cross-border remittance
  • International trade

Monitoring

Monitor:

  • Payment Success Rate
  • Settlement Time
  • Queue Size
  • Gateway Latency
  • Failed Payments
  • Fraud Alerts
  • Reconciliation Errors

Tools:

  • CloudWatch
  • Datadog
  • Grafana
  • Splunk

Common Developer Challenges

  • Duplicate payments
  • Network timeout
  • Partial settlement
  • Retry logic
  • Idempotency
  • Currency conversion
  • Time zone handling
  • Reconciliation failures
  • Message ordering
  • Distributed transactions

Best Practices

  • Use BigDecimal for monetary values
  • Implement idempotency keys
  • Never store sensitive payment information in plain text
  • Encrypt payment messages
  • Validate routing and SWIFT codes
  • Log transaction IDs for tracing
  • Design retry mechanisms carefully
  • Build reconciliation processes
  • Monitor payment latency
  • Follow regulatory requirements

Interview Questions

What is ACH?

ACH (Automated Clearing House) is a batch-based electronic payment network used primarily for low-cost domestic transfers within the United States.


What is a Wire Transfer?

A Wire Transfer is an individual, high-priority bank-to-bank transfer that typically settles within minutes or hours.


Is SWIFT a payment system?

No.

SWIFT is a secure global messaging network that transmits payment instructions between financial institutions. The actual movement of funds occurs through correspondent banking relationships and settlement systems.


What is the difference between Clearing and Settlement?

Clearing Settlement
Validates and exchanges payment information Transfers actual funds
Occurs before settlement Final movement of money

Why is idempotency important in payment systems?

It ensures that retrying the same request does not create duplicate financial transactions.


Summary

In this article, we explored three of the most important banking payment systems:

  • ACH
  • Wire Transfers
  • SWIFT

We covered:

  • Payment architecture
  • ACH processing
  • Wire transfers
  • SWIFT messaging
  • Routing numbers
  • SWIFT codes
  • Clearing
  • Settlement
  • Enterprise architecture
  • Java payment models
  • Security
  • Compliance
  • Monitoring
  • Developer best practices

Understanding these payment systems is essential for building enterprise banking applications. Whether developing Core Banking platforms, payment gateways, treasury systems, or fraud detection services, these concepts form the foundation of modern financial software.