This original task was called "Should we build our own autorescue" but renaming it to what that actually means.
In relation to autorescue, which is Adyen's retry logic for credit card recurring payments:
The current one is tied to Adyen, so if we switch card processors on gravy's backend we will lose this
Questions:
- Does gravy have a non processor specific one (it might be called something else? I couldn't find anything in the docs that wasn't talking about adyen's)
- They don't as of 2026-03-13 but it is on their roadmap to make one that would be for all payment methods
Now for our own recurring logic:
- @Lars brought up that our try 3 times and fail process doesn't have to be that way and we haven't updated it in a long time - we could modify that at least to start?
Currently we have three recurring payment flows:
- Paypal recurrings before Gravy - These are on their own charge schedule managed by Paypal
- Our recurring retry flow, if the payment fails we try 2 more times then cancel, sending the donor the first recurring failure email
- Adyen Autorescue - if the recurring Adyen card payment fails with a retryable reason - we tell Adyen to retry this for a configurable amount of days (currently 15) and they choose when to attempt charges, then return the result to us. If it comes back as unrescueable we cancel and send the donor the first recurring failure email.
Things we should change:
- Have separate retry/cancellation logic per payment method.
- Easy to start: spread out the attempt days
- Easy to start: don't cancel on the third failure
- More complicated: We have a year of failure reasons and if autorescues were sucessful or not, we can look at this data and build our own autorescue system