Returned Deposits and Retries
How to detect a returned ACH deposit, and how to tell when its retry succeeds or fails.
Sometimes a worker's bank returns an ACH deposit after Everee has sent it, most often because of an incorrect account or routing number. This page explains what Everee does next and how to follow the outcome from your system.
What happens when a deposit is returned
- Everee sends a
payment.deposit-returnedwebhook event. - The worker is prompted to correct their bank details.
- When the worker updates their bank account, Everee sends a
worker.updated-payment-methodwebhook event and automatically retries the deposit as soon as possible. - The retry is either settled or returned again. If it's returned again, you receive another
payment.deposit-returnedevent.
Does a retry get a new paymentId?
paymentId?No. The payment keeps the same paymentId throughout. The retried deposit appears as a new payout (with a new payout id) on that same payment, and the failed attempt is superseded.
Does a return always cover the whole payment?
Not always. A return applies to individual deposits, so a payment split across more than one account can be partly returned. The payment.deposit-returned payload contains only the workerId, externalWorkerId, and paymentId, so use the Payment Data API (below) to see which payouts failed.
Which events tell me the retry finished?
No webhook is sent when a retry succeeds. payment.paid is sent once, when the payment is first processed, and isn't sent again for a retry. payment-payables.status-changed reports payable processing, not deposit outcomes. To find out how a retry ended:
- Treat
payment.deposit-returnedas "payout failed, awaiting a bank account fix". - Treat
worker.updated-payment-methodas "retry is being scheduled". - Check the payment's payouts with the Payment Data API until the retried payout is
PAID, or until you receive anotherpayment.deposit-returnedevent.
Seeing returned deposits and retries through the API
Use the Payment Data API. Each payment has a netPayouts list, and each payout has a status of PENDING, PAID, or FAILED:
Payout status | Meaning |
|---|---|
PENDING | Not yet settled, including a retry that's in progress. |
PAID | Deposited. |
FAILED | The deposit was returned and hasn't been retried yet. |
Match payments using the paymentId from the webhook event. Failed attempts that a retry has replaced aren't listed.
The payables list doesn't show returnsA payable's
paymentStatusstaysPAIDafter a deposit is returned, and has no "returned" value. See the Payables API guide.
Updated about 5 hours ago