Download OpenAPI specification:Download
Documentation for the Oligo PayTo API.
| uid required | string [ 1 .. 64 ] characters ^[A-Za-z0-9_~.-]{1,64}$ Supplied unique identifier for agreement, maximum 64 characters containing only unreserved characters as defined in RFC3986. This identifier ensures agreement uniqueness between integrator systems and Oligo. |
| purpose required | string Enum: "mortgage" "utility" "loan" "dependant_support" "gambling" "retail" "salary" "personal" "government" "pension" "tax" "other" The nature of the agreement with the debtor |
required | object Who and where the payment is taken from |
| description required | string [ 1 .. 140 ] characters ^[ -~]+$ The reason for the agreement, as narrative text. ASCII-printable characters only. |
| resolution_requested_before | string or null <date-time> Requested resolution (accept/decline) deadline for this agreement. It will be provided in any notification sent to the debtor. This time is for informational purposes only and does not affect the expiry time. If not provided, it defaults to 5 days from agreement creation. Value must be an ISO8601 date-time in UTC timezone. |
| cancel_if_unresolved | boolean or null An optional field to indicate whether or not we should auto cancel this agreement if it is not authorized by the debtor by the resolution_requested_before point in time. This field must be accompanied by the resolution_requested_before attribute and if not, will result in a 422 response and error code. |
| validity_start_date | string or null <date> ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ Start date for validity of agreement. If specified, the agreement will be valid from 00:00:00 Australia Sydney time on specified date. If no date specified, the current date will be populated. |
| validity_end_date | string or null <date> ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ End date of the validity of the agreement. If specified, the agreement will be valid until 23:59:59.999 Australia Sydney time on this date. |
| metadata | object or null (payto.metadata) Use for your custom data. A place to store any miscellaneous information your system may need in regards to the record you are creating. This will be included in associated webhook payloads under the |
required | object Defines the terms of what payments can be initiated from agreement |
object SANDBOX ONLY: Parameter that allows you to simulate the debtor performing certain actions against the created agreement to aid integrators while testing their control flows. Defaults to debtor_accept if not given. |
{- "uid": "biz_agreement_ACBDEFGHIJKLMNOP",
- "purpose": "loan",
- "debtor": {
- "ultimate_party_name": "Billie Jean Senior",
- "party_name": "Billie Jean Junior",
- "account_identifier": {
- "type": "bban",
- "value": "123456-98765432"
}
}, - "description": "Payment plan for loan #1234",
- "resolution_requested_before": "2022-01-20T12:34:56Z",
- "cancel_if_unresolved": true,
- "validity_start_date": "2023-01-01",
- "validity_end_date": "2023-12-31",
- "metadata": {
- "custom_key": "custom_value"
}, - "payment_terms": {
- "type": "fixed",
- "frequency": "monthly",
- "amount": 10000,
- "count": 1,
- "first_payment_date": "2023-12-31",
- "last_payment_date": "2024-12-31"
}, - "sandbox": {
- "simulate": "debtor_accept",
- "delay": 0
}
}{- "data": {
- "uid": "biz_agreement_ACBDEFGHIJKLMNOP",
- "state": "pending",
- "created_at": "2022-01-20T12:34:56+11:00",
- "state_caused_by": "debtor",
- "mms_agreement_id": "3de455278b21196da0c4599025cb7dfa",
- "links": {
- "self": "/payto/agreements/biz_agreement_ACBDEFGHIJKLMNOP"
}, - "description": "Payment plan for loan #1234",
- "purpose": "loan",
- "resolution_requested_before": "2022-01-20T12:34:56Z",
- "cancel_if_unresolved": true,
- "payment_terms": {
- "type": "fixed",
- "frequency": "monthly",
- "count": 1,
- "amount": 10000,
- "max_amount": 100000,
- "first_payment_amount": 100000,
- "last_payment_amount": 100000,
- "first_payment_date": "2023-12-31",
- "last_payment_date": "2024-12-31"
}, - "debtor": {
- "ultimate_party_name": "Billie Jean Senior",
- "party_name": "Billie Jean Junior",
- "account_identifier": {
- "type": "bban",
- "value": "123456-98765432"
}
}, - "validity_start_date": "2023-01-01",
- "validity_end_date": "2023-12-31",
- "state_reason": {
- "title": "Agreement Status Invalid",
- "detail": "Contact Oligo for more information - The requested operation cannot be performed for the current status of the agreement",
- "code": "MMS.API.9104"
}, - "metadata": {
- "custom_key": "custom_value"
}
}
}{- "data": {
- "id": "0186b521-78f2-3ee4-6547-245133933086",
- "type": "payto_agreement.activated",
- "published_at": "2023-03-07T22:50:40Z",
- "resource_uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "resource_type": "payto_agreement",
- "body": {
- "mms_agreement_id": "3de455278b21196da0c4599025cb7dfa"
}, - "resource_metadata": {
- "custom_key": "custom_value"
}
}, - "links": {
- "resource": "/payto/agreements/biz_20221231_ACBDEFGHIJKLMNOP"
}
}| per_page | integer [ 1 .. 100 ] Default: 20 Number of results per page |
| starting_after | string Opaque pagination cursor value. Set by following "next" links. |
| state | Array of any Items Enum: "pending" "created" "active" "suspended" "cancelled" "declined" "failed" "expired" Filter agreements by state. Multiple values can be separated by commas. e.g 'pending,created' |
| min_created_date | string <date> Example: min_created_date=2022-01-01 Filter by minimum created_at date. ISO8601 format. |
| max_created_date | string <date> Example: max_created_date=2022-01-31 Filter by maximum created_at date. ISO8601 format. |
{- "links": { },
- "data": [ ]
}| agreement_uid required | string^[A-Za-z0-9_~.-]{1,64}$ Example: Agreement_00012345 A supplied unique ID |
{- "data": {
- "uid": "biz_agreement_000123",
- "state_reason": null,
- "state": "active",
- "mms_agreement_id": "3d2dc5bc031b1db680f3491697703a6f",
- "created_at": "2022-02-02T12:01:01+11:00",
- "purpose": "tax",
- "resolution_requested_before": null,
- "cancel_if_unresolved": false,
- "payment_terms": {
- "type": "usage_based",
- "frequency": "monthly",
- "count": null,
- "max_amount": 8999,
- "amount": null,
- "first_payment_amount": null,
- "last_payment_amount": null,
- "first_payment_date": null,
- "last_payment_date": null
}, - "debtor": {
- "party_name": "Janiel Smith",
- "ultimate_party_name": "Janiel Smith",
- "account_identifier": {
- "type": "bban",
- "value": "123456-456789"
}
}, - "description": "Tax payment",
- "validity_start_date": "2023-01-01",
- "validity_end_date": "2023-12-31",
- "state_caused_by": "debtor",
- "metadata": {
- "custom_key": "custom_value"
}, - "links": {
- "self": "/payto/agreements/biz_agreement_000123"
}
}
}| uid required | string [ 1 .. 64 ] characters ^[A-Za-z0-9_~.-]{1,64}$ Supplied unique identifier for payment, maximum 64 characters containing only unreserved characters as defined in RFC3986. This identifier ensures payment uniqueness between integrator systems and us. |
| agreement_uid required | string^[A-Za-z0-9_~.-]{1,64}$ A supplied unique ID |
| amount required | integer (payto.amount) [ 1 .. 1000000000 ] Amount in cents. |
| priority required | string Enum: "unattended" "attended" Execution priority of payment. |
| reference | string or null <= 35 characters ^[ -~]+$ Free-form text for reconciliation purposes. Typically this field will be shown to both parties on bank statements, however, the debtor can also control this via the agreement. The reference given here takes precedence over the agreeement's reference when it has been set by the debtor. |
| description | string or null <= 280 characters Free-form text for the matching/reconciliation of a transaction. Similar to the reference field, this can be shown on both parties' bank statements. The difference is that this description can be a longer string and banks can show this seperately from the reference. |
| last_payment | boolean or null This is a required field with agreements that have a payment_terms.type of |
| metadata | object or null (payto.metadata) Use for your custom data. A place to store any miscellaneous information your system may need in regards to the record you are creating. This will be included in associated webhook payloads under the |
object SANDBOX ONLY: Parameter that allows you to simulate the created payment going through certain scenarios to aid integrators while testing their control flows. Defaults to auto_settle if not given. |
{- "uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "agreement_uid": "Agreement_00012345",
- "amount": 2495,
- "priority": "unattended",
- "reference": "INVOICE #1003",
- "description": "Payment 1 of 6 for Demo house Smart Fridge 300L",
- "last_payment": false,
- "metadata": {
- "custom_key": "custom_value"
}, - "sandbox": {
- "simulate": "auto_settle",
- "delay": 0
}
}{- "data": {
- "uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "agreement_uid": "Agreement_00012345",
- "source_payto_refund_uid": "Refund_00012345",
- "state": "created",
- "reference": "INVOICE #1003",
- "description": "Payment 1 of 6 for Demo house Smart Fridge 300L",
- "priority": "unattended",
- "debtor": {
- "ultimate_party_name": "Bob Jane",
- "party_name": "Bob Jean",
- "account_identifier": {
- "type": "bban",
- "value": "123456-98765432"
}
}, - "amount": 2495,
- "last_payment": false,
- "metadata": {
- "custom_key": "custom_value"
}, - "failure": {
- "title": "Agreement Status Invalid",
- "detail": "Contact Oligo for more information - The requested operation cannot be performed for the current status of the agreement",
- "code": "MMS.API.9104",
- "retryable": false
}, - "created_at": "2019-08-24T14:15:22Z",
- "links": {
- "self": "string",
- "agreement": "string",
- "source_refund": "string"
}
}
}{- "data": {
- "id": "0186b521-78f2-3ee4-6547-245133933086",
- "type": "payto_payment.settled",
- "published_at": "2023-03-07T22:50:40Z",
- "resource_uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "resource_type": "payto_payment",
- "body": null,
- "resource_metadata": {
- "custom_key": "custom_value"
}
}, - "links": {
- "resource": "/payto/payments/biz_20221231_ACBDEFGHIJKLMNOP"
}
}| per_page | integer [ 1 .. 100 ] Default: 20 Number of results per page |
| starting_after | string Opaque pagination cursor value. Set by following "next" links. |
| state | Array of any Items Enum: "created" "submitting" "under_investigation" "failed" "settled" Filter payments by state. Multiple values can be separated by commas. e.g 'created,submitting' |
| min_created_date | string <date> Example: min_created_date=2022-01-01 Filter by minimum created_at date. ISO8601 format. |
| max_created_date | string <date> Example: max_created_date=2022-01-31 Filter by maximum created_at date. ISO8601 format. |
| agreement_uid | string Example: agreement_uid=biz_agreement_000123 Filter payments by agreement. |
| refunds | string Enum: "included" "excluded" "only" Example: refunds=included Filter payments by whether or not they are facilitating a refund. |
{- "links": { },
- "data": [
- {
- "uid": "biz_payment_0000000000860",
- "agreement_uid": "biz_agreement_0000000001350",
- "state": "settled",
- "amount": 12345,
- "last_payment": null,
- "priority": "unattended",
- "reference": null,
- "description": null,
- "debtor": {
- "ultimate_party_name": "Ms Debtor",
- "party_name": "Ms Debtor",
- "account_identifier": {
- "type": "bban",
- "value": "123456-456789"
}
}, - "failure": null,
- "created_at": "2022-02-01T09:41:00+11:00",
- "metadata": {
- "custom_key": "custom_value"
}, - "source_payto_refund_uid": null,
- "links": {
- "self": "/payto/payments/biz_payment_0000000000860",
- "agreement": "/payto/agreements/biz_agreement_0000000001350",
- "source_refund": null
}
}, - {
- "uid": "biz_payment_0000000000850",
- "agreement_uid": "biz_agreement_0000000001350",
- "state": "settled",
- "amount": 12345,
- "last_payment": null,
- "priority": "unattended",
- "reference": null,
- "description": null,
- "debtor": {
- "ultimate_party_name": "Ms Debtor",
- "party_name": "Ms Debtor",
- "account_identifier": {
- "type": "bban",
- "value": "123456-456789"
}
}, - "failure": null,
- "created_at": "2022-02-01T09:41:00+11:00",
- "metadata": {
- "custom_key": "custom_value"
}, - "source_payto_refund_uid": null,
- "links": {
- "self": "/payto/payments/biz_payment_0000000000850",
- "agreement": "/payto/agreements/biz_agreement_0000000001350",
- "source_refund": null
}
}, - {
- "uid": "biz_payment_0000000000840",
- "agreement_uid": "biz_agreement_0000000001350",
- "state": "settled",
- "amount": 12345,
- "last_payment": null,
- "priority": "unattended",
- "reference": null,
- "description": null,
- "debtor": {
- "ultimate_party_name": "Ms Debtor",
- "party_name": "Ms Debtor",
- "account_identifier": {
- "type": "bban",
- "value": "123456-456789"
}
}, - "failure": null,
- "created_at": "2022-02-01T09:41:00+11:00",
- "metadata": {
- "custom_key": "custom_value"
}, - "source_payto_refund_uid": null,
- "links": {
- "self": "/payto/payments/biz_payment_0000000000840",
- "agreement": "/payto/agreements/biz_agreement_0000000001350",
- "source_refund": null
}
}
]
}| payment_uid required | string^[A-Za-z0-9_~.-]{1,64}$ Example: Payment_00012345 A supplied unique ID |
{- "data": {
- "uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "agreement_uid": "Agreement_00012345",
- "source_payto_refund_uid": "Refund_00012345",
- "state": "created",
- "reference": "INVOICE #1003",
- "description": "Payment 1 of 6 for Demo house Smart Fridge 300L",
- "priority": "unattended",
- "debtor": {
- "ultimate_party_name": "Bob Jane",
- "party_name": "Bob Jean",
- "account_identifier": {
- "type": "bban",
- "value": "123456-98765432"
}
}, - "amount": 2495,
- "last_payment": false,
- "metadata": {
- "custom_key": "custom_value"
}, - "failure": {
- "title": "Agreement Status Invalid",
- "detail": "Contact Oligo for more information - The requested operation cannot be performed for the current status of the agreement",
- "code": "MMS.API.9104",
- "retryable": false
}, - "created_at": "2019-08-24T14:15:22Z",
- "links": {
- "self": "string",
- "agreement": "string",
- "source_refund": "string"
}
}
}Retry a failed payment as long as it has failed due to a retryable reason as indicated by the retryable boolean field within the payment's failure object. Payments may be retried up to 10 times while within the related agreement's validity begin and end dates. Additionally, payments can only be retried 5 times within 24 hours.
| payment_uid required | string^[A-Za-z0-9_~.-]{1,64}$ Example: Payment_00012345 A supplied unique ID |
object SANDBOX ONLY: Parameter that allows you to simulate certain scenarios in regards to the payment retry to aid integrators while testing their control flows. | |||||
| |||||
{- "sandbox": {
- "simulate": "auto_settle",
- "delay": 0
}
}{- "errors": [
- {
- "title": "Validation Failed",
- "detail": "The value for `unexpected_key` is not allowed"
}
]
}{- "data": {
- "id": "0186b521-78f2-3ee4-6547-245133933086",
- "type": "payto_payment.settled",
- "published_at": "2023-03-07T22:50:40Z",
- "resource_uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "resource_type": "payto_payment",
- "body": null,
- "resource_metadata": {
- "custom_key": "custom_value"
}
}, - "links": {
- "resource": "/payto/payments/biz_20221231_ACBDEFGHIJKLMNOP"
}
}| agreement_uid required | string^[A-Za-z0-9_~.-]{1,64}$ Example: Agreement_00012345 A supplied unique ID |
| reason required | string Enum: "invalid_debtor_account_number" "closed_account_number" "closed_debtor_account_number" "blocked_account" "invalid_debtor_account_type" "transaction_forbidden" "transaction_not_supported" "not_allowed_currency" "not_allowed_amount" "amount_exceeds_agreed_limit" "customer_deceased" "no_mandate_service_agent" "no_mandate_service_customer" "customer_requested" "initiating_party_requested" "mandate_expired" "suspected_fraudulent" "no_reason_customer" "no_reason_agent" "narrative" "regulatory" "no_service_debtor" "contract_amended" "debtor_cancellation_requested" "contract_expired" "mandate_suspended_final_collection" "mandate_suspended_one_collection" "mandate_suspended_failed_collections" "no_answer" Reason for the agreement being cancelled |
| narrative | string or null [ 1 .. 256 ] characters Free text field to store a description to accompany the given reason_code |
object SANDBOX ONLY: Parameter that allows you to simulate the certain scenarios related to the cancellation of an agreement to aid integrators while testing their control flows. |
{- "reason": "initiating_party_requested",
- "narrative": "My custom description",
- "sandbox": {
- "simulate": "agreement_cancelled",
- "delay": 0
}
}{- "errors": [
- {
- "title": "Validation Failed",
- "detail": "The value for `invalid_key` is not allowed"
}
]
}{- "data": {
- "id": "0186b521-78f2-3ee4-6547-245133933086",
- "type": "payto_agreement.cancelled",
- "published_at": "2023-03-07T22:50:40Z",
- "resource_uid": "biz_20221231_ACBDEFGHIJKLMNOP",
- "resource_type": "payto_agreement",
- "body": {
- "caused_by": "debtor",
- "reason": {
- "title": "Agreement Status Invalid",
- "detail": "Contact Oligo for more information - The requested operation cannot be performed for the current status of the agreement",
- "code": "MMS.API.9104",
- "narrative": "custom description"
}
}
}, - "links": {
- "resource": "/payto/agreements/biz_20221231_ACBDEFGHIJKLMNOP"
}
}This endpoint is used to resolve an alias to a display name. It is possible for this endpoint to return a 503 service unavailable error if the addressing service is not available.
| type required | string |
| value required | string^\+[0-9]{1,3}-[1-9]{1,1}[0-9]{1,29}$ A PayID phone alias. e.g. +61-411222333 |
required | object Details of the end-user requesting this resolution. |
object SANDBOX ONLY: Parameter that allows you to simulate certain alias lookup scenarios to aid integrators while testing their control flows. |
{- "type": "alias_phone",
- "value": "+61-411222333",
- "requester": {
- "id": "user_ACBDEFGHIJKLMNOP",
- "remote_ip": "192.0.2.146"
}, - "sandbox": {
- "simulate": "alias_not_found"
}
}{- "data": {
- "display_name": "Jane Smith"
}
}Can be present on a failed agreement and give more detail about why an agreement has failed.
MMS.API.xxxx failure codes are unexpected and indiciate an issue communicating with an upstream service.
The detail for each of these will be prefixed with Contact Oligo for more information: and
we recommend contacting us to have the issue investigated.
| Code | Title | Description |
|---|---|---|
| MMS.API.xxxx | Title of the MMS error | Contact Oligo for more information: More detail about the MMS error |
| ZPUNP01 | Debtor's financial institution does not support PayTo | Cannot create agreement with provided debtor account |
| ZPUNP02 | Invalid creditor account | The given creditor account cannot accept funds via NPP |
| ZPUNP06 | Error resolving alias | Oligo was unable to reach the addressing service |
| ZPUNP07 | Debtor alias not found | Oligo was unable to resolve the given debtor alias |
| ZPUNP08 | Creditor alias not found | Oligo was unable to resolve the given creditor alias |
| UKNWN | Unknown Error | An unexpected error occured. Reach out to Oligo for more information |
Can be present on a declined agreement and give more detail about why an agreement was declined.
| Code | Title | Description |
|---|---|---|
| AC02 | Invalid Debtor Account | The Payer Customer Account does not exist within NPP |
| AC05 | Closed Debtor Account | The Payer Customer account is closed |
| AC06 | Blocked Account | The Payer Customer Account is blocked |
| AC13 | Invalid Debtor Account Type | The Payer Customer Account does not allow funds to be debited within NPP |
| AG01 | Transaction Forbidden | The Payer Customer Account is unable to be debited |
| AG03 | Transaction Not Supported | The Payer Customer Account is able to make NPP Payments, but is not able to make NPP Payments to the Payee Customer Account type |
| AM03 | Not Allowed Currency | The Payer Customer Account cannot draw funds in AUD |
| AM12 | Invalid Amount | No amount and/or no maximum amount have been specified |
| AM14 | Amount Exceeds Agreed Limit | The specified amount would exceed the allowed Transaction amount for the Payer Customer Account |
| BE06 | Unknown End Customer | The Payer Customer associated with the nominated Payer Customer Account does not exist within the Payer Participant (or applicable identified Institution) customer list |
| MD09 | No Agreement Service On Customer | The Payer Customer Account does not support the given agreement type |
| MD16 | Requested By Customer | Agreement/Amendment action requested by the Payer Customer |
| MD21 | Agreement Cancelled Due To Fraud | The Payer Participant detects fraud within the Agreement |
| NOAS | No Answer From Customer | The Payer Participant declines the Agreement on behalf of the Payer Customer because there was no response from the Payer Customer |
| RR04 | Regulatory Reason | The Agreement/Payment is rejected due to regulatory reasons |
| UKNWN | Unknown Error | An unexpected error occured. Reach out to Oligo for more information |
Can be present on a cancelled or suspended agreement and give more detail about why the agreement is in that state.
| Code | Title | Description |
|---|---|---|
| AC02 | Invalid Debtor Account | The Payer Customer Account does not exist within NPP |
| AC04 | Closed Account Number | The account has been closed and the Mandate is no longer valid |
| AC05 | Closed Debtor Account | The Payer Customer account is closed |
| AC06 | Blocked Account | The Payer Customer Account is blocked |
| AC13 | Invalid Debtor Account Type | The Payer Customer Account does not allow funds to be debited within NPP |
| AG01 | Transaction Forbidden | The Payer Customer Account is unable to be debited |
| AG03 | Transaction Not Supported | The Payer Customer Account is able to make NPP Payments, but is not able to make NPP Payments to the Payee Customer Account type |
| AM03 | Not Allowed Currency | The Payer Customer Account cannot draw funds in AUD |
| AM12 | Invalid Amount | No amount and/or no maximum amount have been specified |
| AM14 | Amount Exceeds Agreed Limit | The specified amount would exceed the allowed Transaction amount for the Payer Customer Account |
| MD07 | End Customer Deceased | End customer is deceased |
| MD08 | No Mandate Service By Agent | The Mandate Service is no longer supported by the Agent |
| MD09 | No Agreement Service On Customer | The Payer Customer Account does not support the given agreement type |
| MD16 | Requested By Customer | Agreement/Amendment action requested by the Payer Customer |
| MD20 | Agreement Expired | Contact Oligo for more information |
| MD21 | Agreement Cancelled Due To Fraud | The Payer Participant detects fraud within the Agreement |
| MS02 | Not Specified Reason Customer Generated | The payment was rejected by the Debtor Customer, but no reason was provided |
| MS03 | Not Specified Reason Agent Generated | The payment was rejected by the Responding Participant, but no reason was provided |
| NARR | Narrative | Contact Oligo for more information |
| RR04 | Regulatory Reason | The Agreement/Payment is rejected due to regulatory reasons |
| SL01 | Specific Service offered by Debtor Agent | The NPP Payment Initiation Request was rejected specifically due to a service offered by the Responding Participant |
| CTAM | Contract Amended | Mandate suspended due to amendment of the contract |
| CTCA | Contract Cancellation Initiated By Debtor | Mandate suspended due to cancellation of the contract, requested by the debtor |
| CTEX | Contract Expired | Mandate suspended due to the contract that expired |
| MCFC | Mandate Suspended Final Collection | Mandate suspended as final collection took place |
| MCOC | Mandate Suspended Once Off Collection | Mandate suspended as the once off collection took place |
| MSUC | Mandate Suspended 7 Consecutive Unsuccessful Collections | Mandate suspended after 7 consecutive unsuccessful collections |
| NOAS | No Answer From Customer | The Payer Participant declines the Agreement on behalf of the Payer Customer because there was no response from the Payer Customer |
Can be present on a failed payment and give more detail about why the payment has failed.
| Code | Title | Description | Retryable |
|---|---|---|---|
| ZPPAY24 | Participant not available | One of the participants is currently not available to process the payment. | False |
| AB01 | Aborted Clearing Timeout | Clearing process aborted due to timeout | True |
| AB02 | Aborted Clearing Fatal Error | Clearing process aborted due to a fatal error | True |
| AB03 | Aborted Settlement Timeout | Settlement aborted due to timeout | True |
| AB04 | Aborted Settlement Fatal Error | Settlement process aborted due to a fatal error | True |
| AC02 | Invalid Debtor Account | The Payer Customer Account does not exist within NPP | False |
| AC05 | Closed Debtor Account | The Payer Customer account is closed | False |
| AC06 | Blocked Account | The Payer Customer Account is blocked | True |
| AC13 | Invalid Debtor Account Type | The Payer Customer Account does not allow funds to be debited within NPP | False |
| AC15 | Account Details Changed | The account details for the counterparty have changed | False |
| AG01 | Transaction Forbidden | The Payer Customer Account is unable to be debited | False |
| AG03 | Transaction Not Supported | The Payer Customer Account is able to make NPP Payments, but is not able to make NPP Payments to the Payee Customer Account type | False |
| AG07 | Unsuccesful Direct Debit | Debtor account cannot be debited for a generic reason. May indicate insufficient funds | True |
| AGNT | Incorrect Agent | BSB/IIN of the account provided falls outside the range published in the NPP Reference Data | False |
| AM01 | Zero Amount | Specified message amount is equal to zero | False |
| AM02 | Not Allowed Amount | Specified transaction amount is greater than allowed maximum | False |
| AM03 | Not Allowed Currency | The Payer Customer Account cannot draw funds in AUD | False |
| AM04 | Insufficient Funds | The specified Payer Customer Account has insufficient funds | True |
| AM06 | Too Low Amount | The amount requested is below the agreed minimum amount | False |
| AM09 | Wrong Amount | The amount requested was not what the Payer Customer was expecting | False |
| AM12 | Invalid Amount | No amount and/or no maximum amount have been specified | False |
| AM19 | Invalid Group Number Of Transactions | The number of transactions in the NPP Payment Initiation Request is not 1 | False |
| AM21 | Limit Exceeded | The payment amount exceeds the agreed limit between the Responding Participant and the Debtor Customer | True |
| BE06 | Unknown End Customer | The Payer Customer associated with the nominated Payer Customer Account does not exist within the Payer Participant (or applicable identified Institution) customer list | False |
| BE08 | Missing Debtor Name | Debtor name is missing | False |
| CH20 | Decimal Points Not Compatible With Currency | The amount does not have two or zero fraction digits | False |
| CH21 | Required Element Missing | One or more mandatory fields have not been provided | False |
| CURR | Incorrect Currency | Currency of the payment is incorrect | False |
| CUST | Requested By Customer | Debtor Customer has directed the Responding Participant to reject the payment | False |
| DT02 | Invalid Creation Date | The CreationDateTime in the Group Header is not as per the required format | False |
| DT04 | Future Date Not Supported | The Business Service does not support future dated NPP payments | False |
| ED05 | Settlement Failed | Settlement of the transaction has failed | False |
| ED06 | Settlement System Not Available | The FSS is unavailable so the Clearing Request cannot be made | False |
| FF04 | Invalid Service Level Code | The Service Level code in the NPP Payment Initiation Request is not as per the specified format | False |
| FF08 | Invalid End To End Id | End to End Id missing or invalid | False |
| FF10 | Bank System Processing Error | Responding Participant is unable to process the payment due to back office issues or outage | True |
| FF11 | Clearing Request Aborted | The Clearing Request associated to payment was aborted | False |
| FRAD | Fraudulent Origin | The NPP payment was rejected due to identified fraud or due to a scam | False |
| MD01 | No Agreement | The NPP Payment Initiation Request did not contain a Agreement | False |
| MD02 | Missing Mandatory Information In Agreement | Contact Oligo for more information | False |
| MD20 | Agreement Expired | Contact Oligo for more information | True |
| MS02 | Not Specified Reason Customer Generated | The payment was rejected by the Debtor Customer, but no reason was provided | False |
| MS03 | Not Specified Reason Agent Generated | The payment was rejected by the Responding Participant, but no reason was provided | False |
| NARR | Narrative | Contact Oligo for more information | True |
| NAUT | Not Authorised | The payment contents do not align with the Agreement terms | False |
| RR02 | Missing Debtor Name or Address | Regulatory details of the Debtor were not provided in the NPP Payment Initiation Request | False |
| RR04 | Regulatory Reason | The Agreement/Payment is rejected due to regulatory reasons | False |
| RC05 | Invalid BIC Identifier | The BIC identifier in the Message Payload is invalid or missing | False |
| SL01 | Specific Service offered by Debtor Agent | The NPP Payment Initiation Request was rejected specifically due to a service offered by the Responding Participant | False |
| SL13 | Maximum number of Direct Debit Transactions exceeded | The payment was rejected because the number of transactions requested exceeds the Debtor Agent offering | True |
| SL14 | Maximum Direct Debit Transaction Amount exceeded | The payment was rejected because the total value of transactions requested exceeds the Debtor Agent offering | True |
| TD03 | Incorrect File Structure | The file format is incomplete or invalid | True |
| TM01 | Invalid Cut Off Time | The NPP Payment Initiation Request was received by the Responding Participant after an agreed cut-off time | True |
| AVED | After Validity End Date | It is after the agreement's validity end date | False |
| BVSD | Before Validity Start Date | It is before the agreement's validity start date | False |
| MCGP | In Grace Period | The agreement has recently been migrated and is still in its grace period | False |
| NACT | Not Active | Agreement is not active | False |
| ZPUNP01 | Debtor's financial institution does not support PayTo | Cannot create agreement with provided debtor account | False |
| ZPUNP06 | Error resolving alias | Unable to reach the addressing service | False |
| ZPUNP07 | Debtor alias not found | Unable to resolve the given debtor alias | False |
| ZPUNP08 | Creditor alias not found | Unable to resolve the given creditor alias | False |
| UKNWN | Unknown Error | An unexpected error occured. | False |
Comprehensive list of possible error codes that can be returned in a 422 response. Note that each endpoint will only return a subset of these codes. For a list of codes that can be returned by a specific endpoint, see the documentation for the 422 response within that endpoint.
| Code | Title | Description |
|---|---|---|
| ZPUNP00 | One or more fields violate the relevant schema | {details} |
| ZPUNP01 | Debtor's financial institution does not support PayTo | Cannot create agreement with provided debtor account |
| ZPUNP06 | Error resolving alias | Unable to reach the addressing service |
| ZPUNP07 | Debtor alias not found | Unable to resolve the given debtor alias |
| ZPUNP08 | Creditor alias not found | Unable to resolve the given creditor alias |
| ZPUNP09 | Alias resolution not enabled | Account not enabled for alias resolution services |
| ZPAGR00 | Duplicate UID | An agreement with the given UID already exists |
| ZPAGR01 | No configured ABN | PayTo Merchants are required to have a configured ABN |
| ZPAGR02 | Invalid resolution requested before | Resolution requested before cannot be after {latest_time} |
| ZPAGR03 | Invalid resolution requested before | Resolution requested before cannot be in the past |
| ZPAGR04 | Past validity start date | Validity start date must not be in the past |
| ZPAGR05 | Validity start date not amendable | Validity start date cannot be amended |
| ZPAGR06 | Validity start date after end date | Validity start date must be prior to the validity end date |
| ZPAGR07 | Validity start date after first payment date | Validity start date must be prior to the first payment date |
| ZPAGR08 | Validity end date too early | Validity end date must be equal to or later than the current date and, if given, the last payment date |
| ZPAGR09 | First payment date in past | First payment date must not be in the past |
| ZPAGR10 | Last payment date before first payment date | Last payment date cannot be before the first payment date |
| ZPAGR11 | Last payment date in the past | Last payment date cannot be before the current date |
| ZPAGR12 | Debtor account number only zeroes | Debtor account number contains only zeroes |
| ZPAGR13 | Debtor account number reserved | Debtor account number is a reserved account |
| ZPAGR14 | Debtor branch code does not exist | Debtor branch code does not exist |
| ZPAGR15 | Mandate limit reached | You have reached the maximum number of mandates you can create for a debtor per 24 hours |
| ZPAGR16 | Mandate create limit reached | You have reached the maximum number of mandates your account can create per 24 hours |
| ZPAGR17 | Auto-Cancel Needs Resolution Date | 'cancel_if_unresolved' must be accompanied by 'resolution_requested_before' |
| ZPPAY00 | Duplicate UID | A payment with the given UID already exists |
| ZPPAY01 | Over daily limit | This Payment would cause you to exceed your current daily limit of {limit} |
| ZPPAY02 | Over per-transaction limit | The amount is higher than your current per-transaction limit of {limit} |
| ZPPAY03 | Agreement not active | The related agreement must be active before you can initiate a payment |
| ZPPAY07 | After validity end date | The validity end date specified in the agreement has already passed |
| ZPPAY08 | Before validity start date | The validity start date specified in the agreement has not yet passed |
| ZPPAY09 | Last payment required for balloon | The last payment parameter must be specified for a payment against a balloon type agreement |
| ZPPAY10 | Last payment given for non-balloon | The last payment parameter must only be specified for a payment against a balloon type agreement |
| ZPPAY12 | Amount over maximum | The payment amount is larger than the maximum specified in the agreement |
| ZPPAY13 | After last payment date | The last payment date specified in the agreement has already passed |
| ZPPAY14 | First payment date mismatch | The payment date does not match the first payment date specified in the agreement |
| ZPPAY15 | Amount incorrect | The payment amount does not match the amount specified in the agreement |
| ZPPAY16 | Timing incorrect | The time that this payment was initiated does not match the terms of the agreement |
| ZPPAY17 | Too many payments | The maximum number of payments has already been reached for the current frequency period, according to the terms of the agreement |
| ZPPAY18 | First payment amount incorrect | The payment amount does not match the first payment amount specified in the agreement |
| ZPPAY19 | Last payment amount incorrect | The payment amount does not match the last payment amount specified in the agreement |
| ZPPAY20 | Last payment date mismatch | The payment date does not match the last payment date specified in the agreement |
| ZPPAY21 | Last payment made | No further payments can be created for this agreement, as the last payment has been made |
| ZPPAY22 | Agreement not found | No agreement could be found for the given agreement UID |
| ZPPAY23 | Debtor account mismatch | The payment debtor does not match the agreement debtor |
| ZPREF00 | Duplicate UID | A refund with the given UID already exists |
| ZPREF01 | Payment not found | No payment could be found for the given payment UID |
| ZPREF02 | Payment not refundable | The payment is not refundable |
| ZPREF03 | Float bank account not found | No float bank account could be found for the given float_bank_account_id |
| ZPREF04 | Float bank account not active | The given float bank account is not currently active |
| ZPREF05 | Float bank account missing services | The given float bank account is not configured to support realtime payments |
| ZPREF06 | Total refunds greater than original payment amount | The sum of all refunds is greater than the original payment |
| ZPREF07 | The provided fund source has insufficient funds | The provided fund source has insufficient funds to process this refund |
| ZPREF08 | Refunding Via PayTo Not Enabled | This feature has not been enabled for your account |
| ZPREF09 | Original Payment is a Refund | The payment being refunded cannot be a payment created by a previous refund |
| ZPREF10 | Over per-transaction limit | The amount is higher than your current per-transaction limit of {limit} |
| ZPREF11 | Over Daily Limit | This Refund would cause you to exceed your current daily limit |
| ZPREF12 | Description must start with REFUND | PayTo Refunds processed via a float payment must have a description that starts with REFUND |
| ZPAMN00 | Agreement not amendable | Agreement must be active or suspended before it can be amended |
| ZPAMN01 | Amendment already processing | There is a pending amendment for this agreement |
| ZPAMN02 | No changes | No changes were specified |
| ZPAMN03 | Mandate doesn't change | The agreement already has the given changes |
| ZPAMN04 | Validity end date not amendable | Validity end date cannot be amended if it was null in original mandate |
| ZPAMN06 | Invalid resolution requested before | Resolution requested before cannot be after {latest_time} |
| ZPAMN07 | Resolution requested before in past | Resolution requested before cannot be in the past |
| ZPAMN08 | Last payment made | This agreement can no longer be amended, as the last payment has been made |
| ZPPRY00 | Payment not retryable | Payment is not in a retryable state |
| ZPPRY01 | Too many retries | Payment has reached the maximum amount of retries |
| ZPPRY02 | After mandate validity end date | The related agreement is no longer valid |
| ZPPRY03 | Retry timeout | Payment has been retried too many times recently. Cannot be retried again until {next_time} |
| ZPPRY04 | Retry timeout after validity end | Payment has been retried too many times recently and the related mandate will not be valid at the next retryable time. |
| ZPCAN00 | Incorrect agreement state | Agreement can not be cancelled while in the '{state}' state |
| ZPCAN01 | Already processing | There is a pending cancellation for this agreement |
| ZPREA01 | Already processing | There is a pending reactivation for this agreement |
| ZPSUS01 | Already processing | There is a pending suspension for this agreement |
| ZPARE00 | Amendment not recallable | Amendment is not recallable while in the '{state}' state |
| ZPARE01 | Already processing | There is already an in-progress recall for this amendment |
| ZPARE02 | Agreement has no amendment | Agreement has no in-progress amendment to recall |
| ZPPGN00 | One or more paramaters are invalid | {details} |
| ZPADD01 | Alias not found | The given alias was not able to be resolved |
| ZPADD02 | Account lookup limit reached | The account level lookup limit has been reached for the current period |
| ZPADD03 | Remote IP lookup limit reached | The remote IP level lookup limit has been reached for the current period |
| ZPADD04 | Requester ID lookup limit reached | The requester ID level lookup limit has been reached for the current period |
Within the API endpoints for our sandbox environment, we provide the ability to perform asynchronous simulations - such as simulating an agreement being accepted, or a payment being settled automatically. This can be done using the sandbox simulate parameter (see below).
"sandbox": {
"simulate": "debtor_accept",
"delay": 0
}
Please refer to the documentation / schema for each endpoint for further information.
In our sandbox environment, we provide certain branch codes that will emulate the given institution having or lacking certain capabilities.
These can be used to receive certain validation errors (422) within the response to an API request.
For example, providing 100001 as the debtor branch code will result in a 422 response with an error code when creating an Agreement.
These are described in the table below and can be provided for any party when creating an Agreement, Amendment or Payment.
| BSB | Simulated Behaviour |
|---|---|
| 100-000 | Invalid BSB |
| 100-001 | Party institution does not have PayTo debtor capabilities |
| 100-002 | Party institution is not able to receive funds via SCT |