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 billing_activity event to Kinesis and schedules the first collection attempt.

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.