Skip to main content
POST
/
api
/
payments
/
razorpay
/
{environment}
/
subscriptions
Create Razorpay Subscription
curl --request POST \
  --url https://api.example.com/api/payments/razorpay/{environment}/subscriptions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "planId": "plan_123",
  "totalCount": 12,
  "subject": {
    "type": "team",
    "id": "team_123"
  },
  "customerEmail": "buyer@example.com"
}
'
{
  "subscription": {
    "subscriptionId": "sub_123",
    "planId": "plan_123",
    "customerId": "cust_123",
    "subjectType": "<string>",
    "subjectId": "<string>",
    "currentStart": "2023-11-07T05:31:56Z",
    "currentEnd": "2023-11-07T05:31:56Z",
    "endedAt": "2023-11-07T05:31:56Z",
    "quantity": 123,
    "chargeAt": "2023-11-07T05:31:56Z",
    "startAt": "2023-11-07T05:31:56Z",
    "endAt": "2023-11-07T05:31:56Z",
    "totalCount": 123,
    "authAttempts": 123,
    "paidCount": 123,
    "remainingCount": 123,
    "shortUrl": "<string>",
    "hasScheduledChanges": true,
    "changeScheduledAt": "2023-11-07T05:31:56Z",
    "offerId": "<string>",
    "authorizationPaymentId": "pay_123",
    "authorizationVerifiedAt": "2023-11-07T05:31:56Z",
    "notes": {},
    "providerCreatedAt": "2023-11-07T05:31:56Z",
    "syncedAt": "2023-11-07T05:31:56Z",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z"
  },
  "checkoutOptions": {
    "key": "rzp_test_xxx",
    "subscription_id": "sub_123",
    "prefill": {
      "name": "<string>",
      "email": "jsmith@example.com",
      "contact": "<string>"
    },
    "name": "<string>",
    "description": "<string>",
    "callback_url": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

environment
enum<string>
required

Payment provider environment.

Available options:
test,
live

Body

application/json

Notes keys starting with insforge_ are reserved and rejected. Either totalCount or endAt is required.

planId
string
required
Minimum string length: 1
Example:

"plan_123"

totalCount
integer
required
Required range: x >= 1
subject
object
required
endAt
integer

Unix timestamp in seconds.

Required range: x >= 1
quantity
integer
Required range: x >= 1
startAt
integer

Unix timestamp in seconds.

Required range: x >= 1
expireBy
integer

Unix timestamp in seconds.

Required range: x >= 1
customerNotify
boolean
offerId
string | null
Required string length: 1 - 255
description
string | null
Maximum string length: 2048
customerName
string | null
Required string length: 1 - 255
customerEmail
string<email> | null
customerContact
string | null
Required string length: 1 - 32
callbackUrl
string<uri> | null
notes
object

Native Razorpay subscription notes, available in webhook payloads.

Response

Razorpay subscription created

subscription
object
required
checkoutOptions
object
required