past_due and enters OurPay’s automated payment recovery (dunning) flow instead of being canceled straight away.
This page explains exactly what happens during that window, how to give yourself breathing room before benefits are revoked, and what levers you have to help the customer recover.
The retry schedule
As soon as the first renewal charge fails:- The subscription’s status moves from
activetopast_due, andpast_due_atis stamped with the time of the failure. - OurPay emails the customer and links them to the Customer Portal so they can inspect the affected subscription and order.
- The renewal order stays open with
next_payment_attempt_atset to the next retry time.
If a retry succeeds, the failed order is paid. The subscription returns to
active once all of its pending orders have been paid (past-due subscriptions keep cycling, so there can be more than one). If all four retries fail — or the processor reports that the saved payment method cannot be retried — OurPay stops retrying and revokes the subscription. Its status moves to canceled and benefits are revoked (subject to the grace period below).
Benefit revocation grace period
By default, benefits follow the subscription’s status strictly: the moment the subscription leavesactive, benefits are revoked. For many businesses that’s harsh — a single failed renewal shouldn’t instantly lock a paying customer out while they resolve the payment problem.
OurPay has an organization-level grace period that holds off benefit revocation while a subscription is in past_due. You can set it under Settings → Subscriptions → Grace period for benefit revocation. The available values are:
- Immediately (default) — revoke benefits as soon as the subscription leaves
active. - After 2 days
- After 7 days
- After 14 days
- After 21 days — benefits stay granted for the full length of the retry schedule.
past_due_at. While it’s in effect the subscription is still past_due (so you can differentiate it in your own app), but the customer retains access to their benefits. Once the grace period expires — or the subscription is revoked for good — benefits are revoked on the next check.
The grace period only delays benefit revocation. It does not change the
retry schedule, and it does not keep the subscription
active. If you want
to treat past-due subscribers specially (for example, with a banner or
a reduced feature set), listen for the
subscription.updated webhook
and branch on status === "past_due".Helping customers recover
The current PayPal-only portal cannot attach a replacement PayPal payment method through its legacy card widget. Automatic retries continue against the vaulted PayPal method already on the subscription. Do not tell a customer that changing a method in the portal will recover the renewal. The backend can schedule an immediate retry after a supported payment-method update, but only use that path after a new PayPal approval flow has completed and the replacement method is visible in OurPay. Things you can do from your side:- Link to the Customer Portal so the customer can inspect the failed order and subscription state.
- Issue a refund on the original failed order if you want to credit the customer for the lost time while keeping the subscription.
- Reschedule the renewal to give the customer extra time before the next attempt.
- Revoke the subscription manually if you’ve decided not to pursue recovery.