Expired/Voided payment status orders on Shopify
Shopify assigns an Expired payment status when a payment is not captured before the date set by the payment provider. Without proper handling, these orders may remain in a pending or unclear state, creating confusion for brands when reviewing billing attempts. To address this, Loop ensures expired or voided orders are marked clearly as failed, making subscription reporting more reliable.
In this article
- Shopify Expired/ Voided payment status orders
- How Loop handles these orders
- Failure reasons on Loop
- How to handle these orders
- Need help?
Shopify Expired/ Voided payment status orders
Expired: Payment wasn't captured before the date that was set by the payment provider on an order that had the Authorized payment status. Some payment providers that provide alternatives to credit card and cash payments, use the Expired status to indicate that they were unable to process the payment. Contact your payment provider to find out if the payment can still be captured.
Voided: An unpaid order was manually cancelled.
How Loop handles these orders
Whenever Shopify flags an order with an Expired/Voided status, Loop performs the following actions:
- The billing attempt is marked as failed in Loop
- The order status is marked as failed
- The order is assigned a failure reason so brands can identify why it failed
This process ensures that expired or voided orders do not remain stuck in a pending state and are permanently closed out as failed.
Failure reasons on Loop
Loop introduces internal failure reasons to categorize expired or voided orders more effectively. These are displayed in the order logs and billing attempt history:
Order stuck in pending
- The order remained in Pending financial status beyond the duration configured in your Pending payments handling settings.
- Since Shopify never moved the order from Pending to Paid, Loop assumes the order is bound to fail and marks it accordingly.
Order expired or voided
- Shopify directly set the financial status to Expired or Voided.
- Loop records this as a failed order under this reason.
⚠️ Important: To improve clarity, Loop dynamically adjusts the error message based on the actual Shopify financial status:
Permanent failure status
Expired or voided orders are permanently marked as FAILED_WITH_NO_RETRY in Loop.
- This prevents unnecessary retries for an order that cannot be recovered.
- It ensures your retry logic only applies to orders where recovery is possible (e.g., failed credit card payments).
- It keeps your subscription records clean by excluding expired/voided orders from future billing attempts.
How to handle these orders
Need help?
No worries - we're here for you!
If you have any questions or need assistance, feel free to email us at support@loopwork.co or chat with us using the support beacon at the bottom right of your screen.
Regards,
Loop Subscriptions Team 🙂
Updated on: 15/09/2025
Thank you!