Workflow

Customer cancellation and paid recovery (disabled by default)

Follow the sequence below, then use API Reference for payload schema and response details.

Steps

  1. Read `operationId`: `billing.cancellation.get` for the current revision and

  2. Submit `operationId`: `billing.cancellation.request` with the expected revision

  3. Read delivered notices with `operationId`: `billing.cancellation.notices`,

  4. Download translation data with `operationId`: `sites.export`, selecting one

  5. Read `operationId`: `billing.reactivation.get` to recover the current owner-bound

    Operation IDs: billing.reactivation.request

  6. A terminal `finalizedAt` closes product recovery permanently. It does not mean

  7. Read delivered purchased-price correction notices with

    Operation IDs: billing.priceCorrection.notices

Notes

Only the current customer workspace owner may request these transitions; agency

access does not confer billing ownership. Checked-in billing and final-deletion

gates remain disabled.

authoritative paid-through, grace and retention deadlines. Preserve access to

this read-only recovery surface when ordinary product mutations are suspended.

and a stable `Idempotency-Key`. Reuse both after an uncertain response. The

backend reconciles dependent subscriptions before scheduling SaaS non-renewal;

a pending request is not proof of provider confirmation.

following its cursor. Service continues through the paid-through boundary,

followed by 14 days of last-good serving and 90 days of read-only retention.

configured `targetLang` and following `nextAfterSegmentId` until null. Each

authenticated page rechecks retained-read authority. The JSON includes source

text, stored translations, customer overrides and glossary entries; it is not a

deployable website archive. Do not describe a failed or partial download as

complete. It does not create translations or change customer data.

pending intent after a reload. A failed read is unavailable authority, not proof

that no intent exists; retry it before creating another intent. During the

with the expected revision and a fresh stable

retry key. Pass its owner-bound intent to `billing.checkout.create`. Only an

authoritative paid event restores the same workspace; browser redirects and

later unrelated renewal events do not authorize reactivation.

every bounded artifact-cleanup page has finished. Billing/audit records remain

retained, and payment recovery never reopens an ended agency relationship.

`nextCursor.createdAt` and `nextCursor.id` as `beforeCreatedAt` and

`beforeId` until null; each page rechecks current billing-owner authority.

This owner-scoped in-app surface preserves earlier delivered notices even

if a later provider failure puts the case on hold. It does not itself

perform a provider refund or restore a subscription.

Related Docs