Subscription management
To manage subscriptions:- Go to the Support Tool page.
- Search for a user or click on the User UUID under Latest payments.
- You will see sections with the following user details:
- User information: Shows user IDs, email address, user agent (browser), IP address, and creation date.
- Payments: Shows transactions and refund options.
- Subscriptions: Performs subscription management actions and shows subscription status.
- One-off: Shows lifetime subscription access.
- Webhook events: Shows events related to the user. Learn about Subscription engine webhook events.
Modify subscriptions
From the Subscription section, you can perform the following actions:Unsubscribe and recover
When auto-renew is disabled, no additional charges occur. Premium access remains active until the end of the current paid period, then becomes deactivated.
Pause and Resume
Users can temporarily pause their subscriptions to delay future charges. The subscription resumes automatically after the set period or can be manually resumed via API. Premium access is not available during the pause.
Discount
After a subscription is purchased, you can apply discounts to future payments. Discounts are calculated as a percentage of the payment amount. You can also specify how many billing cycles the discount applies to. For example, set a 30% discount on all future payments, or a 50% discount on just the next two payments.
Defer Subscription
Defer subscription postpones the next charge date. This is useful when a user could not use the app and you want to compensate them for that time.The next payment date is pushed forward, giving the user free access for a set period. This helps maintain customer loyalty without issuing refunds or manually extending subscriptions.
Subscription status
The Subscriptions section indicates the following statuses:- INTRO: Subscription is in trial period.
- RECURRING: Trial is over, subscription is recurring. Charges occur 2 hours before the next billing cycle to ensure uninterrupted access.
- AUTORENEW_OFF: Auto-renewal is disabled, subscription ends after the current period.
- PAUSED: Subscription is paused until a set date; premium access is not available.
- GRACE: Payment failed, but access is temporarily retained.
- RETRY: Payment failed, retry attempts are in progress.
- EXPIRED: Subscription has ended.
next_check
field below, which determines when the next subscription action is scheduled.
For example:
Status | premium | next_check meaning | auto-renew enabled |
---|---|---|---|
INTRO | ✅ | time of next charge and conversion to regular sub | ✅ |
RECURRING | ✅ | time of next renewal and charge | ✅ |
INTRO | PAUSED RECURRING | PAUSED | ❌ | time when auto-resume will occur | ✅ |
RECURRING | AUTORENEW_OFF | PAUSED INTRO | AUTORENEW_OFF | PAUSED | ❌ | time when auto-resume will occur; after resume, no charge | ❌ |
RECURRING | AUTORENEW_OFF INTRO | AUTORENEW_OFF | ✅ | subscription will fully stop and premium access will be revoked at next_check | ❌ |
INTRO | GRACE | RETRY RECURRING | GRACE | RETRY | ✅ | time of next auto-renewal attempt | ✅ |
INTRO | RETRY RECURRING | RETRY | ❌ | time of next auto-renewal attempt | ✅ |
EXPIRED | ❌ | subscription fully stopped; no further actions | ❌ |
Status change
Every subscription status change creates an event that:- Is saved in the subscription history
- Triggers a webhook to your backend if configured
- Maintain your own statistics and analytics
- Want to keep an up-to-date copy of the subscription state in your system

One-off
To check if a user has been granted lifetime access, go to the One-off section. Lifetime access is permanent and can only be revoked if a full refund is issued.Payments
The Subscription engine handles payments end-to-end. It securely stores payment methods for one-click purchases and includes built-in deduplication to prevent charges if users try to purchase a product they already own.Refunds
To process a refund, click any transaction under the Payments section. Subscription engine supports the following refund types:- Full Refund: Entire amount refunded; subscription immediately becomes
EXPIRED
, one-off payment is revoked. - Partial Refund: Partial amount refunded; auto-renewal is disabled automatically.
- Soft Refund: Funds are refunded, but auto-renewal remains enabled. No effect on subscription or one-off purchase.
- Reason: Short reason for the refund.
- Comment: Custom support engineer comment (Jira task ID, ZenDesk ticket ID, etc.).
Free trials
To launch a free trial, you need to save the user’s payment information without charging their card. This is done through the Primary Workflow with the proper metadata configuration.- Create a client session with the special
metadata
flagff_auto_cancel = true
. - The Primary Workflow processes this flag:
- The card is authorized like a normal payment.
- Instead of completing the transaction, Primer cancels it.
- Result:
- No charge is made and no funds are withdrawn.
- The card data is saved for the first subscription renewal.
Payment method update
When a user has failed payment attempts and all retry stages are unsuccessful, you can direct them to an Update Payment Method page. This page can also be used anytime card information needs updating. How it works:- The user goes to a page that looks like a standard payment form
- It uses a special
update_payment_method
function designed only for card updates, not purchases - When entering a new card, authorization without charging is performed:
- The transaction is cancelled immediately after authorization
- The card data is saved for future charges
Disputes
When a dispute is initiated for any payment, the system automatically responds to minimize financial and reputational risks:- Auto-renewal is disabled immediately upon receiving a dispute
- Assumptions:
- The dispute will be automatically resolved in favor of the user
- Funds from the last transaction will be automatically refunded by the PSP
- No new subscription charges will be made, preventing future disputes
Retries
The retry logic is configurable per merchant.
Long (Smart) Retry schedule
For subscriptions with 7-day intervals or less:- Day 0 (billing problem detected): Activate grace period
- Day 2: Partial charge (70%)
- Day 7: Partial charge (50%)
- Day 0 (billing problem detected): Activate grace period
- Day 2: Full charge
- Day 7: Full charge, deactivate grace period
- Day 12: Partial charge (70%)
- Day 20: Partial charge (50%)
- Day 0 (billing problem detected): Activate grace period
- Day 2: Full charge
- Day 7: Full charge, deactivate grace period
- Day 12: Full charge
- Day 22: Partial charge (70%)
- Day 33: Partial charge (50%)
Short Retry schedule
For subscriptions with 7-day intervals or less:- Day 0 (billing problem detected): Activate grace period
- Day 2: Partial charge (70%)
- Day 0 (billing problem detected): Activate grace period
- Day 7: Partial charge (70%), deactivate grace period
- Day 20: Partial charge (50%)
- Day 0 (billing problem detected): Activate grace period
- Day 7: Full charge, deactivate grace period
- Day 15: Partial charge (70%)
- Day 33: Partial charge (50%)