> For the complete documentation index, see [llms.txt](https://docs.coda.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coda.co/codapay/recurring-payments-coming-soon/use-cases-and-flows.md).

# Use Cases and Flows

This section describes the different use cases and transaction flows for recurring payments. These flows cover both user-initiated payments and merchant-initiated payments while handling scenarios such as first-time payments, returning users, and subscription billing.

#### Key Scenarios

1. **First-Time Payment & Saving a Payment Method:** A new shopper completes a payment and opts to save their details.
2. **Merchant-Initiated Recurring Payment:** The merchant charges a saved payment method automatically for subscriptions.
3. **Shopper Removes a Saved Payment Method:** A shopper removes a stored payment method from their account.

### First-Time Payment & Saving a Payment Method

**Description**&#x20;

A new shopper completes a payment and is given the option to save their payment method for future transactions.

<figure><img src="/files/cDu4pssCC30xEx4zsvRw" alt=""><figcaption></figcaption></figure>

**Flow Details**

1. The merchant initiates a payment request via `/v2/Payment/init`, passing shopper info, transaction details, and `savePaymentMethod: true`
2. The shopper is redirected to the hosted payment page
3. The shopper enters payment details and selects the option to save the payment method
4. The payment is processed, undergoing authentication and fraud checks (e.g., SCA)
5. Upon success:
   * A shopper profile is created (if it doesn't exist)
   * A payment method token is generated and stored
   * The merchant receives a notification confirming the saved method
6. The merchant receives the payment success response along with the shopper ID and the tokenized payment method

You can refer to the [Hosted Payment Page Integration: Initiate a Payment Request](/codapay/hosted-component-integration/cards/initiate-a-payment-request.md) and [Saving Card Details](/codapay/hosted-payment-page-integration/saving-card-details.md) references for more details on each APIs.

### Merchant-Initiated Recurring Payment

**Description**&#x20;

The merchant charges a shopper automatically without their presence (off-session), using a previously saved payment method.

<figure><img src="/files/4rZoLdqx98ZMFb0NzoD8" alt=""><figcaption></figcaption></figure>

**Flow Details**

1. The merchant initiates a recurring charge via `/v2/Payment/init`, passing:
   * `userInitiated: false` (indicating the shopper is not present).
   * `displaySavedPaymentMethods: false` (no UI shown).
   * `token` of the saved payment method.
2. The system processes the payment using the stored payment method token.
3. The transaction undergoes standard authentication, fraud checks, and processing.
4. The merchant receives a payment success response.

You can refer to the [Hosted Payment Page Integration: Initiate a Payment Request](/codapay/hosted-component-integration/cards/initiate-a-payment-request.md) and [Saving Card Details](/codapay/hosted-payment-page-integration/saving-card-details.md) references for more details on each APIs.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coda.co/codapay/recurring-payments-coming-soon/use-cases-and-flows.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
