
A guide to PayTo error and status codes
Last editedNov 20255 min read
PayTo is a game-changing payments option, but like any other, there are occasional speed humps. In this guide we share how you can leverage PayTo error and status codes to understand payment glitches and boost customer experience.
What is PayTo?
PayTo is a digital and mandated way for merchants to initiate real-time payments from customer bank accounts. It’s part of the New Payments Platform (NPP) initiative to accelerate, secure and increase visibility of payments in Australia. As an early adopter of PayTo, GoCardless has innovated to ensure your business gets the most out of this modern payment approach.
Along the way, we’ve learnt how and why error and status codes surface and some best-practices for avoiding errors and improving CX when things do go wrong.
In this guide, we’ll share why businesses and their customers love PayTo, our tips for smooth transactions, and comprehensive lists of Status and Error codes.
What are the benefits of PayTo?
PayTo enables your customers to easily link their bank accounts to a variety of apps, account-on-file arrangements, loan repayments, membership fees, digital wallets and payment options like buy-now-pay-later services.
Businesses who use PayTo can reduce risk and have more flexibility in how agreements are set up. The benefits include:
Real-time customer account validation
Real-time funds verification and confirmation of payment, at time of payment
Platform infrastructure that’s supported by APIs to ensure a seamless process
Secure storage of reconciliation data - payment reference and mandate (agreement) details - all in one place
Instant notifications when a customer cancels, pauses or changes their agreement
Facilitation of third parties to conduct payments on a businesses’ behalf, such as corporate payroll and accounts payable
Address failed payments due to insufficient funds by leveraging GoCardless intelligent retry product, Success+, or opt for a PayTo transaction to immediately recover the outstanding amount (when the payee knows they have sufficient funds in the account)
PayTo offers real-time payment confirmation, like credit cards but for lower costs, better payment transparency and higher security
Many of your customers prefer PayTo over direct debit or credit cards. They appreciate:
A smoother payment experience
The ability to set and forget and view and control payments, all in one central place
A choice between a PayID or traditional account and BSB number
Being able to easily pause, cancel, or authorise new payment agreements within their banking app.
Why PayTo status and error codes matter
In an ideal world, every PayTo agreement and payment works immediately, with no glitches. However, with all platforms, especially when processing customer-supplied data, there are hiccups along the way.
PayTo provides comprehensive status codes so that you know what’s happening with each payment in real time plus specific error codes when things don’t go to plan.
These specific error codes are fantastic tools to streamline your processes, ensure payments are received as quickly as possible, and tailor your communications, optimising your customer experience (CX).
We’ve put together the below guide using commonly used codes and meanings. These can vary between platforms and institutions, so be sure to reference specific documentation for your situation.
How PayTo error codes work
How PayTo errors and status codes originate
PayTo error and status codes can arise as a result of actions of a bank, payer, payee or payment platform. Status codes are sometimes also called ‘Response codes’. We’ll refer to them as status codes in this guide for simplicity.
It can be helpful to categorise codes according to the stage of the agreement/payment. In addition to the below stages, errors can also arise due to lack of compliance.
![[en-au] PayTo error codes types infographic](https://images.ctfassets.net/40w0m41bmydz/1fuuqKAQvSvPiLfnaXSHKl/49a2864e49d3a788410d41497c280614/BD-1886_SEO-PayTo_error_codes_infographic-002.png?w=1400&h=2380&q=50&fm=png)
Note, different platforms and institutions may use different flows, codes and categories - refer to specific documentation for your situation.
What’s the difference between error codes and status codes?
Error codes tell you why something has happened. They:
provide detailed diagnostic information explaining why a payment or mandate (agreement) failed
generally come from a bank, the NPP or the payment platform (GoCardless)
are used by developers to troubleshoot issues and finance, platform or product teams to decide on action to take or automate - for example retrying or notifying customers.
Status codes tell you what is happening. They:
reflect a transaction’s current state
generally come from a platform or bank
provide a high-level and often instantaneous summary of what is happening. For example: accepted, pending, rejected or blocked.
How do error codes and status codes work together?
Together, the codes give you both information about what’s happening now (a status code) and if necessary, a reason something has gone wrong (an error code).
For example, you could have a status code of RJCT - rejected, and an error code of AC05 - ClosedDebtorAccountNumber. So you can understand that the payment request was rejected because the debtor account is closed.
Types of PayTo errors
PayTo errors generally fall into four categories:
Setup errors
Authorisation errors
Payment initiation errors
Platform or system errors
In addition to the error codes, there are a handful of status codes.
Setup errors
Setup errors usually occur due to problems with account details, mandate (PayTo agreement) data or formatting. Often the account number, BSB or PayID is invalid, closed or missing information.
Potential actions to avoid or respond to setup errors
Embed in your process: checking bank details automatically before sending requests; checking for duplicates; and ensuring systems record clear error messages.
Provide communications to customers in plain English - explain what went wrong, what you need from them and any relevant links to support or instructions.
Have payers double-check their bank account number and BSB, confirm that the account is open and active and update details if required.
Common related codes
AC02, AC03, AC05, AC06, AC07, AC13, AC14, AC15, BE05, BE06, BE08, BE22, CH20, CH21, CURR, DT02, DT04, FF04, FF08, M001, M308, M905, M906, M907, M908, M909, M910, M913, M914, M915, M916, M917, M918, M920, M921, RC05, TD03. See our full list of codes below.
Authorisation errors
When a customer or bank declines a mandate (PayTo agreement) or it has expired or a transaction isn’t allowed for some other reason, a compliance error will be displayed.
Potential actions to avoid or respond to authorisation errors
Consider which codes should be responded to with automatic retries and which require other actions.
Enable customers to re‑authorise PayTo payments and agreements or choose another payment method easily.
Common PayTo codes
AG01, AG03, AG07, AGNT, BLCK, CUST, MD01, MD02, MD20, PATC. See our full list of codes below.
Payment initiation errors
As the name suggests, payment initiation errors reflect an issue with processing a payment. Common issues include insufficient funds, exceeding limits and duplicate requests.
Potential actions
Build in safe retries whilst preventing duplicate payment attempts.
Test and optimise messaging to customers in line with your brand voice to see which result in customers taking the desired action - for example adding funds to the relevant account so that the payment is successful when retried.
Common PayTo codes
AM01, AM02, AM03, AM04, AM06, AM09, AM12, AM19, AM21, SL13, SL14. See our full list of codes below.
Platform or system errors
Technical errors like timeouts and outages are captured in platform or system errors.
Potential actions to respond quickly to platform or system errors
Monitor for repeated failures and alert your team if there’s an outage.
Communicate with customers with a message like: ‘Payments have been temporarily delayed due to a technical issue. We will process payments shortly’.
Ensure your customer service team is across the issue and any key talking points so that they can respond to customer queries.
Common PayTo codes
AB01, AB02, AB03, AB04, AB08, E991, E992, E999, ED05, ED06, FF10, FF11, FRAD, G005, G006, M901, M902, M903, M904, M911, M912, M919, M922, MS02, NARR, PA04, RJCT, RR04, SL01, SL11, SL12, TM01. See our full list of codes below. [Anchor to list]
Status codes
As we’ve covered, status codes (sometimes called response codes) aren’t error codes - they reflect what’s happening with a payment now. Mapping status codes to customer communications and providing updates can improve CX.
Potential actions
Your Developer team can use status codes to trigger workflows.
Your Product team can consider including a message related to a status code (for example pending, processed, etc) to keep customers informed in a platform or app or via text or email.
Your Customer team could have access to status information and meanings so they can assist customers.
Common PayTo codes
ACSC, BLCK, PDNG. See our full list of codes below.
Best practices for handling PayTo errors
In addition to the above tips for each type of code, here are three more key areas to keep in mind when managing codes, or using them to enhance CX.
Logging and monitoring
Automate a log of every error code with as much detail as possible, including timestamps.
Set thresholds so you can be quickly alerted if a lot of errors come through in a certain period.
Share dashboards with other teams and brainstorm how you can avoid errors within your control going forward.
Clear customer messaging
Have a copywriter or UX writer help to create and map customer-facing messages for regularly occurring errors, and specific scenarios (for example if a platform or bank you depend on is out of service).
Provide clear next steps when you need a customer to take an action. Include all the links and instructions they need in your initial request.
Escalation paths
Have a plan for when you will escalate issues - for example system outages or repeated compliance issues.
Have clear roles and responsibilities for who will communicate with customer teams, management, platforms and banks in the event of large-scale outages or multiple error codes.
Are you using PayTo?
PayTo is a powerful payment solution GoCardless facilitates which can save you and your customers time and money. As practices around PayTo mature, it’s an essential payment option to ensure your business stays ahead of the pack.
List of PayTo status codes
These PayTo status codes tell you what’s happening with a mandate (PayTo agreement) or payment in real time.
| Code | Name | Description |
|---|---|---|
| ACSC | AcceptedSettlementCompletedDebtorAccount | Payment authorised and debtor account successfully debited (debtor-side completion) |
| BLCK | Blocked | Payment or agreement is blocked by the debtor or bank |
| PATC | PartiallyAcceptedTechnicalCorrect | Request is technically correct and accepted for further processing (not yet final) |
| RJCT | Rejected | Payment rejected – generic platform or counterparty rejection |
| PDNG | Pending | Instruction is pending further processing or checks |
List of PayTo error codes
These PayTo error codes help you understand what specifically has gone wrong with a payment or mandate.
| Code | Description | Meaning | Category |
|---|---|---|---|
| AB01 | AbortedClearingTimeout | Clearing process aborted due to timeout | Platform or system |
| AB02 | AbortedClearingFatalError | Clearing process aborted due to a fatal error | Platform or system |
| AB03 | AbortedSettlementTimeout | Settlement aborted due to timeout | Platform or system |
| AB04 | AbortedSettlementFatalError | Settlement aborted due to a fatal error | Platform or system |
| AB08 | OfflineCreditorAgent | Creditor agent is not online | Platform or system |
| AC02 | InvalidDebtorAccountNumber | Account to be debited does not exist | Setup |
| AC03 | InvalidCreditorAccountNumber | Account to be Credited does not exist | Setup |
| AC05 | ClosedDebtorAccountNumber | The original Payer Customer Account number is closed | Setup |
| AC06 | BlockedAccount | Account is temporarily blocked where it is able to identify that the Account currently exists | Setup |
| AC07 | ClosedCreditorAccountNumber | Account to be credited previously existed and is now permanently closed | Setup |
| AC13 | InvalidDebtorAccountType | Account to be debited cannot debit funds within | Setup |
| AC14 | InvalidCreditorAccountType | Account to be credited cannot accept funds | Setup |
| AC15 | AccountDetailsChanged | Payer account was changed to different account | Setup |
| AG01 | TransactionForbidden | Account to be debited is unable to be debited | Authorisation |
| AG03 | TransactionNotSupported | Payee Participant has rejected the resulting NPP payment from payer | Authorisation |
| AG07 | UnsuccesfulDirectDebit | Debtor account cannot be debited for a generic reason | Authorisation |
| AGNT | ncorrectAgent | Agent in the payment workflow is incorrect | Authorisation |
| AM01 | ZeroAmount | Use of zero-dollar payment initiation requests is prohibited. | Payment initiation |
| AM02 | NotAllowedAmount | The amount requested is greater than the maximum NPP limit of $99,999,999,999 | Payment initiation |
| AM03 | NotAllowedCurrency | Specified message amount is a non-processable currency outside of existing agreement | Payment initiation |
| AM04 | InsufficientFunds | Amount of funds available to cover specified message amount is insufficient | Payment initiation |
| AM06 | TooLowAmount | Specified transaction amount is less than agreed minimum | Payment initiation |
| AM09 | WrongAmount | Amount received is not the amount agreed or expected | Payment initiation |
| AM12 | InvalidAmount | The amount in the NPP Payment Initiation Request is missing or invalid | Payment initiation |
| AM19 | InvalidGroupNumberOfTransactions | Number of transactions at the Group level is invalid or missing | Payment initiation |
| AM21 | LimitExceeded | The amount requested in the NPP Payment Initiation Request exceeds the agreed limit | Payment initiation |
| BE05 | UnrecognisedInitiatingParty | Reject the NPP Payment Initiation Request as the Creditor is unknown to Debtor | Setup |
| BE06 | UnknownEndCustomer | End customer specified is not known at associated Sort/National Bank Code or no longer exists in the books | Setup |
| BE08 | MissingDebtorName | Debtor Name not provided | Setup |
| BE22 | MissingCreditorName | Creditor Name not provided | Setup |
| CH20 | DecimalPointsNotCompatibleWithCurrency | Number of decimal points not compatible with the currency | Setup |
| CH21 | RequiredCompulsoryElementMissing | Required Compulsory Element Missing | Setup |
| CURR | IncorrectCurrency | The currency included in the Clearing Request is incorrect (value other than AUD). | Setup |
| CUST | RequestedByCustomer | Cancellation requested by the Debtor | Authorisation |
| DT02 | InvalidCreationDate | The CreationDateTime in the Group Header is not as per the required format | Setup |
| DT04 | FutureDateNotSupported | The Business Service does not support future dated NPP Payment Initiation Requests | Setup |
| ED05 | SettlementFailed | Settlement of the transaction has failed | Platform or system |
| ED06 | SettlementSystemNotAvailable | Interbank settlement system not available | Platform or system |
| FF04 | InvalidServiceLevelCode | Service Level code is missing or invalid | Setup |
| FF08 | InvalidEndToEndId | End to End Id missing or invalid for CATSCT payment instruction | Setup |
| FF10 | BankSystemProcessingError | File or transaction cannot be processed due to technical issues at the bank side | Platform or system |
| FF11 | ClearingRequestAborted | Clearing Request rejected due it being subject to an abort operation | Platform or system |
| FRAD | FraudulentOrigin | Cancellation requested following a transaction that originated fraudulently. The use of the Fraudulent Origin code should be governed by jurisdictions | Platform or system |
| G005 | DeliveredWithServiceLevel | Payment has been delivered to creditor agent with service level | Platform or system |
| G006 | DeliveredWIthoutServiceLevel | Payment has been delivered to creditor agent without service level | Platform or system |
| MD01 | NoMandate | The NPP Payment Initiation Request did not contain a MandateId | Authorisation |
| MD02 | MissingMandatoryInformationIn Mandate | The Mandate Cryptogram contained in a Mandate NPP Payment Initiation Request did not verify | Authorisation |
| MD20 | MandateExpired | The Mandate Cryptogram contained in a Mandate NPP Payment Initiation Request was older than the allowed timeframe (24hrs) | Authorisation |
| MS02 | NotSpecifiedReasonCustomerGenerated | Reason has not been specified by end customer | Platform or system |
| NARR | Narrative | Reason is provided as narrative information in the additional reason information | Platform or system |
| RC05 | InvalidBICIdentifier | The BIC identifier in the Message Payload is invalid or missing | Setup |
| RR04 | RegulatoryReason | Regulatory Reason | Platform or system |
| SL01 | Specific Service offered by Debtor Agent | Due to specific service offered by the Debtor Agent | Platform or system |
| SL11 | Creditor not on Whitelist of Debtor | The Creditor did not appear on the Debtors whitelist | Platform or system |
| SL12 | Creditor on Blacklist of Debtor | The Creditor did appear on the Debtors blacklist | Platform or system |
| SL13 | Maximum number of Direct Debit Transactions exceeded | The NPP Payment Initiation Request was rejected because the number of transactions requested exceeds the Debtor Agent offering | Payment initiation |
| SL14 | Maximum Direct Debit Transaction Amount exceeded | The NPP Payment Initiation Request was rejected because the total value of transactions requested exceeds the Debtor Agent offering | Payment initiation |
| TD03 | IncorrectFileStructure | The file format is incomplete or invalid | Setup |
| TM01 | InvalidCutOffTime | The NPP Payment Initiation Request was received by the Responding Participant after an agreed cut-off time | Platform or system |
| E991 | Validate Mandate Service Unavailable | Check with Cuscal on possible Outage. Retry again after some time. | Platform or system |
| E992 | Alias Resolution Service Unavailable | Check with Cuscal on possible Outage. Retry again after some time. | Platform or system |
| M901 | Validate Mandate API Error | Check with Cuscal on possible Outage. Retry again after some time. | Platform or system |
| M902 | Responding Participant is Unavailable | Attended Payment Instructions will be rejected and Unattended Payment Instructions will be SAFD. Clients to perform Get Payment Instructions service call to retrieve the status of the instruction | Platform or system |
| M903 | Payer Participant is Unavailable | Attended Payment Instructions will be rejected and Unattended Payment Instructions will be SAFD. Clients to perform Get Payment Instructions service call to retrieve the status of the instruction | Platform or system |
| M904 | Payee Participant is Unavailable | Attended Payment Instructions will be rejected and Unattended Payment Instructions will be SAFD. Clients to perform Get Payment Instructions service call to retrieve the status of the instruction | Platform or system |
| M905 | Debtor PayId is Invalid | PayId is no longer valid. Modify the mandate with the correct PayId | Setup |
| M906 | Creditor PayId is Invalid | PayId is no longer valid. Modify the mandate with the correct PayId | Setup |
| M907 | Debtor BSB in not NPP reachable | BSB is no longer reachable on NPP. Modify the Mandate with the correct BSB | Setup |
| M908 | Creditor BSB in not NPP reachable | BSB is no longer reachable on NPP. Modify the Mandate with the correct BSB | Setup |
| M909 | Business Service Code Invalid | BO Service Code is not valid. Modify the Mandate with the correct BO Service Code | Setup |
| M910 | Business Service Code is not present in Mandate | BO Service Code is not valid. Modify the Mandate with the correct BO Service Code | Setup |
| M911 | Payer Participant is not NPP reachable | Payer is no longer reachable on NPP. Cancel the Mandate | Platform or system |
| M912 | Payee Participant is not NPP reachable | Payer is no longer reachable on NPP. Cancel the Mandate | Platform or system |
| M913 | Payee Account Details are missing | Payee Account Details are not present in Mandate and Client also has not provided Creditor Account Details in the Initiation Request. Either Modify the Mandate or provide the Creditor Account Details in the Request | Setup |
| M914 | Payee Participant in Mandate and Creditor Alias Servicer are not matching | Creditor PayId has been Ported. Modify the Mandate to reflect the Creditor Account Servicer | Setup |
| M915 | Payer Participant in Mandate and Debtor Alias Servicer are not matching | Debtor PayId has been incorrectly Ported. Verify the Mandate Data and raise Dispute if applicable | Setup |
| M916 | Creditor Account Details present in the Mandate and Input Request are not matching | Verify the details of the Mandate, if creditor account details are correct, don't send creditor account details in input request | Setup |
| M917 | Creditor Alias details present in Request and Mandate are not matching | Verify the details of the Mandate, if creditor alias details are correct, don't send creditor alias details in input request | Setup |
| M918 | Creditor details not present in Request and Mandate | Verify the details of the Mandate, if creditor details are not present, it must be provided in input request | Setup |
| M919 | Unable to locate Payment Instruction record | Unable to locate Payment Instruction record | Platform or system |
| M920 | Invalid Mandate | Mandate validation failed. Verify the details of the Mandate | Setup |
| M921 | Creditor account scheme present in request and Mandate are not matching | Verify the details of the Mandate, if creditor account/alias details are correct, don't send creditor account/alias details in input request | Setup |
| M922 | Previous Instruction Status is invalid for Business retry | Verify the status of previous payment instruction if it is valid for business retry | Platform or system |
| M308 | Creditor Reference Must be equal to End to End Id of payment instruction | Creditor Reference Must be equal to End to End Id of payment instruction for CATSCT | Setup |
| M001 | InvalidCharacterSet | Invalid or not applicable character set | Setup |
| E999 | UnexpectedSystemError | Unexpected System Error - Please Refer To Cuscal | Platform or system |
| PA04 | ParticipantNotAvailable | Check with Cuscal on possible Outage. Retry again after some time. | Platform or system |
Ready to transform your payments?
Find out how GoCardless can help you accelerate payments with PayTo.