Skip to main content

Reprocess Received ACH debits

When receiving an ACH (credit or debit), Unit runs a number of checks before allowing the payment to process. In the case of received ACH debits, one of these checks is making sure the receiving account has sufficient balance to cover the transfer. If that check fails, the received ACH is MarkedForReturn due to InsufficientFunds.

There are cases where the customer has funds available, on another account on the same bank. There are use cases that would benefit from the ability to move funds from another account into the account that's being debited ("just in time funding"), to allow the received ACH to process.

To that end, Unit offers clients the ability to reprocess received ACH debits that are MarkedForReturn but have not yet been returned. This allows the client to move the funds between the end customer's accounts, and reprocess the payment.

Implementation

note

The reprocess functionality is disabled by default. If you would like to enable it, please contact Unit. Only received payments that are in status MarkedForReturn can be reprocessed.

  1. Identify payments that can be reprocessed. Payments can be created in the 'MarkedForReturn' status, or move to it after creation, so you will have to listen for 2 events: receivedPayment.created, and receivedPayment.markedForReturn.
  2. If the canBeReprocessed flag is set to true, and the returnCutoffTime has not yet passed, move funds into the account that is being debited using a book payment from another account that belongs to the same end customer.
  3. Call the Reprocess Received Payment endpoint. If all the checks pass, the account will be debited, and the receivedPayment.sent event will be fired.

In addition, you can identify the payments that can be reprocessed by calling the List Received Payments API.