curl --request POST \
--url https://sandbox.cashfree.com/pg/subscriptions \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"subscription_id": "Demo_Subscription",
"customer_details": {
"customer_name": "john",
"customer_email": "john@dummy.com",
"customer_phone": "9908730221",
"customer_bank_account_holder_name": "John Doe",
"customer_bank_account_number": "59108290701802",
"customer_bank_ifsc": "HDFC0002614",
"customer_bank_code": "HDFC",
"customer_bank_account_type": "SAVINGS"
},
"plan_details": {
"plan_name": "plan12345",
"plan_type": "PERIODIC",
"plan_amount": 10,
"plan_max_amount": 100,
"plan_max_cycles": 100,
"plan_intervals": 2,
"plan_currency": "INR",
"plan_interval_type": "WEEK",
"plan_note": "Bi-weekly INR 10 plan"
},
"authorization_details": {
"authorization_amount": 100,
"authorization_amount_refund": true,
"payment_methods": [
"enach",
"pnach",
"upi",
"card"
]
},
"subscription_meta": {
"return_url": "https://wa.me/9512440440?text=Payment%20Successfull",
"notification_channel": [
"EMAIL",
"SMS"
],
"session_id_expiry": "2025-06-01T23:00:08+05:30"
},
"subscription_expiry_time": "2100-01-01T23:00:08+05:30",
"subscription_first_charge_time": "2025-06-01T23:00:08+05:30",
"subscription_tags": {
"psp_note": "Monthly subscription payment",
"key2": "value2"
},
"subscription_payment_splits": [
{
"vendor_id": "vendor1",
"percentage": 10
},
{
"vendor_id": "vendor2",
"percentage": 10
}
]
}
'import requests
url = "https://sandbox.cashfree.com/pg/subscriptions"
payload = {
"subscription_id": "Demo_Subscription",
"customer_details": {
"customer_name": "john",
"customer_email": "john@dummy.com",
"customer_phone": "9908730221",
"customer_bank_account_holder_name": "John Doe",
"customer_bank_account_number": "59108290701802",
"customer_bank_ifsc": "HDFC0002614",
"customer_bank_code": "HDFC",
"customer_bank_account_type": "SAVINGS"
},
"plan_details": {
"plan_name": "plan12345",
"plan_type": "PERIODIC",
"plan_amount": 10,
"plan_max_amount": 100,
"plan_max_cycles": 100,
"plan_intervals": 2,
"plan_currency": "INR",
"plan_interval_type": "WEEK",
"plan_note": "Bi-weekly INR 10 plan"
},
"authorization_details": {
"authorization_amount": 100,
"authorization_amount_refund": True,
"payment_methods": ["enach", "pnach", "upi", "card"]
},
"subscription_meta": {
"return_url": "https://wa.me/9512440440?text=Payment%20Successfull",
"notification_channel": ["EMAIL", "SMS"],
"session_id_expiry": "2025-06-01T23:00:08+05:30"
},
"subscription_expiry_time": "2100-01-01T23:00:08+05:30",
"subscription_first_charge_time": "2025-06-01T23:00:08+05:30",
"subscription_tags": {
"psp_note": "Monthly subscription payment",
"key2": "value2"
},
"subscription_payment_splits": [
{
"vendor_id": "vendor1",
"percentage": 10
},
{
"vendor_id": "vendor2",
"percentage": 10
}
]
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
subscription_id: 'Demo_Subscription',
customer_details: {
customer_name: 'john',
customer_email: 'john@dummy.com',
customer_phone: '9908730221',
customer_bank_account_holder_name: 'John Doe',
customer_bank_account_number: '59108290701802',
customer_bank_ifsc: 'HDFC0002614',
customer_bank_code: 'HDFC',
customer_bank_account_type: 'SAVINGS'
},
plan_details: {
plan_name: 'plan12345',
plan_type: 'PERIODIC',
plan_amount: 10,
plan_max_amount: 100,
plan_max_cycles: 100,
plan_intervals: 2,
plan_currency: 'INR',
plan_interval_type: 'WEEK',
plan_note: 'Bi-weekly INR 10 plan'
},
authorization_details: {
authorization_amount: 100,
authorization_amount_refund: true,
payment_methods: ['enach', 'pnach', 'upi', 'card']
},
subscription_meta: {
return_url: 'https://wa.me/9512440440?text=Payment%20Successfull',
notification_channel: ['EMAIL', 'SMS'],
session_id_expiry: '2025-06-01T23:00:08+05:30'
},
subscription_expiry_time: '2100-01-01T23:00:08+05:30',
subscription_first_charge_time: '2025-06-01T23:00:08+05:30',
subscription_tags: {psp_note: 'Monthly subscription payment', key2: 'value2'},
subscription_payment_splits: [{vendor_id: 'vendor1', percentage: 10}, {vendor_id: 'vendor2', percentage: 10}]
})
};
fetch('https://sandbox.cashfree.com/pg/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.cashfree.com/pg/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subscription_id' => 'Demo_Subscription',
'customer_details' => [
'customer_name' => 'john',
'customer_email' => 'john@dummy.com',
'customer_phone' => '9908730221',
'customer_bank_account_holder_name' => 'John Doe',
'customer_bank_account_number' => '59108290701802',
'customer_bank_ifsc' => 'HDFC0002614',
'customer_bank_code' => 'HDFC',
'customer_bank_account_type' => 'SAVINGS'
],
'plan_details' => [
'plan_name' => 'plan12345',
'plan_type' => 'PERIODIC',
'plan_amount' => 10,
'plan_max_amount' => 100,
'plan_max_cycles' => 100,
'plan_intervals' => 2,
'plan_currency' => 'INR',
'plan_interval_type' => 'WEEK',
'plan_note' => 'Bi-weekly INR 10 plan'
],
'authorization_details' => [
'authorization_amount' => 100,
'authorization_amount_refund' => true,
'payment_methods' => [
'enach',
'pnach',
'upi',
'card'
]
],
'subscription_meta' => [
'return_url' => 'https://wa.me/9512440440?text=Payment%20Successfull',
'notification_channel' => [
'EMAIL',
'SMS'
],
'session_id_expiry' => '2025-06-01T23:00:08+05:30'
],
'subscription_expiry_time' => '2100-01-01T23:00:08+05:30',
'subscription_first_charge_time' => '2025-06-01T23:00:08+05:30',
'subscription_tags' => [
'psp_note' => 'Monthly subscription payment',
'key2' => 'value2'
],
'subscription_payment_splits' => [
[
'vendor_id' => 'vendor1',
'percentage' => 10
],
[
'vendor_id' => 'vendor2',
'percentage' => 10
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/pg/subscriptions"
payload := strings.NewReader("{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/pg/subscriptions")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"authorisation_details": {
"authorization_amount": 1,
"authorization_amount_refund": false,
"authorization_reference": "",
"authorization_time": "2025-06-01T23:47:52+05:30",
"authorization_status": "INITIALIZED",
"payment_id": "97877",
"payment_group": "enach",
"payment_method": {
"enach": {
"channel": "link",
"auth_mode": "NetBanking",
"account_type": "SAVINGS",
"account_number": "123456789012",
"account_ifsc": "SBIN0000123",
"account_holder_name": "John Doe",
"account_bank_code": "SBIN"
}
}
},
"cf_subscription_id": "4",
"customer_details": {
"customer_name": "John Doe",
"customer_email": "test@gmail.com",
"customer_phone": "9900755700",
"customer_bank_account_holder_name": "",
"customer_bank_account_number": "",
"customer_bank_ifsc": "",
"customer_bank_code": "",
"customer_bank_account_type": ""
},
"next_schedule_date": null,
"plan_details": {
"plan_id": "od-20k-plan",
"plan_name": "On demand plan for 20000 max amount",
"plan_type": "ON_DEMAND",
"plan_max_cycles": 0,
"plan_recurring_amount": 0,
"plan_max_amount": 20000,
"plan_interval_type": "",
"plan_intervals": 0,
"plan_currency": "INR",
"plan_note": "",
"plan_status": ""
},
"subscription_expiry_time": "2100-01-01T05:29:59+05:30",
"subscription_first_charge_time": "",
"subscription_id": "SUB0028",
"subscription_meta": {
"return_url": ""
},
"subscription_note": "",
"subscription_session_id": "subs_token_tc9JCN4MzUIJ",
"subscription_payment_splits": null,
"subscription_status": "INITIALIZED",
"subscription_tags": null
}{
"message": "bad URL, please check API documentation",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "something_not_found",
"type": "invalid_request_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "internal_error",
"type": "api_error"
}Create Subscription
Use this API to create a new subscription.
curl --request POST \
--url https://sandbox.cashfree.com/pg/subscriptions \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"subscription_id": "Demo_Subscription",
"customer_details": {
"customer_name": "john",
"customer_email": "john@dummy.com",
"customer_phone": "9908730221",
"customer_bank_account_holder_name": "John Doe",
"customer_bank_account_number": "59108290701802",
"customer_bank_ifsc": "HDFC0002614",
"customer_bank_code": "HDFC",
"customer_bank_account_type": "SAVINGS"
},
"plan_details": {
"plan_name": "plan12345",
"plan_type": "PERIODIC",
"plan_amount": 10,
"plan_max_amount": 100,
"plan_max_cycles": 100,
"plan_intervals": 2,
"plan_currency": "INR",
"plan_interval_type": "WEEK",
"plan_note": "Bi-weekly INR 10 plan"
},
"authorization_details": {
"authorization_amount": 100,
"authorization_amount_refund": true,
"payment_methods": [
"enach",
"pnach",
"upi",
"card"
]
},
"subscription_meta": {
"return_url": "https://wa.me/9512440440?text=Payment%20Successfull",
"notification_channel": [
"EMAIL",
"SMS"
],
"session_id_expiry": "2025-06-01T23:00:08+05:30"
},
"subscription_expiry_time": "2100-01-01T23:00:08+05:30",
"subscription_first_charge_time": "2025-06-01T23:00:08+05:30",
"subscription_tags": {
"psp_note": "Monthly subscription payment",
"key2": "value2"
},
"subscription_payment_splits": [
{
"vendor_id": "vendor1",
"percentage": 10
},
{
"vendor_id": "vendor2",
"percentage": 10
}
]
}
'import requests
url = "https://sandbox.cashfree.com/pg/subscriptions"
payload = {
"subscription_id": "Demo_Subscription",
"customer_details": {
"customer_name": "john",
"customer_email": "john@dummy.com",
"customer_phone": "9908730221",
"customer_bank_account_holder_name": "John Doe",
"customer_bank_account_number": "59108290701802",
"customer_bank_ifsc": "HDFC0002614",
"customer_bank_code": "HDFC",
"customer_bank_account_type": "SAVINGS"
},
"plan_details": {
"plan_name": "plan12345",
"plan_type": "PERIODIC",
"plan_amount": 10,
"plan_max_amount": 100,
"plan_max_cycles": 100,
"plan_intervals": 2,
"plan_currency": "INR",
"plan_interval_type": "WEEK",
"plan_note": "Bi-weekly INR 10 plan"
},
"authorization_details": {
"authorization_amount": 100,
"authorization_amount_refund": True,
"payment_methods": ["enach", "pnach", "upi", "card"]
},
"subscription_meta": {
"return_url": "https://wa.me/9512440440?text=Payment%20Successfull",
"notification_channel": ["EMAIL", "SMS"],
"session_id_expiry": "2025-06-01T23:00:08+05:30"
},
"subscription_expiry_time": "2100-01-01T23:00:08+05:30",
"subscription_first_charge_time": "2025-06-01T23:00:08+05:30",
"subscription_tags": {
"psp_note": "Monthly subscription payment",
"key2": "value2"
},
"subscription_payment_splits": [
{
"vendor_id": "vendor1",
"percentage": 10
},
{
"vendor_id": "vendor2",
"percentage": 10
}
]
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
subscription_id: 'Demo_Subscription',
customer_details: {
customer_name: 'john',
customer_email: 'john@dummy.com',
customer_phone: '9908730221',
customer_bank_account_holder_name: 'John Doe',
customer_bank_account_number: '59108290701802',
customer_bank_ifsc: 'HDFC0002614',
customer_bank_code: 'HDFC',
customer_bank_account_type: 'SAVINGS'
},
plan_details: {
plan_name: 'plan12345',
plan_type: 'PERIODIC',
plan_amount: 10,
plan_max_amount: 100,
plan_max_cycles: 100,
plan_intervals: 2,
plan_currency: 'INR',
plan_interval_type: 'WEEK',
plan_note: 'Bi-weekly INR 10 plan'
},
authorization_details: {
authorization_amount: 100,
authorization_amount_refund: true,
payment_methods: ['enach', 'pnach', 'upi', 'card']
},
subscription_meta: {
return_url: 'https://wa.me/9512440440?text=Payment%20Successfull',
notification_channel: ['EMAIL', 'SMS'],
session_id_expiry: '2025-06-01T23:00:08+05:30'
},
subscription_expiry_time: '2100-01-01T23:00:08+05:30',
subscription_first_charge_time: '2025-06-01T23:00:08+05:30',
subscription_tags: {psp_note: 'Monthly subscription payment', key2: 'value2'},
subscription_payment_splits: [{vendor_id: 'vendor1', percentage: 10}, {vendor_id: 'vendor2', percentage: 10}]
})
};
fetch('https://sandbox.cashfree.com/pg/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.cashfree.com/pg/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subscription_id' => 'Demo_Subscription',
'customer_details' => [
'customer_name' => 'john',
'customer_email' => 'john@dummy.com',
'customer_phone' => '9908730221',
'customer_bank_account_holder_name' => 'John Doe',
'customer_bank_account_number' => '59108290701802',
'customer_bank_ifsc' => 'HDFC0002614',
'customer_bank_code' => 'HDFC',
'customer_bank_account_type' => 'SAVINGS'
],
'plan_details' => [
'plan_name' => 'plan12345',
'plan_type' => 'PERIODIC',
'plan_amount' => 10,
'plan_max_amount' => 100,
'plan_max_cycles' => 100,
'plan_intervals' => 2,
'plan_currency' => 'INR',
'plan_interval_type' => 'WEEK',
'plan_note' => 'Bi-weekly INR 10 plan'
],
'authorization_details' => [
'authorization_amount' => 100,
'authorization_amount_refund' => true,
'payment_methods' => [
'enach',
'pnach',
'upi',
'card'
]
],
'subscription_meta' => [
'return_url' => 'https://wa.me/9512440440?text=Payment%20Successfull',
'notification_channel' => [
'EMAIL',
'SMS'
],
'session_id_expiry' => '2025-06-01T23:00:08+05:30'
],
'subscription_expiry_time' => '2100-01-01T23:00:08+05:30',
'subscription_first_charge_time' => '2025-06-01T23:00:08+05:30',
'subscription_tags' => [
'psp_note' => 'Monthly subscription payment',
'key2' => 'value2'
],
'subscription_payment_splits' => [
[
'vendor_id' => 'vendor1',
'percentage' => 10
],
[
'vendor_id' => 'vendor2',
'percentage' => 10
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/pg/subscriptions"
payload := strings.NewReader("{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/pg/subscriptions")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subscription_id\": \"Demo_Subscription\",\n \"customer_details\": {\n \"customer_name\": \"john\",\n \"customer_email\": \"john@dummy.com\",\n \"customer_phone\": \"9908730221\",\n \"customer_bank_account_holder_name\": \"John Doe\",\n \"customer_bank_account_number\": \"59108290701802\",\n \"customer_bank_ifsc\": \"HDFC0002614\",\n \"customer_bank_code\": \"HDFC\",\n \"customer_bank_account_type\": \"SAVINGS\"\n },\n \"plan_details\": {\n \"plan_name\": \"plan12345\",\n \"plan_type\": \"PERIODIC\",\n \"plan_amount\": 10,\n \"plan_max_amount\": 100,\n \"plan_max_cycles\": 100,\n \"plan_intervals\": 2,\n \"plan_currency\": \"INR\",\n \"plan_interval_type\": \"WEEK\",\n \"plan_note\": \"Bi-weekly INR 10 plan\"\n },\n \"authorization_details\": {\n \"authorization_amount\": 100,\n \"authorization_amount_refund\": true,\n \"payment_methods\": [\n \"enach\",\n \"pnach\",\n \"upi\",\n \"card\"\n ]\n },\n \"subscription_meta\": {\n \"return_url\": \"https://wa.me/9512440440?text=Payment%20Successfull\",\n \"notification_channel\": [\n \"EMAIL\",\n \"SMS\"\n ],\n \"session_id_expiry\": \"2025-06-01T23:00:08+05:30\"\n },\n \"subscription_expiry_time\": \"2100-01-01T23:00:08+05:30\",\n \"subscription_first_charge_time\": \"2025-06-01T23:00:08+05:30\",\n \"subscription_tags\": {\n \"psp_note\": \"Monthly subscription payment\",\n \"key2\": \"value2\"\n },\n \"subscription_payment_splits\": [\n {\n \"vendor_id\": \"vendor1\",\n \"percentage\": 10\n },\n {\n \"vendor_id\": \"vendor2\",\n \"percentage\": 10\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"authorisation_details": {
"authorization_amount": 1,
"authorization_amount_refund": false,
"authorization_reference": "",
"authorization_time": "2025-06-01T23:47:52+05:30",
"authorization_status": "INITIALIZED",
"payment_id": "97877",
"payment_group": "enach",
"payment_method": {
"enach": {
"channel": "link",
"auth_mode": "NetBanking",
"account_type": "SAVINGS",
"account_number": "123456789012",
"account_ifsc": "SBIN0000123",
"account_holder_name": "John Doe",
"account_bank_code": "SBIN"
}
}
},
"cf_subscription_id": "4",
"customer_details": {
"customer_name": "John Doe",
"customer_email": "test@gmail.com",
"customer_phone": "9900755700",
"customer_bank_account_holder_name": "",
"customer_bank_account_number": "",
"customer_bank_ifsc": "",
"customer_bank_code": "",
"customer_bank_account_type": ""
},
"next_schedule_date": null,
"plan_details": {
"plan_id": "od-20k-plan",
"plan_name": "On demand plan for 20000 max amount",
"plan_type": "ON_DEMAND",
"plan_max_cycles": 0,
"plan_recurring_amount": 0,
"plan_max_amount": 20000,
"plan_interval_type": "",
"plan_intervals": 0,
"plan_currency": "INR",
"plan_note": "",
"plan_status": ""
},
"subscription_expiry_time": "2100-01-01T05:29:59+05:30",
"subscription_first_charge_time": "",
"subscription_id": "SUB0028",
"subscription_meta": {
"return_url": ""
},
"subscription_note": "",
"subscription_session_id": "subs_token_tc9JCN4MzUIJ",
"subscription_payment_splits": null,
"subscription_status": "INITIALIZED",
"subscription_tags": null
}{
"message": "bad URL, please check API documentation",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "something_not_found",
"type": "invalid_request_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "internal_error",
"type": "api_error"
}Authorizations
Client app ID. You can find your app id in the Merchant Dashboard.
Client secret key. You can find your secret key in the Merchant Dashboard.
Headers
API version to be used.
Request ID for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree.
An idempotency key is a unique identifier you include with your API call. If the request fails or times out, you can safely retry it using the same key to avoid duplicate actions.
Body
Request parameters to create a new subscription.
A unique ID for the subscription. It can include alphanumeric characters, underscore, dot, hyphen, and space. Maximum characters allowed is 250.
1 - 250Subscription customer details.
Show child attributes
Show child attributes
{
"customer_name": "Test Cust",
"customer_email": "test@gmail.com",
"customer_phone": "9900755700",
"customer_bank_account_holder_name": "",
"customer_bank_account_number": "",
"customer_bank_ifsc": "",
"customer_bank_code": "",
"customer_bank_account_type": ""
}Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Expiry date for the subscription. Cashfree stores timestamps in IST, but you can provide them in a valid ISO 8601 time format.
For IST this 2025-06-01T10:20:12+05:30 translates to 2025-06-01 10:20:12
For UTC this 2025-06-01T10:20:12Z translates to 2025-06-01 15:50:12+05:30.
Time at which the first charge will be made for the subscription after authorization. Applicable only for PERIODIC plans. Cashfree stores timestamps in IST, but you can provide them in a valid ISO 8601 time format.
For IST this 2025-06-01T10:20:12+05:30 translates to 2025-06-01 10:20:12
For UTC this 2025-06-01T10:20:12Z translates to 2025-06-01 15:50:12+05:30.
Custom Tags in the form of {"key":"value"} which can be passed for a subscription. A maximum of 10 tags can be added.
Show child attributes
Show child attributes
{
"psp_note": "Monthly subscription payment",
"custom_field": "value"
}Payment splits for the subscription.
Show child attributes
Show child attributes
Response
Success response for creating a new subscription.
Details of the authorization done for the subscription. Returned in Get subscription and payments.
Show child attributes
Show child attributes
{
"authorization_amount": 1,
"authorization_amount_refund": false,
"authorization_reference": "",
"authorization_time": "2025-06-01T23:47:52+05:30",
"authorization_status": "INITIALIZED",
"payment_id": "97877",
"payment_group": "upi",
"payment_method": {
"upi": {
"channel": "collect",
"upi_id": "test@upi",
"upi_instrument": "upiInstrument",
"upi_instrument_number": "1234567890",
"upi_payer_account_number": "039861903074",
"upi_payer_ifsc": "SBIN0001234"
}
}
}Cashfree subscription reference number.
Subscription customer details.
Show child attributes
Show child attributes
{
"customer_name": "Test Cust",
"customer_email": "test@gmail.com",
"customer_phone": "9900755700",
"customer_bank_account_holder_name": "",
"customer_bank_account_number": "",
"customer_bank_ifsc": "",
"customer_bank_code": "",
"customer_bank_account_type": ""
}Show child attributes
Show child attributes
{
"plan_currency": "INR",
"plan_id": "144436-03471-JD_TEST",
"plan_interval_type": "WEEK",
"plan_intervals": 1,
"plan_max_amount": 1,
"plan_max_cycles": 4,
"plan_name": "abscede",
"plan_note": "lsdkdn",
"plan_recurring_amount": 1,
"plan_status": "ACTIVE",
"plan_type": "PERIODIC"
}Time at which the subscription will expire. We store timestamps in IST.
"2025-06-01T10:20:12+05:30"
Time at which the first charge will be made for the subscription. Applicable only for PERIODIC plans. Cashfree stores timestamps in IST.
"2025-06-01T10:20:12+05:30"
A unique ID passed by merchant for identifying the subscription.
Subscription metadata.
Show child attributes
Show child attributes
Note for the subscription.
Subscription Session Id.
Payment splits for the subscription.
Show child attributes
Show child attributes
Status of the subscription. For more details, see Subscription Lifecycle.
Tags for the subscription.
The date on which the next payment is scheduled to be processed. Cashfree stores timestamps in IST. For ON_DEMAND plans this will be null .
"2025-06-01T10:20:12+05:30"
Was this page helpful?