Managing Subscriptions

Search, monitor, and manage your customer subscriptions.

Subscription Lifecycle

Subscriptions move through these states:

Subscription Status

Description

Trigger (Payment Status/Event)

Customer Access (Recomended)

Active

Subscription is in good standing. Payments are current and service is delivered.

Initial payment succeeded: Payment.Status = authorized/settled/OK Renewal payment succeeded: Payment.Status = authorized/settled/OK Recovery after retry:- Payment.Status = authorized/settled/OK

Yes, full access (entitled for the product/service)

Billing Retry (Redemption)

Payment on renewal failed, but failure is potentially recoverable (soft declinearrow-up-right). System retries as per the strategy.arrow-up-right

2nd + Payment Status = declined; Decline Type = soft_decline — Retry strategy engaged Time out of provider — Retry strategy engaged Examples: insufficient funds; timeout; issuer unavailable

Yes, access is typically retained (but merchant can revoke if needed.)

Cancelled

Subscription is terminated by user/admin or by hard payment failure No future renewals. User may have access until paid period ends, or access may end immediately.

User/admin/support cancellation:- Manual cancel via CRM Cancel request received via portal/API Immediate cancellation: Decline Type = hard_declinearrow-up-right (e.g., stolen card, account closed, VSPS, R0/R1/R3 codes) Refund/void Fraud/alert event received (TC40/Ethoca/RDR/CRDN etc) Note: For scheduled cancellation, access continues until end of paid period. For immediate, access ends now.

Access until end of period (scheduled);No access (immediate)

Expired

Subscription is no longer active (billing ceased, term ended, all retries failed).

All retry attempts exhausted

No access (product/service is revoked)

Paused (will not be in MVP stage)

The subscription is temporarily on hold (no billing occurs during the pause). This is a voluntary state initiated by the customer or admin, not directly tied to a payment failure.

– Applied when a user requests to pause their subscription (or an admin/business action pauses it) for a certain period. No new charges will be attempted during a pause interval. – A pause can be initiated only from Active (or possibly from the end of a trial);cannot pause an already canceled or expired subscription. The status changes to Paused for the duration of the pause.

No access during the paused period.

Cancelation Pending

The state when the Subscription is cancelled, but the end of the cycle has not yet happened, from this state it transfers to Expired.

No further charges or retry attempts will happen

Access until end of period (scheduled);

Retrieving Subscriptions

Get a Single Subscription

Response:

Search Subscriptions

Search subscriptions with filters:

Query Parameters:

Parameter
Description

status

Filter by status: ACTIVE, CANCELLED, EXPIRED, BILLING_RETRY

customer_id

Filter by customer ID

subscription_plan_id

Filter by plan ID

limit

Number of results (default: 20, max: 100)

offset

Pagination offset

Response:

Cancelling Subscriptions

Cancel Immediately

Cancel a subscription effective immediately:

Cancel at Period End

Allow the subscription to run until the current billing period ends:

Response:

Monitoring via Dashboard

Subscription List

  1. Navigate to Subscriptions

  2. View all subscriptions with status, customer, and plan details

Use the dashboard filters to:

  • Filter by status (Active, Cancelled, Expired, Billing Retry)

  • Search by customer email or ID

  • Filter by subscription plan

  • Sort by created date or next billing date

Subscription Details

Click on a subscription to view:

  • Current status and billing period

  • Customer information

  • Plan details

  • Payment history

  • Retry attempts (if in BILLING_RETRY status)

Webhook Events

Monitor subscription changes in real-time:

Event
When Sent

SUBSCRIPTION_ACTIVATED

New subscription activated

SUBSCRIPTION_RENEWED

Subscription successfully renewed

SUBSCRIPTION_CANCELLED

Subscription cancelled

SUBSCRIPTION_EXPIRED

Subscription expired

SUBSCRIPTION_BILLING_RETRY

Failed payment retry attempt

See Configure Webhooks for setup.

Example: Handling Cancellation

Common Operations

Check if Subscription is Active

List Customer's Subscriptions

Handle Expiring Subscriptions

Best Practices

Graceful Cancellation

  • Allow customers to cancel at period end rather than immediately

  • Send confirmation emails with the effective cancellation date

  • Provide easy re-subscription options

Monitoring Billing Retries

  • Watch for SUBSCRIPTION_BILLING_RETRY events

  • Consider reaching out to customers with payment issues

  • Review retry strategy effectiveness periodically

Data Synchronization

  • Use webhooks as the primary source of truth for subscription status

  • Implement idempotent webhook handlers

  • Store the subscription ID in your database for easy lookups

Next Steps

Last updated