diff --git a/docs/LAUNCH_READINESS.md b/docs/LAUNCH_READINESS.md index d6bd0d4..cf07ef7 100644 --- a/docs/LAUNCH_READINESS.md +++ b/docs/LAUNCH_READINESS.md @@ -22,7 +22,13 @@ None outstanding. Privacy/Terms pages shipped, duplicate-customer bug fixed, pre ## P1 — Strongly preferred before launch -None outstanding. +### In-app billing management; demote Helcim portal to escape hatch +- Helcim's hosted portal requires a separate password the member never set during `/join`. First-touch flow is "click link → see Helcim login → click Forgot password → wait for email → set password → sign in." Reads as broken. +- **Ship in-app equivalents for the 80% case:** + - Past invoices / receipts list on `/member/account` — new server route pulls from Helcim invoice API by `helcimCustomerId`; render a simple list with date, amount, download/view link. + - Change card — reuse `useHelcimPay` composable to get a new `cardToken`, then new server route updates the customer's default payment method and the active subscription's payment method. +- **Keep** the existing "Manage billing in Helcim →" link but relabel to something like "Advanced billing in Helcim →" so it reads as an escape hatch for disputes/edge cases, not the primary surface. +- Rough scope: 1–2 days. Two new `server/api/helcim/*` routes + two new sections on `/member/account`. ---