Skip to content
Breadcrumb
Resources

A guide to PayTo error and status codes

Written by

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

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.

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.

Learn more

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
ACSCAcceptedSettlementCompletedDebtorAccountPayment authorised and debtor account successfully debited (debtor-side completion)
BLCKBlockedPayment or agreement is blocked by the debtor or bank
PATCPartiallyAcceptedTechnicalCorrectRequest is technically correct and accepted for further processing (not yet final)
RJCTRejectedPayment rejected – generic platform or counterparty rejection
PDNGPendingInstruction 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
AB01AbortedClearingTimeoutClearing process aborted due to timeoutPlatform or system
AB02AbortedClearingFatalErrorClearing process aborted due to a fatal errorPlatform or system
AB03AbortedSettlementTimeoutSettlement aborted due to timeoutPlatform or system
AB04AbortedSettlementFatalErrorSettlement aborted due to a fatal errorPlatform or system
AB08OfflineCreditorAgentCreditor agent is not onlinePlatform or system
AC02InvalidDebtorAccountNumberAccount to be debited does not existSetup
AC03InvalidCreditorAccountNumberAccount to be Credited does not existSetup
AC05ClosedDebtorAccountNumberThe original Payer Customer Account number is closedSetup
AC06BlockedAccountAccount is temporarily blocked where it is able to identify that the Account currently existsSetup
AC07ClosedCreditorAccountNumberAccount to be credited previously existed and is now permanently closedSetup
AC13InvalidDebtorAccountTypeAccount to be debited cannot debit funds withinSetup
AC14InvalidCreditorAccountTypeAccount to be credited cannot accept fundsSetup
AC15AccountDetailsChangedPayer account was changed to different accountSetup
AG01TransactionForbiddenAccount to be debited is unable to be debitedAuthorisation
AG03TransactionNotSupportedPayee Participant has rejected the resulting NPP payment from payerAuthorisation
AG07UnsuccesfulDirectDebitDebtor account cannot be debited for a generic reasonAuthorisation
AGNTncorrectAgentAgent in the payment workflow is incorrectAuthorisation
AM01ZeroAmountUse of zero-dollar payment initiation requests is prohibited.Payment initiation
AM02NotAllowedAmountThe amount requested is greater than the maximum NPP limit of $99,999,999,999Payment initiation
AM03NotAllowedCurrencySpecified message amount is a non-processable currency outside of existing agreementPayment initiation
AM04InsufficientFundsAmount of funds available to cover specified message amount is insufficientPayment initiation
AM06TooLowAmountSpecified transaction amount is less than agreed minimumPayment initiation
AM09WrongAmountAmount received is not the amount agreed or expectedPayment initiation
AM12InvalidAmountThe amount in the NPP Payment Initiation Request is missing or invalidPayment initiation
AM19InvalidGroupNumberOfTransactionsNumber of transactions at the Group level is invalid or missingPayment initiation
AM21LimitExceededThe amount requested in the NPP Payment Initiation Request exceeds the agreed limitPayment initiation
BE05UnrecognisedInitiatingPartyReject the NPP Payment Initiation Request as the Creditor is unknown to DebtorSetup
BE06UnknownEndCustomerEnd customer specified is not known at associated Sort/National Bank Code or no longer exists in the booksSetup
BE08MissingDebtorNameDebtor Name not providedSetup
BE22MissingCreditorNameCreditor Name not providedSetup
CH20DecimalPointsNotCompatibleWithCurrencyNumber of decimal points not compatible with the currencySetup
CH21RequiredCompulsoryElementMissingRequired Compulsory Element MissingSetup
CURRIncorrectCurrencyThe currency included in the Clearing Request is incorrect (value other than AUD).Setup
CUSTRequestedByCustomerCancellation requested by the DebtorAuthorisation
DT02InvalidCreationDateThe CreationDateTime in the Group Header is not as per the required formatSetup
DT04FutureDateNotSupportedThe Business Service does not support future dated NPP Payment Initiation RequestsSetup
ED05SettlementFailedSettlement of the transaction has failedPlatform or system
ED06SettlementSystemNotAvailableInterbank settlement system not availablePlatform or system
FF04InvalidServiceLevelCodeService Level code is missing or invalidSetup
FF08InvalidEndToEndIdEnd to End Id missing or invalid for CATSCT payment instructionSetup
FF10BankSystemProcessingErrorFile or transaction cannot be processed due to technical issues at the bank sidePlatform or system
FF11ClearingRequestAbortedClearing Request rejected due it being subject to an abort operationPlatform or system
FRADFraudulentOriginCancellation requested following a transaction that originated fraudulently. The use of the Fraudulent Origin code should be governed by jurisdictionsPlatform or system
G005DeliveredWithServiceLevelPayment has been delivered to creditor agent with service levelPlatform or system
G006DeliveredWIthoutServiceLevelPayment has been delivered to creditor agent without service levelPlatform or system
MD01NoMandateThe NPP Payment Initiation Request did not contain a MandateIdAuthorisation
MD02MissingMandatoryInformationIn MandateThe Mandate Cryptogram contained in a Mandate NPP Payment Initiation Request did not verifyAuthorisation
MD20MandateExpiredThe Mandate Cryptogram contained in a Mandate NPP Payment Initiation Request was older than the allowed timeframe (24hrs)Authorisation
MS02NotSpecifiedReasonCustomerGeneratedReason has not been specified by end customerPlatform or system
NARRNarrativeReason is provided as narrative information in the additional reason informationPlatform or system
RC05InvalidBICIdentifierThe BIC identifier in the Message Payload is invalid or missingSetup
RR04RegulatoryReasonRegulatory ReasonPlatform or system
SL01Specific Service offered by Debtor AgentDue to specific service offered by the Debtor AgentPlatform or system
SL11Creditor not on Whitelist of DebtorThe Creditor did not appear on the Debtors whitelistPlatform or system
SL12Creditor on Blacklist of DebtorThe Creditor did appear on the Debtors blacklistPlatform or system
SL13Maximum number of Direct Debit Transactions exceededThe NPP Payment Initiation Request was rejected because the number of transactions requested exceeds the Debtor Agent offeringPayment initiation
SL14Maximum Direct Debit Transaction Amount exceededThe NPP Payment Initiation Request was rejected because the total value of transactions requested exceeds the Debtor Agent offeringPayment initiation
TD03IncorrectFileStructureThe file format is incomplete or invalidSetup
TM01InvalidCutOffTimeThe NPP Payment Initiation Request was received by the Responding Participant after an agreed cut-off timePlatform or system
E991Validate Mandate Service UnavailableCheck with Cuscal on possible Outage. Retry again after some time.Platform or system
E992Alias Resolution Service UnavailableCheck with Cuscal on possible Outage. Retry again after some time.Platform or system
M901Validate Mandate API ErrorCheck with Cuscal on possible Outage. Retry again after some time.Platform or system
M902Responding Participant is UnavailableAttended 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 instructionPlatform or system
M903Payer Participant is UnavailableAttended 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 instructionPlatform or system
M904Payee Participant is UnavailableAttended 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 instructionPlatform or system
M905Debtor PayId is InvalidPayId is no longer valid. Modify the mandate with the correct PayIdSetup
M906Creditor PayId is InvalidPayId is no longer valid. Modify the mandate with the correct PayIdSetup
M907Debtor BSB in not NPP reachableBSB is no longer reachable on NPP. Modify the Mandate with the correct BSBSetup
M908Creditor BSB in not NPP reachableBSB is no longer reachable on NPP. Modify the Mandate with the correct BSBSetup
M909Business Service Code InvalidBO Service Code is not valid. Modify the Mandate with the correct BO Service CodeSetup
M910Business Service Code is not present in MandateBO Service Code is not valid. Modify the Mandate with the correct BO Service CodeSetup
M911Payer Participant is not NPP reachablePayer is no longer reachable on NPP. Cancel the MandatePlatform or system
M912Payee Participant is not NPP reachablePayer is no longer reachable on NPP. Cancel the MandatePlatform or system
M913Payee Account Details are missingPayee 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 RequestSetup
M914Payee Participant in Mandate and Creditor Alias Servicer are not matchingCreditor PayId has been Ported. Modify the Mandate to reflect the Creditor Account ServicerSetup
M915Payer Participant in Mandate and Debtor Alias Servicer are not matchingDebtor PayId has been incorrectly Ported. Verify the Mandate Data and raise Dispute if applicableSetup
M916Creditor Account Details present in the Mandate and Input Request are not matchingVerify the details of the Mandate, if creditor account details are correct, don't send creditor account details in input requestSetup
M917Creditor Alias details present in Request and Mandate are not matchingVerify the details of the Mandate, if creditor alias details are correct, don't send creditor alias details in input requestSetup
M918Creditor details not present in Request and MandateVerify the details of the Mandate, if creditor details are not present, it must be provided in input requestSetup
M919Unable to locate Payment Instruction recordUnable to locate Payment Instruction recordPlatform or system
M920Invalid MandateMandate validation failed. Verify the details of the MandateSetup
M921Creditor account scheme present in request and Mandate are not matchingVerify the details of the Mandate, if creditor account/alias details are correct, don't send creditor account/alias details in input requestSetup
M922Previous Instruction Status is invalid for Business retryVerify the status of previous payment instruction if it is valid for business retryPlatform or system
M308Creditor Reference Must be equal to End to End Id of payment instructionCreditor Reference Must be equal to End to End Id of payment instruction for CATSCTSetup
M001InvalidCharacterSetInvalid or not applicable character setSetup
E999UnexpectedSystemErrorUnexpected System Error - Please Refer To CuscalPlatform or system
PA04ParticipantNotAvailableCheck 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.

Over 100,000 businesses use GoCardless to get paid on time. Learn more about how you can improve payment processing at your business today.

Sign upLearn More

All Categories

PaymentsCash flowGrowthFinanceEnterpriseAccountantsGoCardless

Contact us

Sales

Contact Sales

Support

Request support

+61 3 8375 9198

Seen 'GoCardless Ltd' on your bank statement? Learn more

GoCardless Ltd, 55 Collins Street, Melbourne VIC 3000, Australia

GoCardless Ltd (company registration number 07495895) is registered as a foreign company in Australia, ABN 17 606 261 74, and holds an Australian Financial Services licence (AFSL), number 478976.