Feature Summary
A categorized reference of capabilities exposed by the Subscription Service. For flow details and data models, follow the cross-references on each section.
Subscription Management
| Feature | Description |
|---|---|
Activate subscription |
Creates a new subscription for a user after validating eligibility, underwriting criteria, and membership tier. Publishes a |
Reactivate subscription |
Reactivates a canceled subscription for a user. Collects any remaining balance from the previous subscription, then creates a new active subscription record with a fresh due date. |
Get subscriptions |
Returns all subscription records for a user, including past, active, and canceled subscriptions. |
Get current subscription |
Returns the user’s active subscription (either upcoming or past due), including status and due date. |
Get active subscription term |
Returns the length of the user’s current active subscription term in months. |
Get billing details |
Returns the first billing details for a new user, or the upcoming billing details for an existing user, including amount and due date. |
Update subscription |
Updates a subscription’s status and due date. Writes a change record for audit purposes. |
Upgrade to membership tier |
Upgrades a user’s membership to a higher tier. Updates the subscription amount and publishes the tier change event. |
Downgrade to membership tier |
Downgrades a user’s membership to a lower tier. Marks the subscription for downgrade on the next billing cycle if the user has an active subscription. |
Ban user |
Marks all active subscriptions for a banned user as canceled. Prevents future collection attempts and publishes a ban event. |
See Subscription Lifecycle for state-transition details and API Specification for the full endpoint reference.
Membership Events
| Feature | Description |
|---|---|
Membership upgrade |
Consumes a membership upgrade event from the user-service Kinesis stream and updates the user’s subscription tier. |
Membership downgrade |
Consumes a membership downgrade event and marks the active subscription for downgrade on the next billing cycle. |
Membership pause |
Consumes a pause event and defers the user’s subscription collection date by a configurable number of days. |
Membership unpause |
Consumes an unpause event and resumes normal collection schedule for the user’s subscription. |
Membership cancel |
Consumes a cancel event from user-service and cancels the user’s active subscription. |
Membership retract |
Handles membership tier retraction (e.g., due to fraud or compliance). Cancels active subscriptions and prevents reactivation. |
Close account |
Consumes a close-account event and cancels all active subscriptions for the user. |
See Membership Processing for detailed event flows and processing logic.
Collections
| Feature | Description |
|---|---|
Scheduled collections |
On the subscription due date, attempts collection via ACH debit or card payment. Retries on failure up to a configurable maximum. Uses distributed locking to prevent duplicate attempts. |
Retry collections |
Every weekday morning, retries subscriptions in error or retry status. Enforces a maximum attempt count and marks subscriptions for pause if collection repeatedly fails. |
Pause collections |
Temporarily stops collection attempts for subscriptions marked as paused by membership events. Resumes on unpause. |
Income webhook collection |
On income detection from the Transactions Service, attempts opportunistic collection on subscriptions in retry status. Checks account balance against a configurable threshold. |
Balance update webhook |
On balance update events from the Transactions Service, attempts collection on subscriptions in retry status with a conservative balance check. |
ACH settlement handling |
Processes ACH payment callbacks from the Payments Kinesis stream. Updates subscription status based on settlement outcomes (COMPLETED, RETURNED, REFUNDED, CHARGED_BACK) and publishes notification events. |
Manual payment |
Allows on-demand payment submission for a specific subscription. Submits to the Payments Service and updates the collection history. |
See Collections Engine for detailed decision logic, flow diagrams, and distributed locking implementation.
Notifications
| Feature | Description |
|---|---|
Three-day pre-subscription notifier |
Runs daily at a scheduled time and queries all upcoming subscriptions due in three days. Enqueues notifications to Iterable and Segment, and optionally publishes to mobile push. |
Collection failure notifications |
On collection failure, publishes failure events to Iterable, Segment, and AppsFlyer. Includes retry guidance and next action information. |
See Notifications for scheduler and worker architecture, channel configuration, and event details.
Bypass & Administration
| Feature | Description |
|---|---|
QA subscription creation |
Test-environment-only endpoint for creating subscription records with associated collection history and payment records. Used by QA automation and integration testing. |
Manual collection attempt |
Allows support staff to manually trigger collection for a subscription via an admin API or operational script. Updates the history and publishes the outcome. |
See API Specification for endpoint details and request/response schemas.