Skip to main content
When an EFT transaction is rejected, the receiving financial institution sends back a Payments Canada return code (CPA005 standard, plus Rule H1 codes for PAD disputes). This guide maps every return code you might see to a clear operational decision: cancel the schedule, contact the user and create a new transaction, review before acting, or escalate. Codes and procedures here follow Payments Canada Standard 007 and Rule H1.
PAD disputes are time-sensitive. Any return code flagged as a PAD Dispute triggers an automatic recall of funds while the dispute is under review.

Decision framework

Every return code maps to one of four decisions. Use the decision to drive your workflow before reading the code-specific guidance.

Decision matrix

Quick lookup by code:

File validation

Decision: Investigate / EscalateThe EFT file failed Payments Canada format validation before any transaction was processed.

Administrative returns

Decision: Contact User / New TransactionThe user’s account did not have enough cleared funds at processing time. This is the most common return code.
Decision: Cancel ScheduleThe account number does not exist at the named institution.
Decision: Review Before ActingThe user placed a stop payment on this specific transaction.
Decision: Investigate / EscalateThe transaction date is outside the allowable processing window.
Decision: Cancel ScheduleThe bank account has been closed.
Decision: Cancel ScheduleThe account type does not permit debit transactions.
Decision: Contact User / New TransactionFunds are present in the account but on hold and not yet available.
Decision: Cancel ScheduleThe transaction currency does not match the account currency.
Decision: Cancel ScheduleThe account holder is deceased.
Decision: Cancel ScheduleThe account has been legally restricted or frozen.
Decision: Cancel ScheduleThe account number structure is invalid.
Decision: Review Before ActingThe name on the transaction does not match the account.
Decision: Investigate / EscalateThe customer has initiated a return of a credited amount. Applies to EFT credit transactions only.

PAD disputes (Rule H1)

These codes indicate the user has formally disputed the PAD agreement. Under Rule H1, funds are automatically recalled while the dispute is under review. Contact Flinks Payments Support immediately for every code in this section.
Decision: Cancel ScheduleThe user claims they never authorized a PAD.
Decision: Review Before ActingThe user claims the debit amount or date differed from PAD terms.
Decision: Cancel ScheduleThe user has formally cancelled their PAD authorization.
Decision: Review Before ActingThe user claims they did not receive required advance notice of the debit.
Decision: Review Before ActingA business claims the debit differed from PAD terms.
Decision: Cancel ScheduleA business has formally cancelled its PAD authorization.
Decision: Review Before ActingA business claims it did not receive required advance notice.

Other

Decision: Investigate / EscalateThe receiving financial institution is in default. An extremely rare event.

Handling PAD disputes

When you see a PAD dispute code (902, 905, 907, 909, 911, 912, 915, 916, 917, 918, 919, 920, 921):
1

Locate the PAD agreement

For codes 915 to 921, you have a 90-day contestation window (personal PADs) to provide evidence the agreement is valid and the debit was authorized.
2

Stop further debits

Follow the schedule action for the specific code. Cancel the schedule for revocation and “no agreement” codes (915, 917, 920). For the “review” codes (916, 918, 919, 921), do not create new transactions until the dispute is resolved. Then either cancel the schedule or recreate it with corrected terms.
3

Document and follow up

Update your internal records. If the dispute is upheld, you cannot resume debits on that account without a fresh PAD agreement.

Checking return codes

Return codes for a failed transaction are available via the API. Call the Get Schedule endpoint and inspect the statusDetails and return code fields on the relevant payment. See Troubleshooting Payments for the broader status lifecycle.