Update a Subscription
Updates an existing subscription. All fields are optional — only provided fields are changed.
Ending a trial early:
Pass trial_end: "now" to end a TRIALING subscription's trial immediately. The billing
schedule is rebuilt and the first charge fires right away.
Updating items:
Providing items replaces all existing subscription items with the new set.
- Type: stringidrequired
Subscription ID (26-character ULID).
Request body for updating an existing subscription. All fields are optional — only provided fields are changed.
- Type: string | nullFormat: date-timebilling
_cycle _anchor New billing cycle anchor date (ISO 8601).
- Type: object · BillingCycleAnchorConfigbilling
_cycle _anchor _config Advanced billing cycle configuration. Allows precise control over when billing cycles occur. All fields are optional integers with specific ranges.
- Type: string | nullFormat: date-timecancel
_at New scheduled cancellation date (ISO 8601).
- Type: booleancancel
_at _period _end If
true, the subscription remains active until the end of the current billing period, then cancels. Iffalse, re-activates a subscription that was previously set to cancel. - Type: object · CancellationDetailscancellation
_details Details about why this subscription was cancelled.
- Type: stringenumcollection
_method New payment collection method.
send_invoiceis (coming soon).values- charge
_automatically - send
_invoice
- Type: integerdays
_until _due min:1New number of days until invoice is due (for
send_invoicecollection method). - Type: stringdefault
_payment _method ID of the new default payment method.
- Type: array 1…20items
Replace all subscription items with this new set.
- Type: objectmetadata
Updated metadata key-value pairs.
- Type: stringon
_behalf _of New connected account ID.
- trial
_end - enumconst:now
End the trial immediately.
values- now
Request body for updating an existing subscription. All fields are optional — only provided fields are changed.
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.paypercut.io/v1/subscriptions/01HD7M6DRKZ4Q4QEVWJB0RC1S6 \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"default_payment_method": "pm_01NEWPAYMENTMETHODXXXXXXXX"
}'
{
"id": "01HD7M6DRKZ4Q4QEVWJB0RC1S6",
"customer": "01KJQ34MWYH0TES77RDXA8T8TT",
"status": "ACTIVE",
"start_date": "2026-01-01T00:00:00Z",
"next_billing_date": "2026-02-01T00:00:00Z",
"current_period_start": "2026-01-01T00:00:00Z",
"current_period_end": "2026-02-01T00:00:00Z",
"cancel_at_period_end": true,
"cancel_at": null,
"canceled_at": null,
"paused_at": null,
"trial_start": null,
"trial_end": null,
"billing_cycle_anchor": "2026-01-01T00:00:00Z",
"collection_method": "charge_automatically",
"days_until_due": null,
"default_payment_method": "pm_01NEWPAYMENTMETHODXXXXXXXX",
"currency": "USD",
"livemode": false,
"ended_at": null,
"cancellation_details": null,
"items": [
{
"id": "si_01HD7M6DRKZ4Q4QEVWJB0RC1S6",
"price": "01XXXXXXXXXXXXXXXXXXXXXXX",
"product": "01XXXXXXXXXXXXXXXXXXXXXXX",
"quantity": 1,
"billing_interval": "monthly",
"unit_amount": 2999,
"currency": "USD",
"recurring": {
"interval": "monthly",
"interval_count": 1,
"usage_type": "licensed"
},
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-15T00:00:00Z"
}
],
"created": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-15T00:00:00Z"
}
