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

sequenceDiagram participant Developer participant NPP/OSKO API Developer->>NPP/OSKO API: POST /v1.0/auth (Client Credentials) NPP/OSKO API-->>Developer: 200 OK (Bearer Token) Developer->>NPP/OSKO API: POST /npp/v1.0/payment/submit (Payment Request) NPP/OSKO API-->>Developer: 202 Accepted (Payment Processing) Developer->>NPP/OSKO API: GET /npp/v1.0/payment/status/{requestId} alt Payment Successful NPP/OSKO API-->>Developer: 200 OK (Payment Details) else Payment Pending NPP/OSKO API-->>Developer: 204 No Content (Payment Pending) else Payment Failed NPP/OSKO API-->>Developer: 400 Bad Request (Error Details) end

 

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


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"
}


back to top




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"
}


back to top





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"
}


back to top




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


back to top




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


back to top




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


back to top


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


back to top



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"
 }

back to top


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"
     }

back to top


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"
     }


back to top



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 "
    ]
}

back to top