Guide
How Shopify subscriptions work: selling plans, contracts and billing attempts
A selling plan sets how a product can be bought on repeat. A subscription contract is the agreement between the customer and the merchant. Each charge is a billing attempt on that contract, and it can succeed or fail. A failed attempt is a payment event, so it does not show by itself that the customer chose to leave.
By MergeGuard team
Last updated
3 min read
On this page
A subscription looks like one thing to a customer and three things to Shopify. A plan says how the product can be bought, a contract records the agreement, and every charge is a separate attempt to collect money. Knowing which is which makes it easier to read what your admin shows you when a payment fails or a subscriber goes quiet.
Key insight
The contract and the billing attempt are separate things. A failed charge is a payment event, and the customer may not have decided anything yet.
Selling plans
Shopify’s developer documentation describes two types of selling plan.
- Pay-per-delivery. “Pay for products for each delivery. New orders are created at regular intervals.”
- Pre-paid. “Make a single payment upfront and receive products on a regular cadence until the order is fulfilled.”
The type decides how often you ask for money. A pay-per-delivery plan collects at every delivery, so there are more moments when a payment can fail. A pre-paid plan collects once at the start. That comparison is our reasoning from the two definitions, and Shopify’s pages don’t put it that way.
Subscription contracts
A subscription contract is, in Shopify’s words, “the agreement between a customer and a merchant over a specific term for recurring purchases” (Subscriptions). The developer documentation says contracts “might have a status of active, paused, or failed”.
The contract is attached to a customer profile. That detail matters later: when the same person has two profiles, the contract sits on only one of them. It also explains a merge limit, because Shopify refuses to merge a profile that has, or has ever had, a subscription contract. The details are in duplicate profiles and subscription contracts.
Billing attempts
An app collects payment on a contract. Shopify’s documentation says “apps charge customers for their subscriptions by initiating a billing attempt on the subscription contract”. When an attempt fails, Shopify sends a webhook (a message to the app) described as “Occurs when a billing attempt fails”. The documentation’s example error reads “Payment method was declined by processor” (Subscription contracts).
The failed branch explains why a failed payment can pass without a trace in your order list. The attempt failed, so there may be no order to look at.
What customers can do
Shopify’s help page for its Subscriptions app says: “Customers can resume, skip, or cancel their subscriptions, and they can manage their payment methods and shipping address” (Shopify Subscriptions app).
So a subscriber has several quiet ways to change what they receive. A skipped delivery, a canceled subscription and an expired card are different events, and each leaves a different mark in your data.
Where it goes wrong
Two things go wrong most often, and each has its own guide.
- A payment fails. Shopify lets the merchant adjust the retries and choose a final action. Read failed payments on Shopify subscriptions.
- A subscriber has a second account. The subscription profile shows the subscription orders, and another profile may hold the one-time orders. Read subscribers who buy outside their subscription.
In MergeGuard’s demo store: 412 subscribers → 38 with a second account → 21 showing signs Demo store (Northsail Supply).
Take the self-check below to see which gap to close first.
Self-assessment
Four questions about your own practice. Each answer is worth 0, 1 or 2 points. This is a self-check: nothing is stored or sent.
Add up the points beside your answers (the highest total is 8) and find your total in the list below.
0 to 2: Start with the terms
Selling plan, contract and billing attempt describe every charge you collect. Read the contract entry first, then the failed payments guide.
3 to 5: Review your retry settings
You know the outline. Write down your retry values and your final action, then read what each setting does.
6 to 8: Add a second-account check
Your billing basics are in place. The next gap is subscribers whose other orders sit on another profile.
Sources
- Shopify developer docs: Subscriptions (selling plans and subscription contracts)
- Shopify developer docs: Subscription contracts (billing attempts and failed billing)
- Shopify Help Center: Shopify Subscriptions app (what customers can do)
- Shopify Help Center: Managing Shopify Subscriptions (billing attempts)
- Shopify Help Center: Managing customers, Limitations for merging customer profiles
Related
- Failed payments on Shopify subscriptions: retries and what happens nextWhat happens when a Shopify subscription payment fails: the retry settings you can change, the final action when every retry fails, and a second account check.
- Subscribers who buy outside their subscriptionA subscriber who also buys the same product one-time, maybe on a second profile, may be leaving. Learn the signs and how to check their whole order history.
- Duplicate profiles and subscriptions: why a subscriber’s second account mattersShopify won’t merge a profile that has, or has ever had, a subscription contract. See what that means for a subscriber’s second account and how to count them.
- Subscription contractA subscription contract is the agreement between a customer and a merchant for a subscription. See why Shopify won’t merge a profile that has ever had one.
- AudiencesMergeGuard Audiences count each Shopify customer once across duplicate profiles, with lists for newsletters, win-back, VIPs and subscribers who may cancel.
- Why can’t I merge customers in Shopify?Shopify blocks some customer merges. Here are the 9 cases from Shopify’s help page, what each one means, and what you can still do with those profiles.
- Build an audience list that counts each person oncePick a ready Audiences list, adjust its rules with a live preview, then sync it to Klaviyo or export a CSV. See which audience each MergeGuard plan includes.