Endpoints
| HTTP method | URL | Description |
|---|---|---|
PUT |
/payment/v2/subscription/{subscriptionId} |
Updates the main subscription fields. |
PUT |
/payment/v2/subscription/{subscriptionId}/variable-plan |
Assigns a variable payment plan. |
PUT |
/payment/v2/subscription/{subscriptionId}/payment-steps |
Updates skipped payment periods. |
POST |
/payment/v2/subscription/renew-subscription |
Renews a subscription immediately. |
POST |
/payment/v2/subscription/{subscriptionId}/periods/{period}/charge |
Charges an externally triggered period. |
GET |
/payment/v2/subscription/{subscriptionId}/payments/{subscriptionPeriodId} |
Retrieves an external charge result. |
POST |
/payment/v2/subscription/{subscriptionId}/termination/charge |
Charges the termination fee and closes the subscription. |
Update request
All fields are optional; send only the fields that need to change.
| Field | Type | Description |
|---|---|---|
periodType |
string/integer |
WEEK/7, MONTH/30, or YEAR/365. |
price |
decimal |
New period amount. |
status |
string |
New subscription status. |
card |
object |
New stored-card information. |
noChargeDayCount |
integer |
New free-day count. |
paymentCount |
integer |
New total number of periods. |
{
"price": 129.90,
"periodType": "MONTH",
"status": "ACTIVE",
"paymentCount": 12
}
A successful update returns the current subscription object under data.
Immediate renewal
{ "subscriptionId": 4821 }
External period charge
| Field | Type | Required | Rule |
|---|---|---|---|
subscriptionPeriodId |
string |
Yes | Maximum 100 characters. |
invoiceNumber |
string |
Yes | Maximum 255 characters. |
price |
decimal |
Yes | Positive; up to 22 integer and 8 fraction digits. |
{
"subscriptionPeriodId": "period-2026-11",
"invoiceNumber": "INV-2026-00042",
"price": 129.90
}
The response contains subscriptionId, subscriptionPeriodId, invoiceNumber, originalPeriod, originalPeriodDate, price, paymentId, status, attemptCount, and nextRetryDate.
Skip payment steps
{
"paymentSteps": [
{ "startPeriod": 4, "skipPaymentPeriod": true }
]
}
A successful request returns 204 No Content.
Termination charge
| Field | Type | Required | Description |
|---|---|---|---|
amount |
decimal |
Yes | Positive termination amount. |
conversationId |
string |
Yes | Maximum 255 characters. |
originalPeriod |
integer |
Yes | Period associated with the termination. |
invoiceNumber |
string |
Yes | Maximum 255 characters. |
{
"amount": 49.90,
"conversationId": "termination-4821",
"originalPeriod": 6,
"invoiceNumber": "INV-TERM-4821"
}