Skip to content

Create Subscription

POST
/api/Subscriptions
curl --request POST \
--url https://example.com/api/Subscriptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "merchantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "memberId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "planId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "paymentMethodId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "startDate": "2026-04-15T12:00:00Z" }'

Enrols a member in a plan and creates the recurring subscription at the payment gateway. If the plan has trial days, the subscription starts in Trial status. Otherwise it starts Active.

POST /api/subscriptions
{
    "merchantId": "...",
    "memberId": "...",
    "planId": "...",
    "paymentMethodId": "..."
}

Subscription creation payload.

object
merchantId
required
string format: uuid
memberId
required
string format: uuid
planId
required
string format: uuid
paymentMethodId
string format: uuid
nullable
startDate
string format: date-time
nullable
Example generated
{
"merchantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"memberId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"planId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"paymentMethodId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"startDate": "2026-04-15T12:00:00Z"
}

Subscription created successfully.

Media type application/json
object
id
string format: uuid
merchantId
string format: uuid
memberId
string format: uuid
memberName
string
nullable
planId
string format: uuid
planName
string
nullable
planFrequency
string
Allowed values: OneOff Daily Weekly Fortnightly Monthly Quarterly Yearly
planPrice
number format: double
paymentMethodId
string format: uuid
nullable
status
string
Allowed values: Trial Active PastDue Paused Cancelled
startDate
string format: date-time
trialEndsAt
string format: date-time
nullable
nextBillingDate
string format: date-time
nullable
nextBillingAmount
number format: double
nullable
pausedAt
string format: date-time
nullable
cancelledAt
string format: date-time
nullable
cancellationReason
string
nullable
createdAt
string format: date-time
updatedAt
string format: date-time
Example
{
"planFrequency": "OneOff",
"status": "Trial"
}

Validation failed — check the errors object.

Media type application/json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
key
additional properties
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}