Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/zai-payto-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: PayTo Payments API
description: "“PayTo” is a new digital payments service that allows NPP-enabled account holders to digitally pre-authorise one-off or recurring real-time payments from their bank account. This swagger document lists APIs for PayTo agreement creation, management and payment initiation. \n\n<u>**Changes in 1.4 version**</u>\n\n\n\nEnriching timestamp fields to include microseconds information - ”created_at” and ”updated_at” fields returned via our API & web hook notifications (agreement and payto payments payloads) will include microseconds in the timestamp. \n\nRevised timestamp format example - 2023-08-10 09:03:16.045622 \n\nError code updates - \n\n **Validate PayTo Agreement API:** \n- Added new error codes - PAYT-ERR-2029, PAYT-ERR-2030, PAYT-ERR-2031 \n- Removed error codes - PAYT-ERR-2026, PAYT-ERR-2024 \n\n **Amend PayTo Agreement Details API:** \n- Added new error codes - PAYT-ERR-2321, PAYT-ERR-2322 \n- Removed error codes - PAYT-ERR-2310, PAYT-ERR-2312 \n\n **Initiate PayTo Payment API:** \n- Added new error code - PAYT-ERR-2526\n\n\n<u>**Changes in 1.3 version**</u>\n\n\n**Payment Amount Validations:** \n\nZai will perform additional payment request compliance checks. This is to help minimise non-compliant payment requests. It is essential to continue to ensure PayTo payment requests are made according to the specified amounts, day/time, frequency, and with all other terms specified in the PayTo Agreement. \n\nPayment amount-related verifications will be performed for: \n- Usage and Variable Agreements: the payment requested must be within the maximum amount field and the amount field (which acts as the minimum amount field) i.e., if the agreement amount is between $50 and $75, the payment instruction amount must be within this range. \n\n Note - Consider specifying a maximum and minimum value amount, as the payment amount can differ each time. These limits may provide clarity for the end-customer and may minimise the probability of them receiving a warning message from their bank. \n- Fixed Agreements: payments initiated must match the agreed amount; i.e., if the agreement amount is $50, the payment instruction amount must also be $50 \n- Balloon Agreements: the fixed and final payment amounts will be checked. The final amount must be equal to or greater than the fixed amount. If it’s not, the payment request will be rejected. i.e., the agreement amount is $1,200 over 10 payments (9 fixed and 1 final payments) the fixed amount could be $100, and the final amount $300. \n\nRelevant error messages have also been added as part of this release around rejecting payments that are not compliant as per amount specified in the agreement.\n\n\n<u>**Changes in 1.2 version**</u>\n\n\n **New APIs:** \n- Get all PayTo Agreements for a user - This API lists all PayTo agreements associated with a particular user. If needed, the results can be filtered to list agreements for a particular status or for a particular type (AUPM/MGCR). \n- Get all PayTo Payment Initiation Requests for an agreement - This API lists all payment requests initiated for an agreement. If needed, the results can be filtered to list requests for a particular status. \n- Recall PayTo Agreement - If a custom expiry duration (anything less than 5 days) has been specified for an agreement creation/amendment request and if the debtor has not responded within the specified timeframe, this API should be used to recall such pending authorisation requests. Post successful recall, the request is considered cancelled and hence cannot be actioned by the debtor. \n\n Note - Agreement creation or Bilateral agreement amendments trigger authorisation requests waiting approval from debtor, which can be recalled via this API, if needed.\n\n **Validate PayTo Agreement API:** \n- New Optional Field: response_requested_by -> This field should be used to specify a custom expiry duration i.e. if the debtor authorisation request needs to be limited to any short duration which is less than the default duration of 5 days. \n- Updated Field Description: agreement_info.debtor_info.debtor_details.debtor_reference -> If end to end Id is not provided in the payment initiation request, then the debtor reference (if provided) in the agreement will be used as end to end identifier for the payments initiated via the agreement.\n\n **Initiate PayTo Payment API:** \n- Updated Field Description: payment_info.end_to_end_id -> If end to end Id is not provided in the payment initiation request, then the debtor reference (if provided) in the agreement will be used as end to end identifier for the payments initiated via the agreement. If debtor reference is also not available, default value “NOTPROVIDED” will set as end to end id for the payment initiation request.\n\n\n<u>**Changes in 1.1 version**</u>\n\n\n **Validate PayTo Agreement API:** \n- Support open ended agreements - For Adhoc frequency, providing point_in_time or count_per_period info is optional. \n- Reformatting debtor account number - During the agreement validation step, Zai may reformat the debtor account number as per the format expected by the payer institutions. Reformatted debtor account number can be accessed either via GET PayTo Agreement Details API after the validation step or via WAPI notification sent by Zai after successful agreement creation step.\n\n **Amend PayTo Agreement Details API:** \n- Ability to clear optional fields if needed using hyphen (-) character.\n\n **Amend PayTo Agreement Status API:** \n- Allow agreement status amendments even if a bilateral amendment is in progress. Example - If agreement details amendment is in progress, it should be possible to pause/suspend the agreement if needed.\n\n **Get PayTo Agreement Details API:** \n- New fields - Status reason code and Status reason description have been added in response. These fields will provide more details for suspended or cancelled agreements.\n\n **Get PayTo Payment Details API:** \n- New fields - Status reason code and Status reason description have been added in response. These fields will provide more details for rejected payments.\n\n **Misc:** \n- Agreement purpose codes have been elaborated to clarify the usage for each type. \n- Status descriptions returned in the GET APIs have been improved to provide more details about the current agreement status. \n- PAYT-ERR-2201, PAYT-ERR-2301 - error descriptions have been updated. \n- PAYT-ERR-2318 - added new error code along with description.\n"
contact:
name: Zai
url: https://developer.hellozai.com/reference/overview
email: support@hellozai.com
version: 1.4-external
servers:
- url: ' https://au-0000.api.assemblypay.com/payto/'
description: Production server and API
- url: https://sandbox.au-0000.api.assemblypay.com/payto/
description: Sandbox (Pre-live) server and API
- url: https://virtserver.swaggerhub.com/AssemblyPlatforms/PayTo/1.4-external
description: SwaggerHub API Auto Mocking
tags:
- name: PayTo Payments
description: Payment Initiation APIs
paths:
/agreements/{agreement_uuid}/payment_requests/initiate:
post:
tags:
- PayTo Payments
summary: Initiate PayTo Payment
description: "This endpoint is to initiate a payment to collect funds from the debtor's account or to retry if the previous payment collection request was rejected due to valid business reasons.\nThis API should be invoked strictly as per the terms and conditions established in the agreement to avoid payment claims. Even the retries should be attempted as per the agreement terms and conditions.\n\n Payment initiation request statuses -\n- PENDING_PAYMENT_INITIATION - when the payment initiation request has been accepted for processing \n- PAYMENT_INITIATED - when the payment initiation request is being processed \n- PAYMENT_INITIATION_COMPLETED - when the payment initiation request is cleared and settled successfully. Funds can be expected in the user's wallet soon \n- PAYMENT_INITIATION_REJECTED - when the payment initiation request is rejected for processing due to validation, funds not available in the debtor's account or any other \nbusiness reason. A retry can be performed in such scenarios \n\nIf the payment collection request has been rejected due to valid business reasons (example - insufficient funds), a retry can be attempted for the same.\n\nPayment_request_uuid generated will be the same for the payment collection request and all subsequent retry attempts, however, instruction_id differs for each.\n\nNote - If Payment initiated on the agreement validity end date fails, it will not be possible to retry or initiate again on the following date as the agreement will be marked as CANCELLED automatically after the agreement validity_end_date. Hence, it is recommended to initiate the last payment few days before the agreement validity end date to cater for retries needed if any."
operationId: initiatePaymentRequest
parameters:
- name: agreement_uuid
in: path
required: true
schema:
type: string
example: d0c40d95-95b7-449b-9835-3c97c0386585
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatePaymentRequest'
required: true
responses:
'401':
description: "Unauthorised \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1000</td><td>Invalid or missing authorisation token.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1000
error_message: Invalid or missing authorisation token.
'403':
description: "Forbidden \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1001</td><td>PayTo feature not available.</td></tr><tr><td>PAYT-ERR-1002</td><td>Request rejected: User associated with the agreement is not active.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1001
error_message: PayTo feature not available.
'400':
description: "Bad Request \n \n <table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1050</td><td>Mandatory info missing: [FieldName] cannot be null or empty.</td></tr><tr><td>PAYT-ERR-1051</td><td>Invalid Data: [FieldName] provided is invalid.</td></tr><tr><td>PAYT-ERR-1052</td><td>Invalid Data: [FieldName] provided should contain any of the values [Acceptable values].</td></tr><tr><td>PAYT-ERR-1053</td><td>Invalid Data: [FieldName] provided is invalid. Expected format [DateFormat].</td></tr><tr><td>PAYT-ERR-1054</td><td>Invalid Data: [FieldName] length is invalid. Expected minimum [MinLength] and maximum [MaxLength].</td></tr><tr><td>PAYT-ERR-1057</td><td>Unrecognized Field: [FieldName] is not a valid field.</td></tr><tr><td>PAYT-ERR-1058</td><td>Invalid Request: request provided is not well-formatted.</td></tr><tr><td>PAYT-ERR-2501</td><td>Payments can be initiated for ACTIVE agreements only.</td></tr><tr><td>PAYT-ERR-2502</td><td>Payments can be initiated only within the agreement validity period.</td></tr><tr><td>PAYT-ERR-2510</td><td>unique_superannuation_code is mandatory along with unique_superannuation_identification.</td></tr><tr><td>PAYT-ERR-2512</td><td>Payment requested for this agreement has been cleared and settled already. Please check the latest status before requesting again.</td></tr><tr><td>PAYT-ERR-2513</td><td>Request rejected: Exceeded the maximum retry attempts allowed for the agreement.</td></tr><tr><td>PAYT-ERR-2514</td><td>Request rejected: Please ensure the payment is retried within valid period.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2501
error_message: Payments can be initiated for ACTIVE agreements only.
- error_code: PAYT-ERR-2502
error_message: Payments can be initiated only within the agreement validity period.
'404':
description: "Not Found \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-2500</td><td>Agreement with provided uuid does not exist.</td></tr><tr><td>PAYT-ERR-2511</td><td>Payment request with provided uuid does not exist.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2500
error_message: Agreement with provided uuid does not exist.
'409':
description: "Conflict \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-2516</td><td>A payment is already in progress for the agreement. Please try again if the current payment request is unsuccessful.</td></tr><tr><td>PAYT-ERR-2517</td><td>Invalid request: Payment has been rejected already and cannot be retried. Please check reason code details.</td></tr><tr><td>PAYT-ERR-2518</td><td>For migrated agreements, payment request with value exceeding $5,000 AUD cannot be initiated. Please consider splitting the amount in multiple requests OR create a new agreement if the payment value needs to be beyond $5,000 AUD in a single request.</td></tr><tr><td>PAYT-ERR-2519</td><td>For the last payment, the instructed amount in the payment should match the last payment terms in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2520</td><td>For the first payment, the instructed amount in the payment should match the first payment terms in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2521</td><td>For FIXE agreement type, the instructed amount in the payment should match the payment amount stated in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2522</td><td>For BALN agreement type, the instructed amount in the payment should match the payment amount stated in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2523</td><td>For BALN agreement types, the instructed amount in the payment should be either the same or greater than the payment amount stated in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2524</td><td>For USGB/VARI agreement types, the instructed amount in the payment should be within the payment amount (min) and maximum amount range stated in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2525</td><td>For USGB/VARI agreement types, the instructed amount in the payment should be either the same or greater than the payment amount stated in the agreement. Please initiate payments as per the agreement’s payment terms.</td></tr><tr><td>PAYT-ERR-2526</td><td>For USGB/VARI agreement types, the instructed amount in the payment should be either the same or less than the maximum amount stated in the agreement. Please initiate payments as per the agreement's payment terms.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2516
error_message: A payment is already in progress for the agreement. Please try again if the current payment request is unsuccessful.
'500':
description: "Internal Server Error \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1003</td><td>An error occurred processing your request. Please try again.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1003
error_message: An error occurred processing your request. Please try again.
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatePaymentResponse'
security:
- bearerAuth: []
/payment_requests/{payment_request_uuid}:
get:
tags:
- PayTo Payments
summary: Get PayTo Payment Initiation Request Details
description: "This operation is to retrieve details of an initiated payment request. This API should be invoked to know the latest status of the payment initiation request if needed.\n\n Payment initiation request statuses which will be returned via this endpoint -\n- PENDING_PAYMENT_INITIATION - when the payment initiation request has been accepted for processing \n- PAYMENT_INITIATED - when the payment initiation request is being processed \n- PAYMENT_INITIATION_COMPLETED - when the payment initiation request is cleared and settled successfully. Funds can be expected in the user's wallet soon \n- PAYMENT_INITIATION_REJECTED - when the payment initiation request is rejected for processing due to validation, funds not available in the debtor's account or any other \nbusiness reason. A retry can be performed in such scenarios"
operationId: getInitiatePaymentStatus
parameters:
- name: payment_request_uuid
in: path
required: true
schema:
type: string
example: g0h40f95-95b7-449b-9835-3c97c0394857
responses:
'401':
description: "Unauthorised \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1000</td><td>Invalid or missing authorisation token.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1000
error_message: Invalid or missing authorisation token
'403':
description: "Forbidden \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1001</td><td>PayTo feature not available.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1002
error_message: PayTo Feature not available
'404':
description: "Not Found \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-2600</td><td>Payment request with provided uuid does not exist.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2600
error_message: Payment request with provided uuid does not exist
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatePaymentStatusResponse'
'500':
description: "Internal Server Error \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1003</td><td>An error occurred processing your request. Please try again.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1003
error_message: An error occurred processing your request. Please try again.
security:
- bearerAuth: []
/agreements/{agreement_uuid}/payment_requests:
get:
tags:
- PayTo Payments
summary: Get All PayTo Payment Initiation Requests for an Agreement
description: "This operation is to retrieve all payment requests initiated for an agreement in the provided period (date range). Payment requests for a period of maximum one year or less than it can be retrieved at a time.\n\n By default, all payment initiation requests (along with details) irrespective of the status will be listed via this endpoint. However, the results can be filtered based on status(es) if needed.\n\nRequest parameter descriptions:\n\n - status - List of valid agreement statuses. Example - Retrieve active and suspended payments only.\n - Valid values - PENDING_PAYMENT_INITIATION, PAYMENT_INITIATED, PAYMENT_INITIATION_COMPLETED, PAYMENT_INITIATION_REJECTED\n - start_date - Date range start, example - fetch all payments created between June to December 2022.\n - end_date - Date range end, example - fetch all payments created between June to December 2022.\n - size - Number of payments per page. Default value is 20.\n - page - Page number. Default value is 0."
operationId: getInitiatePaymentStatusList
parameters:
- name: agreement_uuid
in: path
required: true
schema:
type: string
example: d0c40d95-95b7-449b-9835-3c97c0386585
- name: start_date
in: query
required: true
schema:
type: string
example: '2021-11-10'
- name: end_date
in: query
required: true
schema:
type: string
example: '2022-11-10'
- name: status
in: query
required: false
schema:
type: array
items:
type: string
enum:
- PAYMENT_INITIATED
- PENDING_PAYMENT_INITIATION
- PAYMENT_INITIATION_COMPLETED
- PAYMENT_INITIATION_REJECTED
enum:
- PAYMENT_INITIATED
- PENDING_PAYMENT_INITIATION
- PAYMENT_INITIATION_COMPLETED
- PAYMENT_INITIATION_REJECTED
- name: size
in: query
required: false
schema:
type: integer
format: int32
default: 20
- name: page
in: query
required: false
schema:
type: integer
format: int32
default: 0
responses:
'401':
description: "Unauthorised \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1000</td><td>Invalid or missing authorisation token.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1000
error_message: Invalid or missing authorisation token.
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/InitiatePaymentListResponse'
'400':
description: "Bad Request \n \n <table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1058</td><td>Invalid Request: Failed to read the request.</td></tr>\"<tr><td>PAYT-ERR-1052</td><td>Invalid Data: [FieldName] provided should contain any of the values [Acceptable values].</td></tr><tr><td>PAYT-ERR-1053</td><td>Invalid Data: [FieldName] provided is invalid. Expected format [DateFormat].</td></tr><tr><td>PAYT-ERR-2601</td><td>Invalid Date Range: Start date should be before end date.</td></tr><tr><td>PAYT-ERR-2602</td><td>Invalid Date Range: Range provided should be less than or maximum upto a year.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2601
error_message: 'Invalid Date Range: Start date should be before end date.'
'500':
description: "Internal Server Error \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1003</td><td>An error occurred processing your request. Please try again.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1003
error_message: An error occurred processing your request. Please try again.
'403':
description: "Forbidden \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-1001</td><td>PayTo feature not available.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-1001
error_message: PayTo feature not available.
'404':
description: "Not Found \n<table><tr><td><b>Error Code</b></td><td><b>Error Message</b></td></tr><tr><td>PAYT-ERR-2400</td><td>Agreement with provided uuid does not exist.</td></tr></table>"
content:
application/json:
schema:
$ref: '#/components/schemas/PayToErrorResponse'
example:
errors:
- error_code: PAYT-ERR-2400
error_message: Agreement with provided uuid does not exist.
security:
- bearerAuth: []
components:
schemas:
RetryInformation:
type: object
properties:
payment_request_uuid:
maxLength: 36
minLength: 36
pattern: ^([a-zA-Z0-9_-]){36}$
type: string
description: Unique identifier for the payment request (in UUID format) for which the retry is being attempted.
example: d0c40d95-95b7-449b-9835-3c97c0386585
description: "Retry information should be provided only if the payment request was rejected previously due to business reasons and a retry for the same is being attempted.\n \n **Property descriptions**: \n \n- **payment_request_uuid** - Unique identifier for the payment request (in UUID format) for which the retry is being attempted."
RetryAttempts:
type: object
properties:
count:
type: integer
description: Retries count.
format: int32
example: 1
retry_info:
type: array
description: Retry info for initiate payment.
items:
$ref: '#/components/schemas/RetryInfo'
description: "List of retry attempts for the payment request. \n \n **Property descriptions**: \n\n- **count** - Payment retry count. \n\n- **retry_info** - Payment information for each retry attempt, listed in descending order of retry attempts."
InitiatePaymentListResponse:
type: object
properties:
total_count:
type: integer
description: Total number of initiate payments available
format: int64
example: 1
initiate_payment_status_responses:
type: array
description: List of Initiate Payment requests.
items:
$ref: '#/components/schemas/InitiatePaymentStatusResponse'
description: "List of Initiate Payment Status details. \n"
InitiatePaymentResponse:
type: object
properties:
payment_request_uuid:
maxLength: 36
minLength: 36
type: string
description: Unique identifier for the payment request in UUID format.
example: d0c40d95-95b7-449b-9835-3c97c0386585
agreement_uuid:
maxLength: 36
minLength: 36
type: string
description: Unique agreement identifier.
example: d0c40d95-95b7-449b-9835-3c97c0386585
instruction_id:
maxLength: 35
minLength: 1
type: string
description: Unique identifier for the payment request generated as per NPPA guidelines.
example: BANKNTSTXXXI20180501000000000000010
status:
title: Status
type: string
description: Payment initiation request statuses:<table><tr><td>Code</td><td>Description</td></tr><tr><td>PENDING_PAYMENT_INITIATION</td><td>Payment request is pending for initiation.</td></tr><tr><td>PAYMENT_INITIATION_REJECTED</td><td>Payment request is rejected.</td></tr></table>
example: PENDING_PAYMENT_INITIATION
enum:
- PENDING_PAYMENT_INITIATION
- PAYMENT_INITIATION_REJECTED
created_at:
type: string
description: Payment request creation date in UTC format.
example: '2022-03-21 16:25:00.190831'
updated_at:
type: string
description: Payment request modification date in UTC format.
example: '2022-03-21 16:25:00.190831'
agreement_id:
type: string
description: Unique agreement identifier generated by NPPA.
example: ef0fcd9799431ef783204966f010603c
PaymentInformation:
required:
- instructed_amount
- last_payment
type: object
properties:
instructed_amount:
maxLength: 19
minLength: 1
pattern: ^(?=.{1,19}$)[1-9]{1}[0-9]{0,18}$
type: string
description: 'Specifies an amount in cents.
Specifies the amount to be debited the from debtor''s bank account before deduction of charges.'
example: '1000'
last_payment:
type: boolean
description: 'Indicates a "Yes" or "No" type of answer for an element.
Indicates that it is the last payment associated with the agreement. Post this, the agreement will be marked as CANCELLED automatically and no further payments can be requested on this agreement.'
default: false
end_to_end_id:
maxLength: 35
minLength: 1
pattern: ^([a-zA-Z0-9_-]){1,35}$
type: string
description: 'Specifies a character string with a maximum length of 35 characters.
Unique identification to unambiguously identify the payment. This identification is passed on, unchanged, throughout the entire end-to-end chain. It is recommended to provide this identifier which can be passed between entities to identify the payment during queries/investigations if any. If not provided, debtor reference (if available) from the agreement will be populated. If none available, default value "NOTPROVIDED" will be populated in the payment initiation request.'
example: 0h40f9595b7449b98353c97c039485
remittance_info:
maxLength: 280
minLength: 1
type: string
description: 'Specifies a character string with a maximum length of 280 characters.
Free text field to provide any narrative for the payment.'
example: Remittance Info
unique_superannuation_id:
maxLength: 35
minLength: 1
type: string
description: 'Specifies a character string with a maximum length of 35 ASCII printable characters.
For agreements created with PURPOSE_CODE = PENS (pension payments), this should be the USI number for the superannuation fund.'
example: unique superannuation id
unique_superannuation_code:
maxLength: 35
minLength: 1
type: string
description: 'Specifies a character string with a maximum length of 35 ASCII printable characters.
For agreements created with PURPOSE_CODE = PENS (pension payments), this should be the USI - code indicating the identifier to whom the superannuation fund will be provided.'
example: unique superannuation code
description: "Payment request details.\n \n **Property descriptions**: \n \n - **instructed_amount** -
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zai/refs/heads/main/openapi/zai-payto-payments-api-openapi.yml