A subscription renewal failed, and you want to know why and how to run the charge again. This article covers the three questions we hear most: what a failure reason like "insufficient inventory" means when the product is in stock, how to retry a payment after your subscriber fixed their card, and where to look up any error code Shopify returns.
Why subscription payments fail
When a renewal is due, Subi creates a billing attempt and sends it to Shopify. Shopify charges the customer's saved payment method and returns a result. Subi shows you that result, including any error code and message Shopify sends back.
Subi creates and schedules billing attempts, sends them to Shopify, and shows you the outcome.
Shopify and the customer's payment provider process the payment and decide whether it succeeds.
Because Shopify handles the payment, every failure reason comes from Shopify or the payment provider. Subi cannot see more detail than the code and message it receives.
Find the reason for a specific failed payment
Open Contracts in your Subi admin, open the subscription, and scroll to Billing History. Hover over the Payment fail tag on a billing attempt to see the error Shopify returned.
Every code, what it means, and who has to act is listed in Billing attempt error messages: meaning and solutions. Three codes merchants ask about most often:
INVALID_PURCHASE_TYPE (or PURCHASE_TYPE_NOT_SUPPORTED on attempts before 28 July 2026): the customer's card does not allow recurring subscription purchases. The customer needs to contact their bank or use a different payment method. If the code keeps coming back, check your payment provider settings in Shopify Admin and contact your payment provider or Subi support.
FRAUD_SUSPECTED: the charge was flagged as potentially fraudulent. The customer should check with their bank before you retry. If you review the customer's order history and the order is genuine, retry the billing attempt and contact Shopify support to remove the fraud flag.
INCORRECT_NUMBER or INVALID_NUMBER: the card number on file is not valid. The customer needs to update their payment method.
Your subscriber fixed their card: how to run the charge again
Once the customer has updated their payment method, Subi uses the new method on the next billing attempt. You do not have to wait for the next scheduled attempt:
Open Contracts, open the subscription, and go to Billing History.
Click the three dots next to the failed billing attempt and select Retry charge. Shopify runs the charge again with the payment method now on file.
If your store uses Smart payment recovery, the same retry is also available from the sequences list under Retention > Payment recovery, where each open recovery has per-row actions to retry, skip, or mark it as lost (per-row actions are included from the Subi plan up).
If you do not see a retry option, reschedule instead: in the subscription, click Reschedule next to the next order date, pick the earliest date the calendar allows, and save. The charge runs on that date. After it succeeds you can reschedule again to restore the original cycle.
The same three dots also open a detailed view of the original attempt and every retry, with their statuses and timestamps.
"Insufficient inventory" although the product is in stock
A renewal can fail with an inventory reason (INSUFFICIENT_INVENTORY) even when the product page shows units available. Here is what is happening and what to do.
What Subi checks. Your inventory policy for recurring billing decides whether Subi attempts the charge when stock is low. Find it under Retention > Payment recovery, on the Inventory tab, in the Inventory Policy section. With Attempt only if inventory is available, a billing attempt fails and is flagged with an inventory error whenever Shopify reports that there is not enough tracked stock to fill the order at the moment of the attempt. With Attempt anyways (the default), billing goes ahead even at zero stock. The policy only affects recurring billing for existing subscriptions, not new checkouts.
Why it can fail while you see stock. The stock check is Shopify's and happens at the moment the attempt runs. If the item was restocked after the attempt, or if you believe your inventory is correct, check the variant's inventory and locations in your Shopify admin, or contact Shopify support. The error is not created by Subi.
How to retry the charge now. Once the item is back in stock, retry the billing attempt from Billing History (three dots, Retry charge) or reschedule the next order date as described above.
If your store is on Smart payment recovery, you usually do not need to do anything: when a renewal fails because the item is out of stock, Smart payment recovery watches for the item to come back in stock and retries the billing attempt automatically. Open the subscription to follow it: its Payment recovery panel shows the failure reason, the current step, and the next scheduled action. If the stock never returns, the recovery ends without a charge. On classic recovery, Subi retries in the next scheduled cycle once the item is restocked.
How Smart payment recovery handles failed payments
When a payment fails, Smart payment recovery looks at why it failed and picks the right response. A temporary problem like insufficient funds is retried automatically over the following days. A card problem like an expired card is not blindly retried; the customer is emailed a clear way to update their card instead.
Open Retention > Payment recovery in your Subi admin to see your recovery window, the customer emails, and how recovery is performing. New stores get the Short recovery window automatically. If your store is still on Subi's classic recovery, the same page is where you switch to Smart payment recovery.
All plans: the Short recovery window, automatic retries, and customer recovery emails.
Subi plan: the Standard recovery window, a custom sender name and reply-to address, and per-row actions on the sequences list.
Subi Plus: the Aggressive recovery window, proactive card-expiry emails before the charge runs, advanced email customization, and bulk actions with CSV export.
How customers can update their payment method
Customers can update their payment method in their customer portal, or through a secure link you send them.
To send an update link for one subscription: open Contracts, open the subscription, and in the Payment method section click Send link to update card. Shopify emails the customer a secure link. Once they update the card, Subi uses the new method for the next billing attempt.
To send links in bulk: from the Failed Payment tab of your Contracts list, select the subscriptions with the same failure reason, then click Bulk actions > Send update payment method link.
How you are notified of failed payments
Enable failed payment notifications in your Subi settings to notify both you and your customer when a payment fails. You can receive an email alert for each failure and see every failed payment in the Failed Payment tab of your Contracts list. When Smart payment recovery is active, the customer also receives a short series of recovery emails explaining what happened and how to fix it. You can turn those recovery emails on or off independently of card retries with the toggle in the Customer emails card under Retention > Payment recovery.
Related articles


