Terms of Service — Obnold Subscription
Last updated: 1 August 2026
App name: Obnold Subscription
Operator: configured via Obnold (see .env.example / getAppConfig().legal)
Contact: configured via support@obnold.com
Published terms URL: configured via https://subscriptions.obnold.app/terms
Governing law / jurisdiction: (set by operator when publishing Terms; not stored in app code)
Before App Store submit: set support@obnold.com, Obnold, https://subscriptions.obnold.app/terms, and related legal env vars (see
.env.example). Publish this document at the HTTPS URL in https://subscriptions.obnold.app/terms and record it in Partner Dashboard / REVIEW_CHECKLIST.md. Do not invent company information in the repository.
These Terms of Service (the “Terms”) govern your installation and use of the Obnold Subscription Shopify application (the “App”). By installing or using the App, you agree to these Terms. If you do not agree, do not install or use the App.
Data handling is described in the App’s Privacy Policy. These Terms do not restate that policy; if there is a conflict about how personal data is processed, the Privacy Policy controls for that subject.
1. Acceptance of terms
Installing the App from the Shopify App Store (or via an authorized Shopify distribution), authorizing Shopify OAuth scopes, or continuing to use the App after notice of updated Terms constitutes acceptance of these Terms by the merchant account that installs the App (“you” or “Merchant”).
You represent that you have authority to bind the store and business that installs the App.
2. Eligibility
The App is offered to Shopify merchants with an active Shopify store who can authorize the App’s requested Admin API scopes. The App is an embedded Shopify application and depends on Shopify authentication, Admin APIs, webhooks, checkout/selling plans, and (for paid App plans) Shopify’s App Billing flows.
The App is not a standalone consumer product. End customers of your store use customer-facing features (storefront widget and Customer Account portal) only in connection with your store, under your relationship with those customers.
3. Account responsibilities
You are responsible for:
- Maintaining control of your Shopify store and staff accounts that can install or configure the App.
- Keeping App configuration accurate (subscription plans, product associations, widget settings, notification templates, automations, and Customer Account / theme extension placement).
- Ensuring your use of the App complies with Shopify’s terms, applicable law, and your obligations to your customers (including marketing, subscription, and privacy disclosures you owe them). Customer consent for marketing or non-essential processing is your responsibility; the App does not replace your storefront consent tools or Shopify Customer Privacy configuration.
- Safeguarding credentials and not sharing Admin access inappropriately.
The App stores OAuth session/access-token data needed to call Shopify APIs on your behalf, as described in the Privacy Policy.
4. App functionality
Subject to these Terms, Shopify platform availability, and your App plan entitlements, the App provides tools to:
- Create and manage merchant-defined subscription plans (billing frequency, discounts, trial days for customer selling plans, product restrictions, and sync to Shopify selling plans).
- Sync and display customer subscriptions and related subscription orders in the embedded Admin UI, driven largely by Shopify webhooks and Admin API sync.
- Merchant actions on subscriptions in Admin (including pause, resume, skip, and cancel flows that call Shopify subscription-contract APIs and then sync local records).
- Automations configurable by the Merchant (win-back discount codes, auto-pause after consecutive failed payments, loyalty discounts, and skip-limit rules).
- Transactional email notifications (when SMTP is configured for the App’s hosting environment and templates are enabled): subscription confirmation, renewal reminder, failed payment, and cancellation confirmation. Cancellation emails may include a win-back discount code when that automation runs.
- Storefront theme App Extension for selecting a selling plan on product pages, using Liquid/storefront data and an app-proxy plan lookup.
- Customer Account portal extension for logged-in customers to view limited subscription details and pause, resume, skip, or cancel.
- Aggregate Admin analytics (for example MRR trends, plan performance, and cohort retention) derived from subscription and plan records.
- Merchant App billing / pricing UI for viewing catalog plans and requesting paid App subscriptions through Shopify Billing (when available for your distribution).
The App does not process customer card payments as a payment processor; Shopify (and your payment providers) handle customer checkout and recurring charges for subscription orders. The App does not promise features that are not implemented in the current product (for example, there is no separate “reports” product surface in the App beyond the Analytics screens that exist today).
5. Subscription plans (App pricing tiers)
These are the Merchant App plan tiers defined in the App’s billing catalog (USD). They are distinct from the subscription selling plans you create for your customers.
| Plan | Price (catalog) | Purchasable in-App |
|---|---|---|
| Free | $0 monthly / $0 yearly | Yes |
| Starter | $9.99 / month or $99 / year | Yes |
| Growth | $29.99 / month or $299 / year | Yes |
| Scale | No price assigned | No — marked coming soon in the catalog; not available to purchase through the App’s Shopify Billing config |
Paid charges that can be requested through Shopify Billing are configured for Starter and Growth only (monthly and yearly). Free has no charge. Scale is excluded from the Shopify Billing charge configuration while it remains coming soon.
5.1 Catalog capability summary
The catalog associates each tier with capability flags and numeric limits, including:
| Capability | Free | Starter | Growth | Scale (coming soon) |
|---|---|---|---|---|
| Max subscription plans | 3 | 15 | Unlimited | Unlimited |
| Max unique products across plans | 25 | 250 | Unlimited | Unlimited |
| Widget customization (catalog flag) | No | Yes | Yes | Yes |
| Basic analytics (catalog flag) | Yes | Yes | Yes | Yes |
| Advanced analytics (catalog flag) | No | No | Yes | Yes |
| Automation (catalog flag) | No | Yes | Yes | Yes |
| Reports (catalog flag) | No | No | Yes | Yes |
| Priority support (catalog flag) | No | No | No | Yes |
5.2 What is actually enforced in code today
- Numeric limits on creating/activating subscription plans and on unique products associated with plans are enforced in plan create/update paths (attempts that would exceed the Merchant’s effective caps are rejected).
- After a downgrade, existing over-limit plan/product data may be retained; the App blocks new creates/expansions that would further exceed the cap, consistent with the limit evaluation logic.
- Boolean catalog flags (widget customization, analytics level, automation, reports, priority support) are used for pricing display / entitlement modeling. As of the current codebase, those boolean flags are not implemented as hard locks on the corresponding Admin feature routes (for example, Analytics and Automations screens are not gated by a capability check in their loaders). Merchants should treat the numeric plan/product caps as the hard in-product limits; other matrix rows describe catalog intent and may be enforced more strictly in future updates.
- When
SHOPIFY_BILLING_ENFORCEMENTis enabled in the App’s deployment configuration, Merchants whose billing activation state requires action may be redirected to the in-App billing page and blocked from other App routes until resolved. When that enforcement flag is not enabled (common in development / custom-distribution setups), the App does not lock Merchants out of routes solely for billing state, though soft notices may still reflect real trial/plan status.
Effective entitlements during an active first-install trial use Starter capability limits (see Section 6). When a paid plan expires without an active paid subscription, capabilities fall back to the Free catalog set until a paid plan is active again.
6. Free trial
A 14-day trial is implemented for first install only.
- On first install, the App creates a merchant billing record with trial status and a trial end date 14 days out, and sets
hasUsedTrialso the trial is not granted again. - During an active trial, the Merchant receives Starter-tier capability limits (including the Starter numeric caps), even if the stored plan id remains Free.
- Reinstall does not re-grant a trial if
hasUsedTrialis already set. Merchant billing records survive soft uninstall and reinstall for this reason; they are removed on Shopify’sshop/redactflow as described in the Privacy Policy. - After the trial ends without an active paid App subscription, effective status becomes expired and entitlements fall back as described in Section 5.2.
7. Merchant billing
- Paid App fees for Starter and Growth are initiated through Shopify’s App Billing / App Subscription flows (
billing.requestand related sync). Shopify presents the charge for approval and bills according to Shopify’s billing practices for the chosen interval (every 30 days or annual, as configured). - The App stores a local merchant billing record (plan tier, status, trial timestamps, whether a trial was used, and optional Shopify billing identifiers) for display, entitlement evaluation, and sync.
- After charge approval, the Merchant is returned to the App’s billing return path inside Shopify Admin; the App refreshes local billing state from Shopify where that sync path runs.
- An
app_subscriptions/updatewebhook reconciles localMerchantBillingfrom Shopify App Subscriptions (syncMerchantBillingFromAdmin). afterAuth and billing return paths also refresh billing state where those sync paths run. - Test vs live charges follow the App’s billing test-mode resolution (including environment configuration such as
SHOPIFY_BILLING_TEST). Development stores may require test charges. - If the App listing is still on Shopify managed pricing, Shopify may reject
appSubscriptionCreate; in that case paid plan purchase through the App will not complete until the listing is configured for manual App billing. That is a distribution/configuration constraint, not a separate App feature.
Prices shown in the catalog are in USD. Shopify may present taxes, currency display, or invoice details under Shopify’s billing rules.
Uninstalling the App or cancelling a Shopify App Subscription may affect future charges under Shopify’s rules; local data retention after uninstall is described in Section 16 and the Privacy Policy.
8. Customer Portal usage
The Customer Account subscription portal is provided to your store’s customers as part of your storefront / Customer Account experience. It does not create a direct customer–operator contract for those end users beyond the operator’s role as a processor/service provider to you.
Authenticated customers may, where their subscription status allows:
- View plan name, status, billing frequency, next billing date, and whether skipping is blocked.
- Pause, resume, skip a billing cycle, or cancel (cancel may collect a reason category).
Portal actions authenticate with a Shopify Customer Account session token, update Shopify subscription contracts where applicable, then sync the App’s local records.
You are responsible for how you present portal capabilities to customers, for your own terms of sale / subscription terms with customers, and for customer support issues arising from your products and policies. The portal does not display customer name or email from the App’s portal payload.
9. Theme Extension usage
The theme App Extension (subscription selector / widget) lets shoppers choose a subscription selling plan on product pages where you have added the block. It uses storefront product, variant, selling-plan, and widget-config data (including App metafields) and may fetch plan options for a product through the App’s app proxy (/apps/obnold → App storefront API).
You are responsible for:
- Installing and placing the extension on the appropriate theme templates.
- Ensuring selling plans and product associations are correct so checkout behaves as you intend.
- Widget labels, colors, and behavior you configure.
The extension does not set App-owned cookies and does not collect customer account credentials for App storage. Theme block placement is managed in Shopify; App reinstall cleanup resets App-owned selling plans and widget metafields but does not remove theme block placement itself.
10. Acceptable use
You agree not to:
- Use the App in violation of Shopify’s terms, applicable law, or third-party rights.
- Attempt to circumvent plan/product numeric limits, authentication, webhook verification, or billing controls.
- Abuse notification sending (for example, using templates or SMTP configuration to send unlawful or deceptive messages).
- Interfere with the App’s operation, other merchants’ data, or Shopify platform integrity.
- Reverse engineer the App except to the extent such restriction is prohibited by law.
- Represent the App as your own product or remove branding except where the product UI permits merchant customization of storefront-facing labels.
We may suspend or terminate access for material breaches of these Terms or to protect the App, Shopify, Merchants, or customers.
11. Merchant responsibilities
In addition to Section 3, you are responsible for:
- Compliance with consumer, subscription, advertising, tax, and privacy laws applicable to your store and your customers.
- Providing your customers with accurate subscription terms, pricing, cancellation rights, and privacy notices as required.
- Configuring notifications and automations appropriately, including content of email templates sent to your customers.
- Responding to customer inquiries; the App operator is not your storefront’s customer-support desk unless separately agreed in writing.
- Cooperating with Shopify-mandated privacy webhooks and contacting support@obnold.com if you need help retrieving a stored customer data-request export (see Privacy Policy — the App stores DSAR exports for fulfillment and does not currently provide an in-App download UI).
12. Service availability
The App is provided on a commercially reasonable basis. Availability depends on:
- Shopify platform, APIs, webhooks, Admin, checkout, Customer Accounts, and Billing.
- The App’s hosting environment (the configured application URL for this project is hosted on Render) and its PostgreSQL database.
- Correct Merchant configuration and valid OAuth sessions.
- Optional SMTP connectivity for notification delivery.
No specific uptime percentage, SLA, or service-credit regime is offered in these Terms or implemented in the App. Features may change, be unavailable during maintenance or incidents, or depend on Shopify outages outside the operator’s control. Scheduled cleanup jobs may delete aged operational logs as described in the Privacy Policy; that is maintenance behavior, not a guarantee of perpetual log retention.
13. Third-party services
The App relies on third parties consistent with the Privacy Policy, including:
- Shopify — authentication, APIs, webhooks, checkout/selling plans, extensions, and App Billing.
- PostgreSQL — application database (
DATABASE_URL). - Render — application hosting reflected by the configured
application_url. - SMTP email provider — transactional notification delivery via Nodemailer using operator-configured
SMTP_*settings (vendor depends on that configuration).
Your use of Shopify remains subject to Shopify’s terms. Third-party service failures may affect App functionality. Transactional email is sent via operator-configured SMTP (Nodemailer), not a hard-coded third-party email SDK.
14. Intellectual property
The App, including its software, branding, and documentation provided by the operator, remains owned by Obnold or its licensors. These Terms grant you a limited, non-exclusive, non-transferable right to use the App on your Shopify store while it is installed and you comply with these Terms.
You retain ownership of your store content, products, customer relationships, and the subscription plans/content you configure. You grant the operator a limited license to process that content solely to provide the App (including API calls to Shopify and sending configured notifications).
Feedback you provide may be used to improve the App without obligation to you.
15. Disclaimer of warranties
TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE APP IS PROVIDED “AS IS” AND “AS AVAILABLE,” WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
WITHOUT LIMITING THE FOREGOING, THE OPERATOR DOES NOT WARRANT THAT THE APP WILL BE UNINTERRUPTED, ERROR-FREE, OR FULLY COMPATIBLE WITH EVERY THEME, PAYMENT METHOD, OR SHOPIFY PLAN; THAT NOTIFICATIONS WILL ALWAYS DELIVER; OR THAT ANALYTICS WILL BE COMPLETE OR FREE OF APPROXIMATION. CUSTOMER SUBSCRIPTION CHARGES AND APP FEE CHARGES DEPEND ON SHOPIFY AND YOUR CONFIGURATION.
SOME JURISDICTIONS DO NOT ALLOW CERTAIN DISCLAIMERS; IN THOSE CASES, DISCLAIMERS APPLY TO THE FULLEST EXTENT PERMITTED.
16. Limitation of liability
TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE OPERATOR AND ITS AFFILIATES, OFFICERS, EMPLOYEES, AND AGENTS WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS, REVENUE, DATA, GOODWILL, OR BUSINESS OPPORTUNITY, ARISING OUT OF OR RELATED TO THE APP OR THESE TERMS, WHETHER BASED IN CONTRACT, TORT, OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY.
TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE OPERATOR’S TOTAL LIABILITY FOR ALL CLAIMS ARISING OUT OF OR RELATED TO THE APP OR THESE TERMS WILL NOT EXCEED THE GREATER OF (A) THE AMOUNTS YOU PAID TO THE OPERATOR FOR THE APP THROUGH SHOPIFY BILLING IN THE THREE (3) MONTHS BEFORE THE CLAIM OR (B) FIFTY U.S. DOLLARS (US $50).
THESE LIMITATIONS APPLY TO LIABILITY ARISING FROM SERVICE INTERRUPTIONS, INCORRECT SYNCS, FAILED OR DELAYED NOTIFICATIONS, AUTOMATION OUTCOMES, THEME/PORTAL MISCONFIGURATION, DATA RETENTION OR DELETION BEHAVIOR (INCLUDING UNINSTALL, REINSTALL, AND GDPR WEBHOOKS), AND THIRD-PARTY FAILURES, TO THE EXTENT PERMITTED BY LAW.
NOTHING IN THESE TERMS EXCLUDES LIABILITY THAT CANNOT BE EXCLUDED UNDER (set by operator when publishing Terms; not stored in app code).
17. Indemnification
You will defend, indemnify, and hold harmless the operator and its affiliates, officers, employees, and agents from and against claims, damages, losses, and expenses (including reasonable legal fees) arising out of or related to: (a) your store, products, pricing, or subscription offers; (b) your customers’ claims about goods, services, billing, or cancellation; (c) your content, notification copy, or automations; (d) your breach of these Terms or applicable law; or (e) your misuse of the App or Shopify APIs.
18. Termination and uninstall
You may stop using the App at any time by uninstalling it from Shopify.
On uninstall (app/uninstalled): The App performs a soft uninstall: OAuth sessions for the shop are deleted, shop settings record an uninstall timestamp, and automation toggles are disabled. Plans, subscriptions, orders, notification templates/logs, and related operational data are not immediately deleted, so Shopify customer privacy webhooks can still be honored during the post-uninstall compliance window.
On reinstall: If the shop was soft-uninstalled, the App performs a fresh-install reset that deletes operational data (subscriptions and related orders/audit events, plans, notification logs/templates, automation settings/logs, widget preview sessions), attempts to clear related Shopify selling-plan groups, and resets widget settings/metafields. The new OAuth session is kept. Merchant App billing records are preserved (including hasUsedTrial). Theme extension block placement is not removed by this path.
On shop/redact: Subject to the install-probe behavior described in the Privacy Policy, remaining shop-scoped App data (including billing records, sessions, settings, and action logs) is erased.
The operator may suspend or terminate App access for breach of these Terms, legal risk, or platform requirements. Sections that by nature should survive (including intellectual property, disclaimers, limitation of liability, indemnification, and governing law) survive termination.
Paid App Subscription cancellation and refunds, if any, are handled under Shopify’s billing rules and any applicable Shopify policies; these Terms do not create a separate refund SLA in the App.
19. Governing law
These Terms are governed by the laws of (set by operator when publishing Terms; not stored in app code), excluding conflict-of-law rules. Courts located in (set by operator when publishing Terms; not stored in app code) will have exclusive jurisdiction over disputes, except where applicable law requires otherwise or Shopify’s dispute processes apply to charges.
20. Contact
Questions about these Terms: support@obnold.com
Legal entity: Obnold
Address: (publish with hosted legal pages; not stored in app code) (if required)
Privacy requests: see the Privacy Policy and support@obnold.com.
21. Changes to the Terms
We may update these Terms when the App’s functionality, billing catalog, or legal requirements change. The current version will be published at this document location (and/or the URL provided in the Shopify App Store listing). The “Last updated” date will change when revised.
Any additional merchant notification method for terms updates is operator-owned. The App codebase does not implement an automated “terms updated” notification.
Continued use of the App after updated Terms are published constitutes acceptance of the updated Terms, to the extent permitted by law. If you do not agree, uninstall the App.