Pine LabsDOCS

Create a Subscription Plan

POST/ps/api/v1/public/plans

Creates a new subscription plan that serves as a reusable template defining the pricing structure, billing frequency, and payment terms. Plans must be created before subscriptions can be set up.

Requires Bearer token. Get token →

Header Parameters

FieldDetails
Request-Timestamp
stringdate-time

ISO 8601 UTC timestamp of the request. Used for idempotency and audit.

Request-ID
string

Use a global unique identifier [GUID] for the request.

Constraints
Minimum length: 1 characterMaximum length: 50 characters

Request Bodyrequired

FieldDetails
plan_name
stringrequired

Subscription plan name.

plan_description
string

Corresponding description for a plan.

frequency
stringrequired

Frequency of recurring transactions for this particular plan.

Allowed values:
DayWeekMonthYearBi-MonthlyQuarterlyHalf-YearlyASOTNot Applicable
amount
objectrequired2 nested fields

This is the recurring mandate amount, that would be charged for each frequency. For instance 200 every month. This field is not needed if the mandate frequency is AS

max_limit_amount
objectrequired2 nested fields

This is maximum amount of mandate for which a subscription is created for. There could be instances where maximum amount of mandate is created with a buffer. For instance with AS frequency you are taking mandate for SIP, first month SIP is 100, second month 200 etc. In such cases you will create a mandate with higher max_limit_amount

initial_debit_amount
object2 nested fields

This is initial debit amount on top of your recurring mandate amount. This is an optional field. For instance you want to create monthly 200 rupee mandate, but want to charge 20 rupees one time registration fee initially. You will utilize this field in such cases

trial_period_in_days
integer

Duration of the trial period in days.

start_date
stringdate-time

The ISO 8601 UTC Timestamp when the subscription plan is active and available for use.

end_date
stringrequireddate-time

The ISO 8601 UTC Timestamp when the subscription plan expires.

merchant_metadata
object

Key-value pairs for additional information. Max 10 pairs, 256 chars each.

Constraints
Maximum properties: 10
Additional properties: string · Maximum length: 256 characters
merchant_plan_reference
stringrequired

Idempotency Key. Unique identifier of the merchant plan reference. Duplicate requests with the same merchant_plan_reference will return the existing plan instead of creating a new one.

Constraints
Minimum length: 1 characterMaximum length: 50 characters
auto_debit_ot
string

Indicates whether auto-debit is enabled for one-time payments under the subscription plan.

Status Codes

201Plan created successfully.
400The request was malformed or missing required fields.
422Unprocessable Entity — validation failed or duplicate request.
500An unexpected error occurred on the server.
Run
Request
curl --request POST \
  --url https://pluraluat.v2.pinepg.in/ps/api/v1/public/plans \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --header 'Request-ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  --header 'Request-Timestamp: 2024-10-01T10:30:00Z' \
  --data '{
  "plan_name": "Monthly Plan",
  "plan_description": "Diwali dhammaka plan intended to attract customers on diwali time",
  "frequency": "Month",
  "amount": {
    "value": 1000,
    "currency": "INR"
  },
  "max_limit_amount": {
    "value": 1000,
    "currency": "INR"
  },
  "initial_debit_amount": {
    "value": 1000,
    "currency": "INR"
  },
  "trial_period_in_days": 0,
  "start_date": "2022-02-01T17:32:28Z",
  "end_date": "2026-10-21T12:02:28Z",
  "merchant_metadata": {
    "key1": "DD"
  },
  "merchant_plan_reference": "1234567890",
  "auto_debit_ot": "false"
}'
{
  "plan_id": "v1-pla-250612061639-aa-666Zge",
  "status": "ACTIVE",
  "plan_name": "Monthly Plan 2025-06-12T06:16:37.364Z",
  "plan_description": "Diwali dhammaka plan intended to attract customers on diwali time",
  "frequency": "Month",
  "amount": {
    "value": 100,
    "currency": "INR"
  },
  "max_limit_amount": {
    "value": 210,
    "currency": "INR"
  },
  "trial_period_in_days": 0,
  "start_date": "2025-06-12T06:16:39.92710492Z",
  "end_date": "2026-10-21T12:02:28Z",
  "merchant_metadata": {
    "key1": "DD"
  },
  "merchant_plan_reference": "b41770ac-cd3a-48d3-9e93-7dc9246b4751",
  "created_at": "2025-06-12T06:16:39.933117Z",
  "modified_at": "2025-06-12T06:16:39.93313Z",
  "initial_debit_amount": {
    "value": 110,
    "currency": "INR"
  },
  "auto_debit_ot": "false"
}