From 719015a61d876ecc0351e42f3378f606c5f8bc68 Mon Sep 17 00:00:00 2001 From: shum Date: Thu, 22 Oct 2026 02:29:04 +0000 Subject: [PATCH] plans: names cancel never answers open --- plans/names-codes/2026-10-21-store-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/names-codes/2026-10-21-store-api.md b/plans/names-codes/2026-10-21-store-api.md index bdb0dffe5e..620b34692b 100644 --- a/plans/names-codes/2026-10-21-store-api.md +++ b/plans/names-codes/2026-10-21-store-api.md @@ -339,7 +339,7 @@ The duration uses the code's `years`. Checks, in order: ### `POST /api/invoice/:id/cancel` As for badges, with the name's view: -- `200` the invoice view, now `expired` (or still `open` when the provider took the cancel late: the page shows "still open" and keeps the order); +- `200` the invoice view, now `expired`. The service cancels at the provider first and expires its record only after the provider accepted, so a cancel never answers `open`; - `409 not_open`, `409 funded` (the service has read a payment), `404 not_found`, `503 provider_unavailable` (also when Stripe refuses to cancel an intent already processing). A cancel that lost to settlement answers `200` with `status: paid`; the page re-reads and opens the registration.