The New Payments Platform (NPP) and OSKO services provide near-instant payment capabilities within Australia. NPP enables real-time processing of transactions, while OSKO, a service overlay of NPP, offers additional features such as the ability to include richer data with payments. This allows for immediate settlement between participating banks, making it ideal for use cases requiring swift and efficient fund transfers.
Capabilities
- Real-Time payments: Execute payments that are processed and settled almost instantly, enhancing cash flow management and reducing the time to receive funds.
- Rich data support: Attach detailed information to transactions, facilitating better reconciliation and reducing the need for manual data entry.
- 24/7 Availability: Transactions can be processed at any time, including weekends and public holidays, providing continuous payment capabilities.
- Request to pay: Ability to request payments from other participants, which can be used in scenarios like invoicing or subscription-based services.
Technical requirements
- Authentication: Use OAuth 2.0 with the Client Credential Grant to obtain a bearer token for API access.
- Endpoints: Access NPP / OSKO APIs via the
/npp/v1.0/payment/submit
endpoint for payment submissions. - Security: Secure communications using HTTPS and OAuth 2.0 to ensure the integrity and confidentiality of transactions.
- Data Format: APIs accept and return JSON payloads, making integration straightforward with modern web applications.
Key features for Developers
- Asynchronous processing: Submit payment requests and handle responses asynchronously, allowing your application to remain responsive.
- Error handling: Robust error codes and messages to help developers quickly identify and resolve issues with API requests.
- Sandbox environment: Test and validate your integration in a dedicated UAT environment before going live.
- Extensive documentation: Comprehensive API documentation, including example requests and responses, to aid in development and troubleshooting.
Example workflow
Fileactive NPP Payment API Enquire Stub Specification. This page details the Fileactive NPP Payment API Status enquiry request and the relevant responses.
NOTE: transaction_identification
used in the request URL’s are to be retrieved from the “Submit-Payment” response ‘Location’ header.
For fetching the further/final state of the submitted payment, please refer: NPP Payment Status
Contents
- Successful Submit Payment to BSB Account number
- Successful Submit Payment to PayID
- Successful Submit Payment to BSB Account number with Emojis
- Submit Payment with Empty Debit Account number fails
- Submit Payment fails with error Limit Arrangement exceeded
- Submit Payment fails for PayID Validation failure
- Successful Enquire Payment Status
- Enquire Payment Status for Unsuccesful Payment
- Enquire Payment Status for payment failed limit arrangement
- Enquire Payment Status for payment failed for Invalid PayID
- Sample JSON pain.a09.001 payloads
Submit
1. Successful Submit-Payment to BSB | Account number
To simulate a successful response, please use the values below in the API request:
Reference: Sample JSON Input message with BSB | Account number (pain.a09.001)
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | any amount between 0.01 and 400.00 |
Example Request
POST https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/submit
Headers:
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
*Note: ‘Location’ from this response is used as the URL for the payment status enquiry*
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
2. Successful Submit-Payment to PayID
To simulate a successful response , please use the ‘Test values’ from the below table into pain.a09.001 (JSON):
Reference: Sample JSON Input message with PayID (pain.a09.001)
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | any amount between 0.01 and 400.00 |
Example Request
POST https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/submit
Headers:
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
Note: ‘Location’ from this response is used as the URL for the payment status enquiry
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
3. Successful Submit-Payment to BSB | Account number with Emojis
To simulate a successful response , please use the ‘Test values’ from the below table into pain.a09.001 (JSON):
Reference: Sample JSON Input message with BSB | Account number (pain.a09.001)
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | any amount between 0.01 and 400.00 |
ExtendedRemittanceInfo | remittance_information_unstructured | sample “👍👨👩👧👦😃” |
Example Request
POST https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/submit
Headers:
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
Note: ‘Location’ from this response is used as the URL for the payment status enquiry
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
4. Submit payment with Empty Debit Account number fails (Negative scenario)
To simulate a successful response , please use the ‘Test values’ from the below table into pain.a09.001 (JSON):
Reference: Sample JSON Input message with BSB | Account number (pain.a09.001)
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | any amount between 0.01 and 400.00 |
DebtorAccountId | debtor_account_identification | ” “ |
Note: Leave the Debtor account ID Value empty in the JSON ““
Example Request
POST https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/submit
Headers:
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
Note: ‘Location’ from this response is used as the URL for the payment status enquiry
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
_Note: Make a Payment Status Enquiry to fetch the current state of this payment (Rejection response in this case). NPP Payment Status
5. Submit Payment fails with error Limit Arrangement exceeded (Negative scenario)
To simulate a successful response , please use the ‘Test values’ from the below table into pain.a09.001 (JSON):
Reference: Sample JSON Input message with BSB | Account number (pain.a09.001)
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | 450.08 |
Example Request
POST https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/submit
Headers:
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
Note: ‘Location’ from this response is used as the URL for the payment status enquiry
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
_Note: Make a Payment Status Enquiry to fetch the current state of this payment (Rejection response in this case). NPP Payment Status
6. Submit Payment fails for PayID Validation failure (Negative scenario)
To simulate a successful response , please use the ‘Test values’ from the below table into pain.a09.001 (JSON):
Reference: Sample JSON Input message with PayID - pain.a09.001
Field | Path | Value |
---|---|---|
Amount | instructed_amount.amount | 450.09 |
Example Request
GET https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status
**Headers:**
Content-Type: application/json
X-Message-Id: 4b635dc0-efa2-11e9-961c-0b8918670b2c
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
{
"secured_pain001": "<signed and encrypted pain.a09.001>"
}
Example Response
Headers:
Note: ‘Location’ from this response is used as the URL for the payment status enquiry
Location: 'https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status'
Body:
{
"transaction_status": "RCVD"
}
_Note: Make a Payment Status Enquiry to fetch the current state of this payment (Rejection response in this case). NPP Payment Status
Status
1. Successful Enquire Payment Status
To simulate a successful response , use the latest “transaction_identification” returned in the “Submit-Payment” request
Pre-Requisite: To get the “transaction_identification” , Please run the scenario “Successful Submit Payment to BSB Account number” from NPP Payment Submit
Element | Test Value |
---|---|
URL | https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/{transaction_identification}/status |
Example Request
GET https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status
Header:
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
Not Required
Example Response
Body:
{
"transaction_identification": "32d292f1-ee65-11ea-84ce-3d837763b9eb",
"transaction_status": "ACSC",
"transaction_status_description": "Completed",
"acceptance_date_time": "2020-09-04T04:15:04.631Z"
}
Note: “acceptance_date_time” holds the time when payment is accepted and started processing by Bank
2. Enquire Payment Status for Unsuccesful Payment
To simulate a successful response , use the latest “transaction_identification” returned in the “Submit-Payment” request
Pre-Requisite: To get the “transaction_identification” , Please run the scenario “Submit Payment with Empty Debit Account number” from NPP Payment Submit(#submit)
Element | Test Value |
---|---|
URL | https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/{transaction_identification}/status |
Example Request
GET https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status
Headers:
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
Not Required
Example Response
Body:
{
"transaction_identification": "526df080-d071-11ea-ab7c-252d6a4e313c",
"transaction_status": "RJCT",
"transaction_status_reason_code": "TD03",
"transaction_status_description": "EC004_005-SchemaValidation",
"acceptance_date_time": "2020-09-04T07:14:42.543Z"
}
3. Enquire Payment Status for payment failed limit arrangement
To simulate a successful response , use the latest “transaction_identification” returned in the “Submit-Payment” request
Pre-Requisite: To get the “transaction_identification” , Please run the scenario “Submit Payment fails with error Limit Arrangement exceeded” from
Element | Test Value |
---|---|
URL | https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/{transaction_identification}/status |
Example Request
GET https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status
Headers:
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
Not Required
Example Response
Body:
{
"transaction_identification": "96f5f781-d1fb-11ea-b01a-2bdcf9570091",
"transaction_status": "RJCT",
"transaction_status_reason_code": "3580",
"transaction_status_description": "Payment failed as it has exceeded your Limit arrangement.",
"acceptance_date_time": "2020-09-04T07:14:42.543Z"
}
3. Enquire Payment Status for payment failed for Invalid PayId
To simulate a successful response , use the latest “transaction_identification” returned in the “Submit-Payment” request
Pre-Requisite: To get the “transaction_identification” , Please run the scenario “Submit Payment fails for PayID Validation failure” from NPP Payment Submit(#submit)
Element | Test Value |
---|---|
URL | https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/{transaction_identification}/status |
Example Request
GET https://api.fileactive.uat.anzgcis.com/npp/v1.0/payment/4b645dc0-efa2-11e9-961c-0b8918670b2c/status
Headers:
Authorization: Bearer <Access Token>
apikey: <apikey>
Body:
Not Required
Example Response
Body:
{
"transaction_identification": "96f5f781-d1fb-11ea-b01a-2bdcf9570091",
"transaction_status": "RJCT",
"transaction_status_reason_code": "2954",
"transaction_status_description": "The PayID provided is no longer valid.",
"acceptance_date_time": "2020-09-04T07:14:42.543Z"
}
Sample JSON Input message with PayID - pain.a09.001
{
"instruction_identification": "TC121/1471873844",
"end_to_end_identification": "b1f35b30373d11ea89fabd599dda3bf2",
"creation_date_time": "2020-01-15T13:21:08Z",
"initiating_party_name": "ANZ Customer 2",
"service_level": "npp.clear.01-x2p1",
"requested_execution_date": "2020-01-15",
"debtor_name": "BILBO BAGGINS",
"debtor_account_identification": "013328101002003",
"debtor_account_type": "BBAN",
"instructed_amount": {
"currency": "AUD",
"amount": "851.10"
},
"creditor_name": "Sarah Jones",
"creditor_alias_type": "TELI",
"creditor_alias_value": "+61-4123456789",
"creditor_account_type": "BBAN",
"creditor_agent_bic": "QBANAU4BXXX",
"remittance_information_unstructured": [
"FIRST LINE ",
"SECOND LINE "
]
}
Sample JSON Input message with BSB | Account number - pain.a09.001
{
"instruction_identification": "TC121/1471873823",
"end_to_end_identification": "7760e5d0f9fa11e9a7d0a180e88ecf79",
"creation_date_time": "2019-10-29T14:16:14Z",
"initiating_party_name": "ANZ Customer 1",
"service_level": "npp.clear.01-x2p1",
"requested_execution_date": "2019-10-29",
"debtor_name": "BILBO BAGGINS",
"debtor_account_identification": "014002837101671",
"debtor_account_type": "BBAN",
"instructed_amount": {
"currency": "AUD",
"amount": "850.10"
},
"creditor_name": "James Smith",
"creditor_account_identification": "017141909999670",
"creditor_account_type": "BBAN",
"creditor_agent_bic": "ANZBAU3LXXX",
"remittance_information_unstructured": [
"FIRST LINE ",
"SECOND LINE "
]
}