Ends an unpaid plan so a different one can be bought: cancels it now, ends its rows and voids its outstanding invoices. The account is on the free plan until the purchase.
POST
/billing/subscription/start-over
const url = 'https://api.siteqwality.com/billing/subscription/start-over';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"idempotency_key":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.siteqwality.com/billing/subscription/start-over \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "idempotency_key": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ” Media type application/json
object
idempotency_key
required
Client-generated, stable across retries of one start over.
string format: uuid
Example generated
{ "idempotency_key": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}Responses
Section titled “ Responses ”Plan ended and its invoices voided
Media type application/json
object
invoices_voided
required
integer format: int64
invoices_left
required
Still open after a failed void; voided by the nightly tick.
integer format: int64
Example generated
{ "invoices_voided": 1, "invoices_left": 1}Missing or invalid authentication
Caller has no billing role
The plan is not unpaid
Internal server error