> For the complete documentation index, see [llms.txt](https://docs.hyperswitch.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hyperswitch.io/integrations/prism/node/recurring-payment-service.md).

# Recurring Payment Service Overview

## Overview

The Recurring Payment Service enables you to process subscription billing and manage recurring payment mandates using the Node.js SDK. Once a customer has set up a mandate (through the Payment Service's `setupRecurring`), this service handles subsequent charges without requiring customer interaction.

**Business Use Cases:**

* **SaaS subscriptions** - Charge customers monthly/yearly for software subscriptions
* **Membership fees** - Process recurring membership dues for clubs and organizations
* **Utility billing** - Automate monthly utility and service bill payments
* **Installment payments** - Collect scheduled payments for large purchases over time
* **Donation subscriptions** - Process recurring charitable donations

## Operations

| Operation                                                                | Description                                                                                                                                                | Use When                                                                    |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [`charge`](/integrations/prism/node/recurring-payment-service/charge.md) | Process a recurring payment using an existing mandate. Charges customer's stored payment method for subscription renewal without requiring their presence. | Subscription renewal, recurring billing cycle, automated payment collection |
| [`revoke`](/integrations/prism/node/recurring-payment-service/revoke.md) | Cancel an existing recurring payment mandate. Stops future automatic charges when customers end their subscription or cancel service.                      | Subscription cancellation, customer churn, mandate revocation               |

## SDK Setup

```javascript
const { RecurringPaymentClient } = require('hyperswitch-prism');

const recurringClient = new RecurringPaymentClient({
    connector: 'stripe',
    apiKey: 'YOUR_API_KEY',
    environment: 'SANDBOX'
});
```

## Common Patterns

### SaaS Subscription Billing Cycle

Process monthly subscription renewals using stored mandates.

```mermaid
sequenceDiagram
    participant App as Your App
    participant CS as Prism
    participant PP as Payment Provider

    Note over App: Initial setup (already done)
    Note over App: mandateReference stored from setupRecurring
    Note over App: Billing cycle (e.g., 30 days later)
    App->>CS: 1. charge (with mandateReference)
    CS->>PP: Create recurring charge using mandate
    PP-->>CS: Return charge confirmation
    CS-->>App: Return status: CHARGED
    Note over App: Next billing cycle
    App->>CS: 2. charge (with same mandateReference)
    CS->>PP: Create recurring charge using mandate
    PP-->>CS: Return charge confirmation
    CS-->>App: Return status: CHARGED
    Note over App: Customer cancels subscription
    App->>CS: 3. revoke (mandateReference)
    CS->>PP: Cancel mandate
    PP-->>CS: Return revocation confirmation
    CS-->>App: Return status: REVOKED
```

**Flow Explanation:**

1. **charge (recurring)** - When a subscription billing cycle triggers, call the `charge` method with the stored `mandateReference` from the initial `setupRecurring`.
2. **Subsequent charges** - For each subsequent billing cycle, repeat the `charge` method call with the same `mandateReference`.
3. **revoke on cancellation** - When a customer cancels their subscription, call the `revoke` method with the `mandateReference` to cancel the mandate.

## Next Steps

* [Payment Service](/integrations/prism/node/payment-service.md) - Set up initial mandates with setupRecurring
* [Payment Method Service](/integrations/prism/node/payment-method-service.md) - Store payment methods for recurring use
* [Customer Service](/integrations/prism/node/customer-service.md) - Manage customer profiles for subscriptions


---

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

```
GET https://docs.hyperswitch.io/integrations/prism/node/recurring-payment-service.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
