---
title: Subscription
slug: subscriptions
excerpt: >-
  Automate recurring billing with Pine Labs Online Subscriptions — create plans,
  register UPI AutoPay mandates, and collect payments on schedule with zero
  manual effort.
sidebar_order: 1
hidden: false
metadata:
  title: Subscriptions Overview — Automate Recurring Billing | Pine Labs
  description: >-
    Enable recurring payments with Pine Labs Subscriptions API. Automate
    collections across fixed or flexible billing cycles, register UPI AutoPay
    mandates, create plans, and manage subscriptions with zero manual
    follow-ups.
  keywords: >-
    subscriptions, recurring billing, UPI AutoPay, subscription plans, automated
    payments, recurring payments, Pine Labs subscriptions
  robots: index
sidebar_label: Overview
---
## Overview

Learn how to integrate with Pine Labs Subscription using Pine Labs APIs to allow your users to make recurring payments.

A subscription is a recurring billing model where customers pay an amount at pre-defined intervals (monthly, annually, etc.) for access to your product or service. This creates a predictable revenue stream for your business and fosters long-term customer relationships. These are automated payments on schedule that are pre-defined by you.

Easily enable recurring payments on your platform. With Subscriptions, you can automate collections across fixed or flexible billing cycles — no reminders, no manual follow-ups.

## Why Subscription?

<div class="api-resources-grid" style="display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:1200px;margin:0 auto;">
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;">
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="8" fill="#D0F6E5"></rect>
<g clip-path="url(#clip0_2289_1617)">
<path d="M31.4628 17.4805L29.8428 17.8205C30.5428 21.0405 29.5828 24.3805 27.2628 26.7505C25.4028 28.6505 22.9028 29.7305 20.2128 29.7805C18.0328 29.8305 14.0128 27.8305 13.9328 27.7705L16.5528 27.0905L16.1328 25.2305L10.1328 26.5205L11.4528 32.4105L13.3428 32.0005L12.7128 28.9105C14.8428 30.5805 17.4228 31.4105 20.0028 31.4105C23.0828 31.4105 26.1528 30.2305 28.4528 27.8805C31.1528 25.1205 32.2828 21.2305 31.4628 17.4805Z" fill="#003434" stroke="#003434" stroke-width="0.25" stroke-miterlimit="10"></path>
<path d="M12.7529 13.0598C16.2929 9.43985 21.9929 9.05984 25.9929 11.9898H22.2529V13.7898H28.1529V7.58984H26.3529V10.2699C21.7429 7.32985 15.5029 7.89985 11.5529 11.9398C8.75292 14.7998 7.66292 18.8098 8.62292 22.6698L10.2329 22.2798C9.40292 18.9698 10.3429 15.5298 12.7429 13.0698L12.7529 13.0598Z" fill="#003434" stroke="#003434" stroke-width="0.25" stroke-miterlimit="10"></path>
</g>
<defs>
<clipPath id="clip0_2289_1617">
<rect width="32" height="32" fill="white" transform="translate(4 4)"></rect>
</clipPath>
</defs>
</svg>
    <h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Automated Collections</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Ensure timely payments without manual effort.</p>
  </div>
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;">
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="8" fill="#D0F6E5"></rect>
<g clip-path="url(#clip0_2289_1609)">
<path d="M18.6278 31.7498H16.6278C16.6278 22.0298 7.15781 21.8798 6.75781 21.8798V19.8798C16.5178 19.8798 16.6278 10.4098 16.6278 10.0098H18.6278C18.6278 19.7298 28.0978 19.8798 28.4978 19.8798V21.8798C18.7778 21.8798 18.6278 31.3498 18.6278 31.7498ZM12.5778 21.7798C14.1878 22.6898 15.7578 23.9998 16.9078 25.8997C17.2778 26.5098 18.1678 26.5497 18.5178 25.9297C19.4278 24.3197 20.7378 22.7498 22.6378 21.5998C23.2478 21.2298 23.2878 20.3397 22.6678 19.9897C21.0578 19.0797 19.4878 17.7698 18.3378 15.8698C17.9678 15.2598 17.0778 15.2198 16.7278 15.8398C15.8178 17.4498 14.5078 19.0198 12.6078 20.1698C11.9978 20.5398 11.9578 21.4298 12.5778 21.7798Z" fill="#003434"></path>
<path d="M29.1278 16.4998H28.1278C28.1278 12.4498 24.1778 12.3798 24.0078 12.3798V11.3798C28.0578 11.3798 28.1278 7.42977 28.1278 7.25977H29.1278C29.1278 11.3098 33.0778 11.3798 33.2478 11.3798V12.3798C29.1978 12.3798 29.1278 16.3298 29.1278 16.4998ZM26.8378 12.1797C27.4278 12.5197 27.9878 12.9998 28.4178 13.6898C28.5378 13.8798 28.8178 13.8598 28.9278 13.6698C29.2678 13.0798 29.7478 12.5198 30.4378 12.0898C30.6278 11.9698 30.6078 11.6897 30.4178 11.5797C29.8278 11.2397 29.2678 10.7598 28.8378 10.0698C28.7178 9.87976 28.4378 9.89975 28.3278 10.0898C27.9878 10.6798 27.5078 11.2398 26.8178 11.6698C26.6278 11.7898 26.6478 12.0697 26.8378 12.1797Z" fill="#003434"></path>
</g>
<defs>
<clipPath id="clip0_2289_1609">
<rect width="32" height="32" fill="white" transform="translate(4 4)"></rect>
</clipPath>
</defs>
</svg>
    <h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Flexible Models</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Support multiple pricing structures to fit your business.</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;">
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="8" fill="#D0F6E5"></rect>
<g clip-path="url(#clip0_2289_1594)">
<path d="M18.1506 32.4996L15.4706 30.7496C12.5906 28.8696 10.3506 26.2596 9.00063 23.1996L8.89062 22.9496V15.6196L18.1706 10.3496L27.5906 15.6996V23.0396L27.5206 23.1996C26.1606 26.1596 23.9606 28.6996 21.1606 30.5396L18.1506 32.5096V32.4996ZM10.3006 21.0396C10.3006 22.1296 10.5506 23.2196 11.0906 24.1396C12.3306 26.2496 14.0706 28.0596 16.2006 29.4496L18.1506 30.7196L20.4306 29.2296C22.3506 27.9696 23.9606 26.3596 25.1706 24.5096C25.8306 23.4896 26.1906 22.2696 26.1906 21.0196V17.8496C26.1906 17.0896 25.8006 16.3796 25.1706 16.0296L18.1706 12.0496L11.3106 15.9496C10.6806 16.3096 10.2906 17.0096 10.2906 17.7696V21.0296L10.3006 21.0396Z" fill="#003434" stroke="#003434" stroke-width="0.5" stroke-miterlimit="10"></path>
<path d="M30.0938 10C30.0938 10 30.0938 13 27.0938 13C27.0938 13 30.0938 13 30.0938 16C30.0938 16 30.0938 13 33.0938 13C33.0938 13 30.0938 13 30.0938 10Z" fill="#003434"></path>
<path d="M24.0938 7.5C24.0938 7.5 24.0938 9 22.5938 9C22.5938 9 24.0938 9 24.0938 10.5C24.0938 10.5 24.0938 9 25.5938 9C25.5938 9 24.0938 9 24.0938 7.5Z" fill="#003434"></path>
<path d="M16.9441 25.0392L13.4141 21.5092L14.4741 20.4492L16.1641 22.1392C16.5941 22.5692 17.2941 22.5692 17.7241 22.1392L22.4141 17.4492L23.4741 18.5092L16.9441 25.0392Z" fill="#003434"></path>
</g>
<defs>
<clipPath id="clip0_2289_1594">
<rect width="32" height="32" fill="white" transform="translate(5 4)"></rect>
</clipPath>
</defs>
</svg>
    <h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Customer Trust</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Secure, compliant, and consent-driven debits.</p>
  </div>
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;">
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="8" fill="#D0F6E5"></rect>
<g clip-path="url(#clip0_2289_1635)">
<path d="M23.3894 32.04H16.6094V20.25H23.3894V32.04ZM18.3094 30.34H21.6894V22.94C21.6894 22.39 21.2394 21.94 20.6894 21.94H19.2994C18.7494 21.94 18.2994 22.39 18.2994 22.94V30.34H18.3094Z" fill="#003434"></path>
<path d="M14.4597 32.0395H7.67969V23.9395H14.4597V32.0395ZM9.37968 30.3395H12.7597V26.5695C12.7597 26.0595 12.3497 25.6495 11.8397 25.6495H10.3097C9.79968 25.6495 9.38968 26.0595 9.38968 26.5695V30.3395H9.37968Z" fill="#003434"></path>
<path d="M32.3191 32.2001H25.5391V15.3301H32.3191V32.2001ZM27.2391 30.5001H30.6191V17.8801C30.6191 17.4101 30.2391 17.0301 29.7691 17.0301H28.0991C27.6291 17.0301 27.2491 17.4101 27.2491 17.8801V30.5001H27.2391Z" fill="#003434"></path>
<path d="M19.4684 7.80078V9.50079H22.3484C22.6784 9.50079 22.8384 9.9108 22.5984 10.1308L12.8984 19.0208L14.0484 20.2708L24.0084 11.1408C24.2384 10.9308 24.6184 11.0908 24.6184 11.4108V13.9408H26.3185V7.80078H19.4684Z" fill="#003434"></path>
<path d="M9.6272 9.41071V8.4707H14.7272V9.41071H9.6272ZM11.8172 16.7307L9.61719 13.7907V12.8707C9.80719 12.9107 9.98719 12.9507 10.1672 12.9707C10.3472 13.0007 10.5772 13.0107 10.8672 13.0107C11.2572 13.0107 11.5572 12.9507 11.7872 12.8207C12.0172 12.7007 12.1772 12.5207 12.2772 12.2907C12.3772 12.0607 12.4272 11.7907 12.4272 11.4807V10.7007C12.4272 10.4007 12.4072 10.1307 12.3772 9.9007C12.3472 9.6707 12.2872 9.45066 12.2072 9.24066C12.1272 9.04066 12.0172 8.83067 11.8672 8.62067H13.0372C13.2072 8.89067 13.3172 9.21069 13.3872 9.58069C13.4472 9.95069 13.4872 10.3607 13.4872 10.8107V11.4807C13.4872 11.9907 13.3872 12.4307 13.1872 12.7907C12.9872 13.1507 12.7072 13.4307 12.3472 13.6207C11.9872 13.8107 11.5772 13.9007 11.1072 13.9007C10.9572 13.9007 10.8172 13.9007 10.7072 13.8907C10.5872 13.8907 10.4872 13.8707 10.3972 13.8607C10.3072 13.8507 10.2272 13.8407 10.1572 13.8207C10.0872 13.8107 10.0272 13.7907 9.96719 13.7707L10.4572 13.2107L13.1472 16.7307H11.8172ZM9.6272 11.7207V10.7807H14.7272V11.7207H9.6272Z" fill="#003434" stroke="#003434" stroke-width="0.14" stroke-miterlimit="10"></path>
</g>
<defs>
<clipPath id="clip0_2289_1635">
<rect width="32" height="32" fill="white" transform="translate(4 4)"></rect>
</clipPath>
</defs>
</svg>
    <h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Business Growth</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Predictable cash flow and higher retention.</p>
    </div>
</div>

## Subscription Models
<div class="api-resources-grid" style="display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:1200px;margin:0 auto;">
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;"> 
<DocImage src="/cdn/img/fixed-frequency-1779280370284.png" alt="fixed-frequency" caption="" />
<h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Fixed Frequency</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Collect a set amount at a pre-decided interval (daily, weekly, monthly, yearly). Works best when both cost and cycle are predictable.</p>
  <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Use Case: Investment Platforms</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:0.5rem;padding:1.25rem;">    
<DocImage src="/cdn/img/sub-variable-frequency-1779280442874.png" alt="sub-variable-frequency" caption="" />
<h3 style="font-size:1rem;font-weight:600;margin-bottom:0.5rem;">Variable Frequency</h3>
    <p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Charge a fixed amount but let customers choose when or how often they want to pay. Offers flexibility while keeping pricing consistent.</p>
<p style="font-size:0.875rem;color:#475569;margin-bottom:1rem;">Use Case: Utility bills, Freelancer project billing.</p>
  </div>
</div>


## How it Works?

1. **Create Subscription**: Leverage our Create Subscription API to start the subscription by specifying the payment frequency, amount, and start date.
2. **Customer Authorization**: Obtain one-time customer consent through UPI AutoPay authorization.
3. **Notifications**: Ensure customers receive timely reminders (before 24 hours ) and confirmations for each debit transaction.
4. **Auto-Debit**: Payments are automatically collected on the scheduled due dates.
5. **Manage Subscription**: You can manage customer subscriptions through the dashboard or by using APIs.


## Subscription Checkout Interface

Experience how customers interact with Pine Labs subscription checkout. The interface allows customers to view the mandate details, including its duration, any one-time fee, the maximum amount, and the recurring amount.

### Mobile Checkout Interface

Mobile-optimized subscription checkout that displays plan details and available payment options, designed for a smooth experience on smaller screens.

<DocImage src="/cdn/img/mobile-checkout-subscription-1779280126846.png" alt="mobile-checkout-subscription" caption="" />


*Figure: Mobile Checkout Interface*

### Web Checkout Interface

Web-optimized subscription checkout for larger screens that presents plan information along with multiple payment methods, ensuring a seamless browsing and payment experience.

<DocImage src="/cdn/img/web-checkout-subscription-1779280162245.png" alt="web-checkout-subscription" caption="" />


*Figure: Web Checkout Interface*

### Merchant Dashboard
Comprehensive dashboard for merchants to monitor subscription performance, track payments, and manage customer accounts with real-time analytics and reporting.

<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1200px;margin:0 auto;">
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">Real-time Monitoring</h4>
    <p style="font-size:0.82rem;color:#64748b;">Track subscription status, payment success rates, and customer activity</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">Revenue Analytics</h4>
    <p style="font-size:0.82rem;color:#64748b;">Number of mandates created, successful debits, and status changes.</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">Customer Management</h4>
    <p style="font-size:0.82rem;color:#64748b;">Manage subscriptions, process refunds.</p>
    </div>
</div>

<DocImage src="/cdn/img/merchant-dashboard-subscription-1779280205304.png" alt="merchant-dashboard-subscription" caption="" />


## Key Features

<br />

<details><summary>Automatic & Merchant Controlled Debits</summary><br />

- Automatic mandate debits by PL system for fixed frequency + fixed amount mandates.
- Automatic pre-debit notification at least 24 hours before any debit.
- APIs to control predebit notification & mandate debit.
</details>

***

<details><summary>Automatic & Merchant Controlled retries</summary><br />

- Three automatic retries in case of debit failure 10 minutes after the failure, followed by a second retry 1 hour later.
- Merchant can control retries using APIs.
</details>

***

<details><summary>Non Revocable Mandate Setup</summary><br />

- Create non-revocable UPI Autopay mandates.
- No mandate modification by customers post mandate setup.
</details>

***

<details><summary>Subscription Life Cycle management</summary><br />

- Manage subscription entire lifecycle using full API suite.
- Merchant or customer initiated Cancellations.
- Receive status of customer actions on mandate.

</details>

***

<details><summary>Third Party Verification</summary><br />

- Verify the customer's Virtual Payment Address (VPA).
- Provide both the VPA and the customer's account details to confirm VPA provided during mandate creation is linked to the bank account information supplied by the end-user.
</details>

***

<details><summary>Offer Trial Period</summary><br />

- Offer a trial period for your subscriptions. During this trial, no charges will be deducted from the end-user's account.
- Simply define the desired trial period duration (in days).
- Debits will be triggered automatically at the end of the trial period.
</details>

***


## Mandate Type Supported

<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1200px;margin:0 auto;">
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">One Time Mandate</h4>
    <p style="font-size:0.82rem;color:#64748b;">A payment authorization that allows for a single debit transaction to be processed. Once the transaction is completed, the mandate automatically expires and cannot be used for additional debits.</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">On Demand Mandate</h4>
    <p style="font-size:0.82rem;color:#64748b;">A payment authorization that allows the merchant to initiate debits at any time and at varying amounts, as needed, within the specified validity period.</p>
    </div>
  <div style="border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;">
    <h4 style="font-size:0.95rem;font-weight:650;margin-bottom:0.5rem;">Recurring Mandate</h4>
    <p style="font-size:0.82rem;color:#64748b;">A payment authorization that allows for multiple debit transactions to be processed automatically at fixed intervals with either fixed or variable amounts.</p>
   </div>
</div>
