> ## Documentation Index
> Fetch the complete documentation index at: https://docs.momentco.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Automatic recurring payment collection built on top of the Payment Sessions API.

Subscriptions enable automatic payment collection on a recurring schedule. They are created through the [Payment Sessions API](/api-reference/collect/payment_sessions/overview) when `subscription_options` are passed during a `first_in_series` payment session.

When the first payment succeeds, it acts as an authorisation and sets up the underlying mandates required for future charges. The subscription is then automatically activated and payments are collected according to the `recurrence` parameters defined at setup.

## How it works

1. Create a `first_in_series` payment session with `subscription_options` including the recurrence configuration.
2. The customer completes the first payment, authorising future charges.
3. Moment sets up the required mandates and activates the subscription.
4. Subsequent payments are collected automatically on the schedule defined by the `recurrence` parameters.

## Webhooks

The Subscriptions API emits events to notify you of changes to a subscription's lifecycle.

| Event                                                                              | Description                                                                                    |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [`subscription.created`](/api-reference/collect/subscriptions/webhook/created)     | Fired when a subscription is created and activated after a successful first payment.           |
| [`subscription.ended`](/api-reference/collect/subscriptions/webhook/ended)         | Fired when a subscription reaches its end date and all scheduled payments have been collected. |
| [`subscription.cancelled`](/api-reference/collect/subscriptions/webhook/cancelled) | Fired when a subscription is cancelled before reaching its end date.                           |
