When an ACH transfer is initiated, it goes through a process of review by both Solid and the bank, before the funds are ultimately transferred to the end user's account. Here's an outline of the process:
- User initiated an ACH pull by the program calling the Receive an ACH Pull API.
- A Transfer is created on Solid platform and a pending credit transaction is created in the user’s account. If daily/monthly limits are exceeded, an error is thrown, and the transfer and transaction are not created). Webhooks: transfer.created, ach.originated.credit
- Solid Ops team reviews the transfer. If declined, a reversal is created (webhook: ach.reversal.debit). If approved, ACH is sent to bank in a daily batch job
- Bank reviews the ACH. If declined, a reversal is created with a reviewCode (webhook: ach.reversal.debit). If approved, funds come to Solid FBO account.
- Solid Ops team waits for 2 business days to wait out any reversals. If any reversal comes in from the network, a reversal is created on Solid (webhook: ach.reversal.debit).
- Solid Ops team releases the funds to user account. (webhooks: transfer.updated, ach.received.credit).