R03 Transactions Do Not Cancel Automatically

(Stephen Donahue) #1

When a transaction results in an R03 error from a financial institution, we would expect the transaction to cancel automatically. This is not the case, and the transaction remains Pending.

From Dwolla:

The status of a transfer only changes when or if we receive a return code from a financial institution.

Is this behavior specific to R03? We don’t observe for any other return codes (R01).

(Shreya Thapa) #2

Hi @Stephen_Donahue, the ACH return R03 code (no account/unable to locate account) should automatically fail the transaction, and remove the funding-source. Do you have a transfer ID that you can share? I would love to take a deeper look into why the transfer status is pending and not failed.

There are some other return codes that trigger certain actions against the funding-source and the Customer account. Please check out this article for more information on ACH return codes.

(Michael Coleman) #3

Hi @shreya! Thanks for taking a look at this. One of the transaction ids impacted by this is 03dc2ca4-4b7e-e911-8119-d7bc0de34d9c

Just to add a little clarity, this error occurred in our sandbox environment. While the transaction within Dwolla was failed, it doesn’t appear that the customer_transfer_failed webhook was called. While this article (https://www.dwolla.com/updates/test-ach-returns-sandbox-environment/) doesn’t address the problem specifically, it does mention that customer_transfer_failed is called when an R01 error occurs but this function is omitted from the section on R03 errors.

(Stephen Donahue) #4

@shreya please reference the ID that @MCCOLEMAN shared

(Shreya Thapa) #5

Hi @MCCOLEMAN, thanks for posting that information! When I look up the transaction, it does look like it failed with an R03 code. I tried replicating this situation with in my Sandbox, and I am getting both customer_bank_transfer_failed and customer_transfer_failed webhooks. :thinking: I have re-indexed the transactions for your Sandbox account; hopefully it kicks off any/all webhooks that haven’t been fired yet.

I wonder what you get when retrieve the transfer; do you get the failure link in the response body? Let me know!