Overview
ACH Save recovers eligible declined debit card transactions by retrying them over ACH. Many card declines are recoverable — issuers routinely decline legitimate transactions due to outdated risk rules, expired cards, or system errors. ACH Save lets the user re-authorize the same purchase through an authenticated bank flow.How it works
- Invoke ACH save from your existing card processing flow when an eligible transaction is declined.
- Push evaluates the transaction’s risk and, if approved, returns a link where the user can login to their bank.
- After the user authenticates and links their checking account, Push re-authorizes the transaction and originates the payment over ACH.
ACH Save is a pilot program on eligible BIN ranges and risk thresholds. Reach out to your Push Cash representative for details about what transactions qualify for ACH Saves.
Integration overview
The steps below show an overview of how to integrate ACH Save.-
Register the user. Call the create-user endpoint with the user’s name, email, address, and phone number.
- Retain the returned user
idfor the Authorization call (see step 3) - Register each user only once
- Retain the returned user
-
Generate a token. Call the tokenize-card endpoint with the user’s
pan- Retain the returned
tokenfor the Authorization call (see step 3) - To avoid sharing the full card number, mask the middle digits 8–12 with
XXXXand only transmit the BIN and last four of the user’s card.
- Retain the returned
-
Authorize the payment. Call the authorize-payment endpoint with the
amount,currency,direction: cash_in,type: ach_save,user_id, thetokenfrom the previous step, and aredirect_url. Handle the response by its HTTP status code:202 Accepted— the user must complete bank authentication. Persist the returned intentid, then continue to step 4 using the returnedurl.200 OK— the payment was approved immediately (i.e. for a returning user whose bank is already linked). Notify the user that the deposit succeeded.401 Unauthorized— the payment was declined (e.g. due to transaction risk)
-
Direct the user to complete bank authentication Navigate the user to the
urlreturned from the Authorize call. When the flow completes, the user is returned to your application via theredirect_urlyou set on the authorize request. -
Retrieve the ACH authorization result. Call the get-an-intent endpoint and inspect the
statusfield.- If
statusisapproved, Push authorized the payment and automatically originates it over ACH. Update your internal transaction record and display a message to the user that the payment succeeded. - If
statusisdeclined, Push could not approve the payment for ACH (e.g. due to insufficient balance).
- If
Next steps
Set up webhooks to receiveintent.approved and decline notifications asynchronously. See the enabling webhooks guide.