Skip to main content

Prevent duplicate subscriptions with subscription buckets

Problem Statement

Pelcro currently allows a user to have multiple active subscriptions of the same type or within the same logical grouping, especially when subscriptions are created via the API.

This creates problems for:

  • In-app purchases (Apple App Store / Google Play), where platforms enforce one active subscription per group

  • Web subscriptions, where users can accidentally subscribe twice

  • Client apps, which must implement complex and fragile idempotency logic

Apple and Google solve this with subscription groups that behave like radio buttons: one active subscription per group, while still allowing upgrades and downgrades.

Pelcro lacks a native equivalent.


User Story

As a Pelcro merchant or integrator
I want to define subscription groups that enforce one active subscription per user per group
So that duplicate subscriptions are prevented and upgrades/downgrades are handled cleanly across web, API, and mobile platforms.


Proposed Behavior (High Level)

  • Plans may optionally belong to a Subscription Group

  • A user may have only one active subscription per group

  • Creating a subscription in the same group will:

    • Trigger an upgrade/downgrade flow or

    • Be rejected with a clear, deterministic API error (behavior TBD)

Multiple Groups Are Supported

  • A platform may define multiple independent subscription groups

  • A user may have one active subscription per group

  • Example:

    • Group A: Content Access

    • Group B: Add-on / Premium Tier
      → One active subscription per group is valid and supported


Definition of Done (DoD)

  • Subscription Groups can be created and managed

  • Plans can be assigned to a group

  • Pelcro enforces one active subscription per user per group

  • Upgrade/downgrade within a group is supported

  • Duplicate subscriptions in the same group are prevented at the platform level

  • API behavior is documented and test-covered

  • Backward compatible for plans not assigned to a group


Impacted Components

  • API – enforcement and upgrade/downgrade logic

  • Admin UI – group and plan management

  • JS-SDK – subscription creation flows

  • Integrations – Apple App Store, Google Play Store, Web Checkout


Business Impact

  • Simplifies in-app purchase integrations

  • Prevents double billing and duplicate entitlements

  • Improves upgrade/downgrade UX

  • Aligns Pelcro with Apple / Google subscription models

Status: Available6 comments

Log in to comment and vote

Comments6

  • An Anonymous User

    •

    Jun 24

    •

    Merged request

    •

    11 votes

    Prevent Duplicate Subscriptions in Checkout Flow

    Problem Statement

    Pelcro's checkout flow currently allows logged-in subscribers with an active subscription to initiate the purchase of a new plan without being made aware that they already have an active subscription. This leads to accidental double-billing and subscriber confusion.

    User Story

    As a subscriber using the checkout flow,

    I want to clearly see that I already have an active subscription,

    so that I avoid purchasing duplicate or unnecessary plans.

    Proposed Behavior

    When a logged-in user with at least one active subscription opens the product or plan selection interface (React Elements):

    Informational Banner

    A visible informational banner appears at the top of the product/plan selection modal containing:

    1. Text: "You are already subscribed to: {Active Plan Name}"

    No actions, buttons, or links are included. The subscriber can still proceed if they intentionally want a second subscription.

    Logic Rules

    1. Banner displays only for logged-in users with active subscriptions.

    2. If multiple active subscriptions exist, display the most recently created active subscription.

    3. Checkout flow remains unblocked — the warning is informational only.

    4. No backend or API changes required.

    Definition of Done (DoD)

    UI Implementation (React Elements)

    1. Implement a simple informational banner at the top of the product/plan selection modal.

    2. Banner text: "You are already subscribed to: {Plan Name}"

    3. Styling follows Pelcro's general UI guidelines.

    4. No interactive elements are added.

    Functional Behavior

    1. Banner is informational only — does not block checkout.

    Edge Conditions

    1. Banner is hidden when the user has no active subscription.

    2. Banner dynamically loads based on the subscription status available in Elements.

    Affected Components

    1. UI: Pelcro React Elements (checkout flow)

    2. API: None

    3. SDK: None

    4. Backend: None

    • Rana Haleem

      Team•

      Sep 10, 2025

      Thanks for sharing this! 🙏

      To better understand your needs — Would you prefer customers to only receive a warning if they try to subscribe to the same plan they already have, or should the warning also appear if they attempt to subscribe to a different plan while their current subscription is still active?

      • Chris Gogos

        •

        Nov 5, 2025

        In my opinion a customer needs to receive a warning if they have any active plan. If the customer choice is an upgrade then they should be shown the ‘enable self-serve plan upgrade’ option (currently ‘in progress’). If it is a downgrade they should receive a similar message to ‘change plan’.

    • An Anonymous User

      •

      Sep 10, 2025

      Oh, 100% both scenarios.

    • Rana Haleem

      Team•

      Dec 2, 2025

      This is available now in our latest React Elements version. Please reach out to support@pelcro.com to upgrade to the newest UI.

    • An Anonymous User

      •

      Apr 5

      •

      Merged request

      •

      3 votes

      Warn Subscribers Creating a Duplicate Active Subscription

      This post has been merged into Prevent Duplicate Subscriptions in Checkout Flow. Please follow that post for updates.