openapi: 3.2.0
info:
description: "# Introduction\n\nThe Monoova PayTo API is designed to efficiently handle real time financial transactions, providing a reliable platform for creating payment agreements and initiating payments. It offers a streamlined transaction process, ensuring speed and security for businesses and users with benefits above and beyond a direct debit alternative.\n\nMonoova's PayTo API supports synchronous and asynchronous operations, allowing flexible integration based on varying business needs. The asynchronous API option is particularly beneficial for handling batch operations requiring extended processing time, enhancing overall system performance and reliability. Additionally, Monoova provides webhook subscriptions, enabling users to receive timely updates and notifications about transaction events, which helps maintain transparency and control over financial activities.\n\n## Process\n\nPayTo allows you to debit an enabled domestic bank account in real time. \n\n* First, you create a **payment agreement** between a payer and a payee. The terms of the agreement determine the amount and schedule of allowed debits. When you create a Payment Agreement, the account is validated in real time, so you can ensure the account details are correct.\n\n* Next, the payer authorises the agreement through their banking app.\n\n* Finally, real time **payment initiations** can be triggered. If successful, funds will be credited to the payee account in real time and made available for disbursement. Because recipients can access funds faster than traditional direct debit systems, this is particularly beneficial for businesses or individuals relying on prompt cash flow payments.\n\n* If you would like to modify the terms of the agreement, you can use the amendment API's.\n\n# Getting Started\n\n1. Access the Domestic Payments Portal:\n\n * Sandbox Environment:\n - Register: If you are new, [register](https://sandbox.monoova.com) to gain Sandbox access.\n - Login: If you already have Sandbox credentials, [log in](https://sandbox.monoova.com) to continue your work.\n\n * Production Environment:\n - Login: Login to the [Production portal](https://payments.monoova.com) using the credentials you obtained during onboarding.\n\n2. Activate Your API Key\n\n * Generate API Key:\n - If you do not know your API Key or need to reset it, navigate to Manage > Accounts to generate or regenerate your API Key after logging into the portal.\n\n * Activate API Gateway Access:\n - Go to Manage > API Gateway and enter your API Key to activate API Gateway access for your mAccount.\n\n3. Configure API Access\n\n Please [contact our integration team](https://www.monoova.com/contact) to configure your account settings. This step ensures that your account is allowed to access the service.\n\n4. Explore API Endpoints\n\n Use the API documentation to plan your integration. It provides details and examples of usage.\n\n5. Onboarding and Support\n\n Our integration team will guide you from the initial setup to the final running implementation, providing support throughout the process.\n\n# Sandbox Testing for PayTo Agreements\n\nIn the Sandbox environment, it is possible to test different outcomes for PayTo agreements by altering the values of the agreement. This allows for a comprehensive evaluation of potential scenarios in a controlled setting.\n\n## Use the following payment details when testing in Sandbox:\n\n\n
\n \n | Account Name | \n BSB | \n Account Number | \n PayID | \n
\n \n | Monoova Sample 1 | \n 802950 | \n 22090100 | \n +61-422020901 | \n
\n \n | Monoova Sample 2 | \n 802950 | \n 22090101 | \n sample@monoova.com | \n
\n \n | Monoova Sample 3 | \n 802950 | \n 22090102 | \n 38126015228 | \n
\n \n | Monoova Sample 4 | \n 802950 | \n 22090103 | \n 987654321 | \n
\n
\n\n## Testing Payment Agreements\n\nPayment agreements are automatically approved or declined in the Sandbox environment, depending on the amount or `maxAmount` included in the agreement request. If both `amount` or `maxAmount` are passed, the `amount` will determine the behavior.\n\nFor basic testing of Payment Agreements, the following test cases are recommended. A more comprehensive list of test cases is available should you wish to examine edge cases.\n\n### Response for Payment Agreements\n\n\n\n \n | Response | \n Reason Code | \n Contains Value | \n Example | \n Action | \n
\n \n | Agreement Approved | \n - | \n .00 | \n $5.00, $10.00, $50.00 | \n Approve | \n
\n \n | Requested By Customer | \n M019 | \n .19 | \n $5.19, $10.19, $50.19 | \n Decline | \n
\n
\n\n### Other Test Cases\n\n\n\n \n | Response | \n Reason Code | \n Contains Value | \n Example | \n Action | \n
\n \n | Invalid Debtor Account Number | \n M001 | \n .01 | \n $5.01, $10.01, $50.01 | \n Decline | \n
\n \n | Closed Debtor Account Number | \n M003 | \n .03 | \n $5.03, $10.03, $50.03 | \n Decline | \n
\n \n | Blocked Account | \n M004 | \n .04 | \n $5.04, $10.04, $50.04 | \n Decline | \n
\n \n | Invalid Debtor Account Type | \n M005 | \n .05 | \n $5.05, $10.05, $50.05 | \n Decline | \n
\n \n | Transaction Forbidden | \n M006 | \n .06 | \n $5.06, $10.06, $50.06 | \n Decline | \n
\n \n | Transaction Not Supported | \n M007 | \n .07 | \n $5.07, $10.07, $50.07 | \n Decline | \n
\n \n | Not Allowed Currency | \n M008 | \n .08 | \n $5.08, $10.08, $50.08 | \n Decline | \n
\n \n | Invalid Amount | \n M009 | \n .09 | \n $5.09, $10.09, $50.09 | \n Decline | \n
\n \n | Amount Exceeds Agreed Limit | \n M010 | \n .10 | \n $5.10, $10.10, $50.10 | \n Decline | \n
\n \n | No Mandate Service On Customer | \n M018 | \n .18 | \n $5.18, $10.18, $50.18 | \n Decline | \n
\n \n | Mandate Cancelled Due To Fraud | \n M022 | \n .22 | \n $5.22, $10.22, $50.22 | \n Decline | \n
\n \n | No Answer From Customer | \n M027 | \n .27 | \n $5.27, $10.27, $50.27 | \n Decline | \n
\n \n | Regulatory Reason | \n M028 | \n .28 | \n $5.28, $10.28, $50.28 | \n Decline | \n
\n \n | Creditor not on Whitelist of Debtor | \n M030 | \n .30 | \n $5.30, $10.30, $50.30 | \n Decline | \n
\n \n | Creditor on Blacklist of Debtor | \n M031 | \n .31 | \n $5.31, $10.31, $50.31 | \n Decline | \n
\n \n | Unknown end Customer | \n M032 | \n .32 | \n $5.32, $10.32, $50.32 | \n Decline | \n
\n
\n\n\n
\n\nIn addition to a sample request, the scheme for each endpoint and associated data tables are in the appendix at the end of this document.\n\nTo try out our API, you can use a client such as [Postman](https://www.getpostman.com).\n\nYou can download a postman collection of our API by clicking the link below:\n\n[](https://god.gw.postman.com/run-collection/19891519-fccdc471-7f26-4f4c-bba7-4e0dda5ab9e3?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D19891519-fccdc471-7f26-4f4c-bba7-4e0dda5ab9e3%26entityType%3Dcollection%26workspaceId%3D0a304f49-2e6e-4498-8d43-3b68ee26aee6)\n\n**Note:** Please note we do not accept TLS 1.0 or 1.1 connections\n"
version: v1
title: Monoova PayTo Manage Payment Agreements API
contact:
name: Monoova Support
email: support@monoova.com
url: https://www.monoova.com
x-logo:
url: https://movdpwebsiteprodae.blob.core.windows.net/images/Monoova-Primary-Logo-Black-RGB.png
altText: Monoova logo
servers:
- url: https://api.monoova.com
description: Production URL#
- url: https://sand-api.monoova.com
description: Sandbox URL
security:
- BearerAuth: []
tags:
- name: Manage Payment Agreements
description: Methods to handle the payment agreement lifecycle. There are 2 ways in which a payment agreement can be amended – unilaterally (no payer approval needed), and Bilaterally (payer approval required)
paths:
/au/payto/pam-v1/PaymentAgreement:
post:
tags:
- Manage Payment Agreements
summary: Create a Payment Agreement
description: 'The purpose of this endpoint is to create a payment agreement. An agreement can only initiate payments once the Payer approves it. Payers must respond by the respondByTime specified while creating the mandate. If respondByTime is not provided, it will be defaulted to 5 days for the Payer to approve or decline a payment agreement. Rate Limit Payment Agreement and Initiation endpoints have rate limits applied at a service level. If you process at volumes that surpass the rate limits, you will get a 429 HTTP status code for ''too many requests''. If you see this error, you will need to retry. If you experience this issue frequently, space out the calls. Alternatively, the Async endpoints have a much higher rate limit applied. A webhook will notify customers about the approval/declination of a payment agreement. There is also get payment agreement endpoints to check the status of the payment agreement.
To receive payments in an account with Monoova, please create an automatcher account and use it under payee details when creating payment agreement. Automatcher accounts can also be created through the Sandbox Portal. Received payments through an automatcher account will be reported via webhook notification event name “PayToReceivePayment”.
Additionally, sample test accounts will need to be used for the payer-consumer side of the mandate on Sandbox. Please find below sample test payer accounts: | Account Name | Monoova Sample 1 | Monoova Sample 2 | Monoova Sample 3 | Monoova Sample 4 | Monoova Sample 5 |
| BSB | 802950 | | | | |
| Account Number | 22090100 | | | | |
| PayID - Phone | | +61-422020901 | | | |
| PayID - Email | | | sample@monoova.com | | |
| PayID - ABN | | | | 38126015228 | |
| PayID - Organisation ID | | | | | 987654321 |
Below are a series of reference tables for the create and initiate payment agreement schemas Frequency
| Code | Name | Description |
| ADHO | Adhoc | Event takes place on request or as necessary. |
| DAIL | Daily | Event takes place every day. |
| FRTN | Fortnightly | Event takes place every two weeks. |
| INDA | IntraDay | Event takes place several times a day. |
| MIAN | SemiAnnual | Event takes place every six months or two times a year. |
| MNTH | Monthly | Event takes place every month or once a month. |
| QURT | Quarterly | Event takes place every three months or four times a year. |
| WEEK | Weekly | Event takes place once a week. |
| YEAR | Annual | Event takes place every year or once a year. |
Agreement Type
| Code | Name | Description |
| FIXE | Fixed | Payment amount is fixed. |
| USGB | UsageBased | Payment amount is based on usage. |
| VARI | Variable | Payment amount is variable. |
Agreement Type + Amount
| agreementType | amount | maximumAmount | Rules |
| FIXE | Valid numeric value | NA | If Fixed, only amount should have values. Max amount should not be present |
| USGB | Valid numeric value | Valid numeric value | If Usage based, max amount is recommended. However, amount and max amount are optional. If both amount and max amount are present, amount should be less than max amount |
| VARI | Valid numeric value | Valid numeric value | If Variable, max amount is recommended. However, amount and max amount are optional. If both amount and max amount are present, amount should be less than max amount |
'
operationId: post-paymentagreement
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentAgreementDto'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentAgreementResponse'
'400':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'403':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'404':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'500':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'502':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'504':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
/au/payto/pam-v1/paymentagreement/{paymentAgreementUID}/unilateral:
patch:
tags:
- Manage Payment Agreements
summary: Unilateral Amendment
description: Unilateral changes to a payment agreement can be done without the payer’s approval. The only fields that can be changed unilaterally are the payee object and agreement descriptions.
operationId: patch-paymentagreement-id-unilateral
parameters:
- name: paymentAgreementUID
in: path
required: true
schema:
type:
- string
- 'null'
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Za-z0-9_-]
example: MONPAG12345
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/AmendUnilateralDetailsDto'
example:
description: payroll pag1
shortDescription: payroll pag1
payeeDetails:
payeeType: ORGN
payeeLinkedBsb: 802980
payeeLinkedAccount: 33333333
payeeLinkedPayId: abc@gmail.com
payeeLinkedPayIdType: EMAIL
payeeAccountName: PayCo
ultimatePayee: PayCo
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmendUnilateralDetailsResponse'
'400':
description: Error
content:
application/json:
example:
traceId: b008558d-b6df-4935-b2aa-39b2f8d467be
errors:
- errorCode: PAM_BR_AMEND_FORBIDDEN
errorMessage: Can only amend payment agreement in active or paused status
'403':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'404':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'500':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'502':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'504':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
/au/payto/pam-v1/paymentagreement/{paymentAgreementUID}/bilateral:
patch:
tags:
- Manage Payment Agreements
summary: Bilateral Amendment
operationId: patch-paymentagreement-id-bilateral
description: Bilateral changes can't be done without the payer’s approval. Changes can be made to payment terms. Changes made using this end point will only get reflected after payer approves the change. Until new terms are approved, payment agreement will be active with its last approved terms.
parameters:
- name: paymentAgreementUID
in: path
required: true
schema:
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Za-z0-9_-]
example: MONPAG12345
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AmendBilateralDetailsDto'
example:
automaticRenewal: false
endDate: '2022-09-30'
respondByTime: '2022-09-1T08:20:50.52Z'
paymentTerms:
numberOfTransactionsPermitted: 10
frequency: MNTH
amount: 10.0
maximumAmount": 1000.0
agreementType: VARI
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmendBilateralDetailsResponse'
'400':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'403':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'404':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'500':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'502':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'504':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
/au/payto/pam-v1/paymentagreement/{paymentAgreementUID}/status:
patch:
tags:
- Manage Payment Agreements
summary: Amend Payment Agreement Status
description: 'This endpoint allows the initiator to change the status of a payment agreement. Available statuses are `active`, `pause`, or `cancel`.
Status Reason Code
| Code | Reason |
| AC02 | Invalid Debtor Account Number |
| AC04 | Closed Account Number |
| AC05 | Closed Debtor Account Number |
| AC06 | Blocked Account |
| AC13 | Invalid Debtor Account Type |
| AG01 | Transaction Forbidden |
| AG03 | Transaction Not Supported |
| AM03 | Not Allowed Currency |
| AM12 | Invalid Amount |
| AM14 | Amount Exceeds Agreed Limit |
| CTAM | Contract Amended |
| CTCA | Contract Cancellation Initiated By Debtor |
| CTEX | Contract Expired |
| MCFC | Payment Agreement Suspended Final Collection |
| MCOC | Payment Agreement Suspended Once Off Collection |
| MD07 | End Customer Deceased |
| MD08 | No Payment Agreement Service By Agent |
| MD09 | No Payment Agreement Service On Customer |
| MD16 | Requested By Customer |
| MD17 | Requested By Initiating Party |
| MD20 | Payment Agreement Expired |
| MD21 | Payment Agreement Cancelled Due To Fraud |
| MS02 | Not Specified Reason Customer Generated |
| MS03 | Not Specified Reason Agent Generated |
| MSUC | Payment Agreement Suspended 7 Consecutive Unsuccessful Collections |
| NARR | Narrative |
| NOAS | No Answer From Customer |
| RR04 | Regulatory Reason |
| SL01 | Specific Service Offered By Debtor Agent |
| SL11 | Creditor Not On Whitelist Of Debtor |
| SL12 | Creditor On Blacklist Of Debtor |
'
operationId: patch-paymentagreement-id-status
parameters:
- name: paymentAgreementUID
in: path
required: true
schema:
type: string
description: Id to uniquely identify a payment agreement.
maxLength: 35
pattern: ^[A-Za-z0-9_-]{1,35}$
example: MONPAG12345
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AmendPaymentAgreementStatusDto'
example:
statusChange: pause
reasonCode: AC02
reasonDescription: Amend mandate status
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmendPaymentAgreementStatusResponse'
'400':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'403':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'404':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'500':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'502':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'504':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
/au/payto/pam-v1/paymentAgreement/{PaymentAgreementUID}/recall/{actionIdentification}:
patch:
tags:
- Manage Payment Agreements
summary: Recall a Payment Agreement
description: The purpose of this operation is to recall a pending payment agreement before it is approved or declined by the payer servicer/customer.
operationId: patch-paymentagreement-id-recall
parameters:
- name: PaymentAgreementUID
in: path
required: true
schema:
type: string
maxLength: 35
pattern: ^[A-Za-z0-9_-]
description: Id to uniquely Identify a payment agreement.
example: MONPAG12345
- name: actionIdentification
in: path
required: true
schema:
type: string
maxLength: 35
pattern: ^[a-f0-9]{12}1[a-f0-9]{3}[89ab][a-f0-9]{15}$
description: unique Id used to identify pending(unapproved) actions. This id is assigned when a new payment agreement is created or when a bilateral amendment is made.
example: 6ae818a80bc362618aeaece46ee70e4a
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RecallPaymentAgreementLastActionResponse'
'400':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'403':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'404':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'500':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'502':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
'504':
description: Error
content:
application/json:
example:
traceId: f1a7fbd7-ca39-4b98-b247-f4e0e004f152
errors:
- errorCode: string
errorMessage: string
components:
schemas:
CreatePaymentAgreementResponse:
type: object
properties:
traceId:
type: string
example: 1dabfaa9-abe8-4d2d-a69a-b723079d84ed
paymentAgreementUID:
type: string
maxLength: 35
pattern: ^[A-Za-z0-9_-]
description: Id to uniquely Identify a payment agreement.
example: BCORP123456
PaymentAgreementStatus:
type: string
description: This is the status of the payment agreement. Status (e.g. Active, Cancelled, ...). See Payment Agreement Status for all options.
example: Created
PaymentAgreementStatusDescription:
type:
- string
- 'null'
description: This describes the status. For example, a status of ‘created’ will have a description of ‘Pending Payer Approval’
example: Pending Payer Approval
mmsId:
type: string
description: This is the unique ID that identifies this payment agreement.
example: a9ba56f64baa1dee9ac2d7f87c2621fa
registrationDateTime:
type: string
description: The date and time that you created the mandate.
example: 2022-09-05 05:29:53.031000+00:00
actionIdentification:
type: string
example: b9c91b0f382b1fa5bf7e87aaad094eee
additionalProperties: false
AmendUnilateralDetailsDto:
type: object
properties:
description:
type:
- string
- 'null'
description: Reason for the mandate setup as narrative text. Either "description" or "short_description" must be present.
maxLength: 140
example: payroll pag1
shortDescription:
type:
- string
- 'null'
description: Reason for the mandate setup as narrative text. Either "description" or "short_description" must be present.
maxLength: 35
example: payroll pag1
payeeDetails:
$ref: '#/components/schemas/PayeeDetailsDto'
additionalProperties: false
AmendUnilateralDetailsResponse:
type: object
properties:
paymentAgreementUID:
type: string
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Z0-9_-]
example: BCORP1662358223
traceId:
type: string
example: 1dabfaa9-abe8-4d2d-a69a-b723079d84ed
mmsId:
type: string
description: This is the unique ID that identifies this payment agreement.
example: aa0a5d7eedcd1c01999b2906b1edd8cd
actionIdentification:
type: string
example: b9c91b0f382b1fa5bf7e87aaad094eee
additionalProperties: false
CreatePaymentAgreementDto:
type: object
required:
- paymentAgreementUID
properties:
paymentAgreementUID:
type: string
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Z0-9_-]
example: ABCORP123456
payeeDetails:
$ref: '#/components/schemas/PayeeDetailsDto'
payerDetails:
$ref: '#/components/schemas/PayerDetailsDto'
paymentTerms:
$ref: '#/components/schemas/PaymentTermsDto'
paymentDetails:
$ref: '#/components/schemas/PaymentDetailsDto'
additionalProperties: false
AmendPaymentAgreementStatusDto:
type: object
properties:
paymentAgreementUID:
type: string
description: 'Unique ID of the payment agreement.
'
statusChange:
type: string
description: The status that you wish to change the payment agreement to. Note: You cannot change a status from ‘Created’ to ‘Cancel’. If you wish to recall a payment agreement before the payer has approved it, you need to use the Recall Agreement endpoint. | Current Status | Payload Status | New Status | Note |
| Active | Cancel | Cancelled | Reason Code is mandatory. |
| Active | Pause | Paused | Reason Code is mandatory. |
| Paused | Resume | Active | Only party who suspended can Activate payment agreement |
| Paused | Cancel | Cancelled | Reason Code is mandatory. |
| Cancel | - | - | This is the final status |
reasonCode:
type: string
description: 'Reason code for changing the agreement status. Must be provided when the status is `Cancel` or `Pause`.
'
example: AC02
reasonDescription:
type: string
description: 'Description of the reason for the change in status.
'
example: Invalid Debtor Account Number
maxLength: 256
AmendBilateralDetailsDto:
type: object
properties:
automaticRenewal:
type:
- boolean
- 'null'
endDate:
type:
- string
- 'null'
description: End date of the validity of the mandate. If specified, the mandate is valid until 23:59:59.999 Australia Sydney time on this date.
respondByTime:
type:
- string
- 'null'
format: date-time
description: Optional time used to indicate by when resolution of a bilateral action is requested from the other party to the payment agreement. It will be provided in any notification sent to the counterparty. This time is for informational purposes only and does not affect the expiry time imposed by the MMS. Must be future date and less than 5 days If not provided value will be defaulted to agreement creation datetime + 5 day Default time zone is UTC
paymentTerms:
$ref: '#/components/schemas/PaymentTermsDto'
additionalProperties: false
RecallPaymentAgreementLastActionResponse:
type: object
properties:
paymentAgreementUID:
type: string
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Z0-9_-]
example: BCORP12345678
mmsId:
type: string
description: This is the unique ID that identifies this payment agreement.
example: cf9cba5ea20c1e6b87aa04cc8955abcc
paymentAgreementStatus:
type: string
description: This is the status of the payment agreement.
example: Cancelled
paymentAgreementStatusDescription:
type: string
description: This describes the status. For example, a status of ‘created’ will have a description of ‘Pending Payer Approval’
example: Mandate action recalled
actionIdentification:
type: string
description: unique Id used to identify pending(unapproved) actions. This id is assigned when a new payment agreement is created or when a bilateral amendment is made.
example: 6ae818d80ba362618a2aece46ee70e4a
additionalProperties: false
PaymentDetailsDto:
required:
- automaticRenewal
- purpose
- startDate
properties:
automaticRenewal:
type:
- boolean
- 'null'
example: false
description: Determines if the payment agreement automatically renews at the end of the defined period. Possible values - True, False endDate cannot be present if automaticRenewal is set as 'TRUE', endDate must be present if automaticRenewal is set as 'FALSE'
description:
type:
- string
- 'null'
description: Reason for the mandate setup as narrative text. Either "description" or "short_description" must be present
maxLength: 140
example: null
shortDescription:
description: Reason for the mandate setup as narrative text. Either "description" or "short_description" must be present
type:
- string
- 'null'
maxLength: 35
example: PayToTest_001
purpose:
type:
- string
- 'null'
description: Payment Purpose Code. Possible Values- MORT - Mortgage Payments UTIL - Utility Payments LOAN - Loan Payments DEPD - Dependant Support Payments GAMP - Gambling Payments RETL - Retail Payments SALA - Salary Payments PERS - Personal Payment GOVT - Government Payments PENS - Pension Payments TAXS - Tax Payments OTHR - Other Service Payments
example: MORT
respondByTime:
type:
- string
- 'null'
description: Optional time used to indicate by when resolution of a bilateral action is requested from the other party to the payment agreement. It will be provided in any notification sent to the counterparty. This time is for informational purposes only and does not affect the expiry time imposed by the MMS.
Must be future date and less than 5 days
If not provided value will be defaulted to agreement creation datetime + 5 day
Default time zone is UTC
format: ISODateTime ( yyyy-mm-ddThh:mm:ss+|–hh:mm)
example: 2022-09-13 14:35:27+00:00
startDate:
description: Start date of the validity of the mandate. The mandate is valid as of 00:00:00.000 Australia Sydney time on this date.
type:
- string
- 'null'
format: YYYY-MM-DD
example: 2022-09-13
endDate:
type:
- string
- 'null'
format: YYYY-MM-DD
example: 2023-08-24
description: End date of the validity of the mandate. If specified, the mandate is valid until 23:59:59.999 Australia Sydney time on this date.
additionalProperties: false
PayeeDetailsDto:
required:
- payeeType
oneOf:
- required:
- payeeLinkedBsb
- payeeLinkedAccount
- required:
- payeeLinkedPayId
- payeeLinkedPayIdType
- payeeAccountName
type: object
properties:
payeeType:
type:
- string
- 'null'
description: Identifies the type of a party. Possible Values ORGN - Organization, PERS - Person
example: ORGN
payeeLinkedBsb:
type:
- string
- 'null'
description: BSB number. Required if 'payeeLinkedPayId' and 'payeeLinkedPayIdType' are not provided. e.g. '999-999 or 999999'
example: 999-999
payeeLinkedAccount:
type:
- string
- 'null'
maxLength: 28
description: Bank Account Number. Required if 'payeeLinkedPayId' and 'payeeLinkedPayIdType' are not provided.
example: 22222222
payeeLinkedPayId:
type:
- string
- 'null'
description: PayID. Email, phone number, ABN, ACN or Organisation name. Required if 'payeeLinkedBsb' and 'payeeLinkedAccount' are not provided. See PAYID Format Validation.
example: ''
payeeLinkedPayIdType:
type:
- string
- 'null'
description: PayID Type. Possible values ABN, Email, PhoneNumber, OrganisationId, ACN. Required if 'payeeLinkedBsb' and 'payeeLinkedAccount' are not provided.
example: ''
payeeAccountName:
type:
- string
- 'null'
description: Bank Account Name Can only provide payeeAccountName in the payload if crediting an external BSB. Mandatory if crediting a PayID.
maxLength: 140
example: ABCORP
ultimatePayee:
type:
- string
- 'null'
example: ABCORP
description: Name by which the party is known, and which is usually used to identify that party. Can only provide ultimatePayee in the payload if crediting an external BSB.
additionalProperties: false
AmendBilateralDetailsResponse:
type: object
properties:
paymentAgreementUID:
type: string
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Z0-9_-]
example: MONPAG12345
mmsId:
type: string
description: This is the unique ID that identifies this payment agreement.
example: 684211c8a4076eeea68e63eeaa8ea6aa
actionIdentification:
type: string
example: eea687ee114eae368ca066aa62bae488
additionalProperties: false
PayerDetailsDto:
type: object
required:
- payerType
- payer
- ultimatePayer
- payerPartyReference
oneOf:
- required:
- linkedBsb
- linkedAccount
- required:
- linkedPayId
- linkedPayIdType
properties:
payerType:
type:
- string
- 'null'
description: Identifies the type of party. Possible Values - ORGN (Organization), PERS (Person)
example: ORGN
linkedBsb:
type:
- string
- 'null'
description: BSB (Bank-State-Branch) number. Required if 'linkedPayId' and 'linkedPayIdType' are not provided.
example: 802950
linkedAccount:
type:
- string
- 'null'
description: Bank account number. Required if 'linkedPayId' and 'linkedPayIdType' are not provided.
maxLength: 28
example: 10109010
linkedPayId:
type:
- string
- 'null'
example: null
description: PayID. Email, phone number, ABN, ACN or Organisation ID. Required if 'linkedBsb' and 'linkedAccount' are not provided. See PAYID Format Validation.
linkedPayIdType:
type:
- string
- 'null'
example: null
description: PayID Type. Possible Values - Email, PhoneNumber, ABN, ACN, OrganisationId. Required if 'linkedBsb' and 'linkedAccount' are not provided.
payer:
type:
- string
- 'null'
description: Bank Account Name.
maxLength: 140
example: ABCCORPCo
ultimatePayer:
type:
- string
- 'null'
maxLength: 140
description: Name by which the party is known, and which is usually used to identify that party.
example: ABCCORPCo
payerPartyReference:
type:
- string
- 'null'
maxLength: 35
description: This field will be presented to Payer in the detail agreement view. This field also be used group payment initiations associated with a payment agreement.
example: Payer54321
additionalProperties: false
AmendPaymentAgreementStatusResponse:
type: object
properties:
traceId:
type: string
description: Trace ID for tracking the request.
paymentAgreementUID:
type: string
description: Id to uniquely Identify a payment agreement.
maxLength: 35
pattern: ^[A-Z0-9_-]
example: MONPAG12345
paymentAgreementStatus:
type: string
description: 'The current status of the payment agreement.
'
example: Paused
paymentAgreementStatusDescription:
type: string
description: 'Detailed description of the current status.
'
example: Status changed from Active to Paused
mmsId:
type: string
description: 'Unique ID that identifies this payment agreement within the system.
'
PaymentTermsDto:
required:
- numberOfTransactionsPermitted
- frequency
- amount
- agreementType
type: object
properties:
numberOfTransactionsPermitted:
type:
- integer
- 'null'
format: int32
description: Quantifies the number of transactions allowed per frequency
example: 10
frequency:
type:
- string
- 'null'
description: Specifies the regularity of an event. See Frequency Table for allowed values
example: WEEK
pointInTime:
type:
- number
- 'null'
description: Qualifies the frequency in terms of an exact point in time or moment within the specified period. Valid non decimal numeric value. Supported values will be 01 to 31 This field works in combination with frequency and can only be provided when frequency = MNTH This field should not be provided if numberOfTransactionsPermitted is provided
example: null
amount:
type:
- number
- 'null'
maxLength: 34
example: null
description: Exact amount that may be paid from the Creditor's account, per instruction. Refer to AgreementType & Amount table below
maximumAmount:
type:
- number
- 'null'
maxLength: 34
example: 100.0
description: Maximum amount that may be paid from the Creditor's account, per instruction. Refer to AgreementType & Amount table below
agreementType:
type:
- string
- 'null'
description: Based on the AgreementType table
example: VARI
additionalProperties: false
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
BasicAuth:
type: http
scheme: basic
x-tagGroups:
- name: ''
tags:
- Generate a Bearer Token
- Manage Payment Agreements
- PayTo Async API
- Initiate a Payment
- Reporting
- Webhooks
- Notification Management
- PAYID Format Validation
- Client Error Responses
- Monoova Error Codes
- Mandate Status Reason Codes
- Payment Initiation Status
- Payment Agreement Status
- Payment Initiation Reject Reason Codes