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"
}