Fast Payment Quick Start
Step-by-step guide to integrating Fast Payments and making your first transaction
This guide walks you through integrating Fast Payments and making your first successful near-real time transaction.
By the end of this guide, you will:
- Configure access to our environments
- Build your Fast Payments integration
- Make a Fast Payment API call and receive a response
- Understand how to handle payment responses
- Prepare for Go-Live
For complete endpoint documentation, request and response formats, and field-level details, see the Fast Payments API Reference.
Configure your access to our non-prod environment
Before calling the Fast Payments API, you must configure your environment in the Payment Portal. This ensures your system can securely connect to our APIs.
To call the Fast Payments API, you will need:
- mTLS certificate (available through DigiCert X9)
Used to establish a secure connection - Source IP whitelisting
The IP addresses your system uses must be registered - JWT signing key
Used to authenticate API requests
Make sure you are using the non-prod environment for initial testing.
Refer to the Security & Getting Access guides to complete this step.
Build your initial integration
Depending on your use case, you will need to integrate Fast Payments into your payment workflow.
Fast Payments is typically triggered when:
- A user wants to initiate a payment
- A system triggers a payout (e.g. refunds, disbursements, claims) as part of an automated workflow
At a minimum, your application should:
1. Capture payment details
You will need to collect:
- Amount
- Payment reference (e.g. invoice number and context)
- Beneficiary details:
- BSB
- Account number
- Account name
This is typically done as part of your payment flow.
2. (Optional) Validate beneficiary details
We recommend validating beneficiary details before initiating a payment to reduce misdirected payments. This can be done using the NameCheck API.
3. Prepare to call the Fast Payments API
Once the above is in place, your application should be able to:
- Trigger a Fast Payment request
- Handle the API response
- Store the payment reference for tracking and reconciliation
Make your first Fast Payment request
You can initiate a payment by sending a request with the payment details outlined above in Step 2.
Before sending your request, make sure your application includes all required authentication.
Note: Fast Payments API currently has a 5 transactions per second limit.
Example Request
{
"business_application_header": {
"character_set": "string",
"from": {
"organisation_identification": {
"identification": {
"organisation_identification": {
"other": [
{
"identification": "SENDER_PARTICIPANT",
"scheme_name": {
"proprietary": "PaymentSystemId"
}
},
{
"identification": "SENDER_BANK",
"scheme_name": {
"proprietary": "CoreBankIdentifier"
}
}
]
}
}
}
},
"to": {
"organisation_identification": {
"identification": {
"organisation_identification": {
"other": [
{
"identification": "RECEIVER_PARTICIPANT",
"scheme_name": {
"proprietary": "PaymentSystemId"
}
},
{
"identification": "RECEIVER_BANK",
"scheme_name": {
"proprietary": "CoreBankIdentifier"
}
}
]
}
}
}
},
"business_message_identifier": "sample-business-message-id-001",
"message_definition_identifier": "pain.001.001.11",
"creation_date": "2026-03-02T12:00:00.000Z"
},
"business_document": {
"customer_credit_transfer_initiation": {
"group_header": {
"message_identification": "sample-message-id-001",
"creation_date_time": "2026-01-08T13:50:06.300Z",
"number_of_transactions": "1",
"initiating_party": {
"name": "Example Initiating Party"
}
},
"payment_information": [
{
"payment_information_identification": "sample-payment-info-id-001",
"payment_method": "TRF",
"payment_type_information": {
"service_level": [
{
"code": "INST"
}
]
},
"requested_execution_date": {
"date": "2026-03-24"
},
"debtor": {
"name": "Example Debtor"
},
"debtor_account": {
"identification": {
"other": {
"identification": "12345678901234",
"scheme_name": {
"code": "BBAN"
}
}
}
},
"debtor_agent": {
"financial_institution_identification": {
"clearing_system_member_identification": {
"clearing_system_identification": {
"code": "AUBSB"
},
"member_identification": "123456"
}
}
},
"credit_transfer_transaction_information": [
{
"payment_identification": {
"end_to_end_identification": "sample-end-to-end-id-001"
},
"payment_type_information": {
"category_purpose": {
"code": "CASH"
}
},
"amount": {
"instructed_amount": {
"currency": "AUD",
"amount": "0.10"
}
},
"creditor_agent": {
"financial_institution_identification": {
"clearing_system_member_identification": {
"clearing_system_identification": {
"code": "AUBSB"
},
"member_identification": "654321"
}
}
},
"creditor": {
"name": "Example Creditor"
},
"creditor_account": {
"identification": {
"other": {
"identification": "65432101234567",
"scheme_name": {
"code": "BBAN"
}
}
}
},
"purpose": {
"code": "CASH"
},
"remittance_information": {
"unstructured": ["Sample remittance reference"]
}
}
]
}
]
}
}
}
Example Response
{
"customer_payment_status_report": {
"group_header": {
"message_identification": "MESSAGE_ID",
"creation_date_time": "2026-02-11T03:36:35.576058639Z"
},
"original_group_information_and_status": {
"original_message_identification": "ORIGINAL_MESSAGE_ID",
"original_message_name_identification": "pain.001.001.11"
},
"original_payment_information_and_status": [
{
"original_payment_information_identification": "ORIGINAL_PAYMENT_INFO_ID",
"payment_information_status": "ACSP"
}
]
}
}
See also:
Understand and handle payment responses
The response includes a payment status, indicating the current state of the payment.
| Status | Description |
|---|---|
| PROCESSING | Payment is being processed |
| COMPLETED | Payment has been successfully completed |
| FAILED | Payment was not successful |
Payments are typically processed in near real-time, but your integration should:
- Handle asynchronous outcomes — a payment may initially return a processing status and later transition to a final outcome
- Store and track the
paymentId - Support retries where appropriate
Handling responses in your application
You should:
- Display appropriate confirmation and status messaging to users
- Ensure messages are clear and user-friendly
- Avoid exposing raw API fields (e.g. internal reason codes)
See also: Error Codes and Troubleshooting
Prepare for production and Go-Live
Once your integration is working in non-prod, you can begin preparing for production.
This involves both technical validation and go-live readiness requirements.
1. Complete connectivity and technical testing
Before production access can be enabled, you will need to:
- Verify connectivity to Fast Payments endpoints
- Successfully execute required test cases (evidence required)
- Demonstrate that your integration behaves as expected
Test cases will be provided by our Integration Team.
2. Configure your production environment
Before going live, repeat environment configuration in production:
- Upload and verify your mTLS certificate
- Configure source IP whitelisting
- Publish your JWT signing key
3. Obtain production access and go live
Refer to the Go-Live Checklist and ensure every item has been completed. Once all requirements are met, reviewed, and approved, you will be able to go live and start processing Fast Payments within your own systems.