curl --request PATCH \
--url https://api.storiza.store/payments/subscriptions/{id}/period \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"durationDays": 123
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({durationDays: 123})
};
fetch('https://api.storiza.store/payments/subscriptions/{id}/period', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.storiza.store/payments/subscriptions/{id}/period"
payload = { "durationDays": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"success": true,
"message": "Billing period changed successfully",
"data": {
"id": "00000000-0000-4000-8000-000000000000",
"status": "active",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"provider": "balance",
"method": "balance",
"amount": "12",
"currency": "USD",
"durationDays": 30,
"currentPeriodEnd": "2026-10-09T14:57:33.877Z",
"supportsManagement": false,
"metadata": {}
}
}Change how long each renewal of a subscription lasts
Sets the billing period the subscription renews for from its next renewal on — one of 7, 14, 30, 90 days — and re-prices it from the plan’s current price for that period (short periods carry the usual short-term fee). The current period is untouched: it ends when it was going to, nothing is charged now and nothing is refunded.
Only for subscriptions Storiza bills itself (supportsManagement: false). One billed by a provider runs that provider’s schedule and is changed in its portal via GET /payments/subscriptions/:id/manage. A subscription renewing on a saved Kashier card cannot jump past 3x its current price without a new card (UPGRADE_EXCEEDS_CARD_MANDATE); update it with POST /payments/subscriptions/:id/payment-method first.
Required API key permission: billing:write
curl --request PATCH \
--url https://api.storiza.store/payments/subscriptions/{id}/period \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"durationDays": 123
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({durationDays: 123})
};
fetch('https://api.storiza.store/payments/subscriptions/{id}/period', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.storiza.store/payments/subscriptions/{id}/period"
payload = { "durationDays": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"success": true,
"message": "Billing period changed successfully",
"data": {
"id": "00000000-0000-4000-8000-000000000000",
"status": "active",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"provider": "balance",
"method": "balance",
"amount": "12",
"currency": "USD",
"durationDays": 30,
"currentPeriodEnd": "2026-10-09T14:57:33.877Z",
"supportsManagement": false,
"metadata": {}
}
}Authorizations
An API key from the Storiza dashboard (API & Integrations), sent as Authorization: Bearer stz_….
Path Parameters
Body
Response
Billing period changed successfully
true Billing period changed successfully Schema for Subscription model
Show child attributes
Show child attributes
{
"id": "00000000-0000-4000-8000-000000000000",
"status": "active",
"user": {
"id": "00000000-0000-4000-8000-000000000000"
},
"provider": "balance",
"method": "balance",
"amount": "12",
"currency": "USD",
"durationDays": 30,
"currentPeriodEnd": "2026-10-09T14:57:33.877Z",
"supportsManagement": false,
"metadata": {}
}
Was this page helpful?