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.
- Webhooks: transfer.created, ach.originated.credit
- If daily/monthly limits are exceeded, an error is thrown, and the transfer and transaction are not created)
- 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
- If declined, a reversal is created
- 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
- If declined, a reversal is created with a reviewCode
- Solid Ops team wait for up to 3 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
- If any reversal comes in from the network, a reversal is created on Solid
- Solid Ops team releases the funds to user account
- Webhooks: transfer.updated, ach.received.credit