> ## 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

> How mandates, subscriptions, and payment methods work together to support recurring payments

A recurring payment is made up of a mandate (the customer's consent) and an optional subscription (automated collection on a schedule).

## Two ways to collect

Every recurring payment is underpinned by a [mandate](/documentation/collect/payment-sessions/mandates/overview): the customer's consent, captured once during the first payment (`first_in_series`) via the mandate options (`mandate_options`).

From there, there are two ways to collect against it:

* **Merchant-controlled**: you decide when to collect. Create a `next_in_series` session yourself, whenever you choose, with no further customer interaction. Collection stays constrained by the mandate options (`mandate_options`) supplied at consent.
* **Automated**: the platform decides when to collect, on a schedule you define. Add subscription options (`subscription_options`) alongside the mandate options (`mandate_options`) when creating the mandate. Collection is scheduled and executed automatically, still constrained by those same mandate options.

The mandate is the consent ceiling in both cases; the subscription, when present, simply runs within it. See below for the full detail on each.

<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-2 gap-6">
  <Card title="Mandates" icon="file-signature" href="/documentation/collect/payment-sessions/mandates/overview">
    The consent a customer provides for a merchant to initiate future charges.
  </Card>

  <Card title="Subscriptions" icon="calendar-clock" href="/documentation/collect/payment-sessions/subscriptions/overview">
    Automated collection on a schedule.
  </Card>
</div>

This page covers the supported use cases, which combinations are valid, and which payment methods support each.

## Evolving from one-time to recurring payments

Adding recurring payments is a small extension to an existing one-time payment (`type: one_time`) integration, not a new integration project.

Checkout redirection and payment handling stay the same: only session creation changes, from `type: one_time` to `type: first_in_series` with `mandate_options`, optionally alongside `subscription_options` for the automated path.

For the automated path, store the returned `subscription_id` for future management (status checks, cancellation).

See below for reference on the similarity:

```mermaid theme={"system"}
flowchart LR
  subgraph today["Today: One Time"]
    direction TB
    A1["1. Create the session"] --> A2["2. Redirect to Checkout"] --> A3["3. Receive result"]
  end
  subgraph manual["Merchant Controlled Recurring"]
    direction TB
    B1["1. Create the session\n(with mandate options)"] --> B2["2. Redirect to Checkout\n(unchanged)"] --> B3["3. Receive result (store payment id)"]
  end
  subgraph auto["Automated Recurring"]
    direction TB
    C1["1. Create the session\n(with mandate options\nand subscription options)"] --> C2["2. Redirect to Checkout\n(unchanged)"] --> C3["3. Receive result\n(store payment_id and subscription_id)"]
  end
  today ~~~ manual ~~~ auto
```

## Choosing a use case

Two questions narrow the choice:

```mermaid theme={"system"}
flowchart TD
  A["Did the customer consent\nto a recurrence?"] -->|No| B["Setup on demand mandate"]
  A -->|Yes| C{"Automate collection?"}
  C -->|No: merchant triggers\neach charge| D["Setup scheduled or installment mandate"]
  C -->|Yes| E["Setup scheduled or installment mandate with subscription options"]
```

1. **Did the customer consent to a recurrence?** A recurrence is a rhythm the customer agreed to at consent time (for example, monthly on the 1st).
2. **Should the platform automate collection?** Or does the merchant trigger each charge manually?

The use cases below map the answers to a concrete setup: a mandate type (`mandate_options.type`), optionally combined with `subscription_options`.

## Use cases

| Payment method | Recurrence consented? | Platform-automated? | Setup                                        |
| -------------- | --------------------- | ------------------- | -------------------------------------------- |
| Card           | No                    | No                  | `on_demand` mandate                          |
| Card           | Yes                   | No                  | `scheduled` mandate                          |
| Card           | Yes                   | Yes                 | `scheduled` mandate + `subscription_options` |
| Capitec VRP    | Yes                   | No                  | `scheduled` mandate                          |
| Capitec VRP    | Yes                   | Yes                 | `scheduled` mandate + `subscription_options` |
| Card or VRP    | Yes (`terms`)         | Optional            | `installment` mandate                        |

<Warning>Subscriptions need a mandate with a consented cadence (`scheduled` or `installment`); `on_demand` has none, so `subscription_options` isn't available there. </Warning>

For configuration payloads, see [Mandates: Examples](/documentation/collect/payment-sessions/mandates/examples) and [Subscriptions: Examples](/documentation/collect/payment-sessions/subscriptions/examples).

For payment method eligibility per mandate type and full per-method behaviour, see [Supported Payment Methods](/documentation/collect/payment-sessions/mandates/supported-payment-methods).
