Standard operating procedure · SOP-08

Billing, Subscriptions & Dunning

Version 1.0 · effective 13 July 2026 · owner: Jonny Allum

Trigger: Stripe events, plan changes, failed payments, refund requests. Owner: Jonny Allum. Policy anchors: POL-09 §3.2 (fail-open), POL-12.

1. The setup (what runs itself)

  • Platform billing: Stripe subscriptions — Solo £29 / Team £89 / Business £199 / Scale £499 + the Founding £69 lifetime-lock offer; 14-day trials, no card up front; plan caps (seats/sites/AI actions); AI-action top-up packs; self-serve customer portal for upgrades, downgrades and cancellation.
  • Tenant money: invoices with Stripe pay-online links, storefront/ booking card checkout, payments auto-recorded by webhook, recurring invoices on anchored schedules, overdue chase cron.
  • Enforcement fails open: a Stripe outage or webhook gap never locks a paying tenant out. The cost of fail-open is reconciliation — §3.

2. Manual interventions

SituationAction
Trial expiring, engaged tenantPersonal email before expiry — convert or extend once (14 days max extension, note in CRM)
Failed payment (dunning)Stripe retries run first; after final failure, personal email with portal link; 14 days grace before restricting; restriction ≠ deletion (data held per POL-10)
Refund requestHonour ≤14 days after first charge no-questions; otherwise pro-rata judgement, recorded with reason
Plan-cap overage (seats/sites/AI actions)The product enforces caps; if someone hits them hard, that's a sales conversation, not a punishment
ChargebackRespond with evidence from Stripe + audit trail; never fight an honest dispute

3. Monthly reconciliation (first Monday, with SOP-06 check)

  • Stripe active subscriptions ↔ active tenants match (no ghosts either way)
  • Webhook delivery log: zero unhandled failures; replay any missed events
  • Founding-cohort pricing locks intact after any price changes
  • MRR, trial-conversion and churn noted (one line each — trend beats detail)

4. Price changes

New pricing applies to new customers; existing customers get 30 days' written notice; Founding lifetime locks are never broken — that promise is load-bearing for the brand.

5. VAT/tax

Platform invoices carry the correct VAT treatment for the business's registration status; when the threshold or registration changes, Stripe tax settings and invoice footers are updated the same week, and the accountant confirms treatment in writing (filed 6 years — POL-10).

← All documents & policiesQuestions? hello@jonnyai.co.uk