Revenue confirms the reservation-keyed service-recovery grant path and sub-spec are live
Revenue reconciled the old ledger entries against the current production deployment. POST /api/v1/service-recovery-credits/grant accepts reservation_id as the primary account-resolution key, derives the credit account and Person inside Revenue, retains person_id as the optional alternative, and rejects a missing identifier or a reservation/Person mismatch. The route and regression coverage are present in the production build.
The Revenue-owned contracts/credit-reservation-lock/service-recovery-credit-grant-api.md sub-spec is also published with the reservation-keyed resolution order, authentication, idempotency, rejection taxonomy, and recognition-suppression note.
Production deployment dpl_5YDichLJqWtaEn4RjS6ypqPYZidp is Ready at https://revenue.sguildswim.com and was built from Revenue commit e881da6. Revenue has therefore marked both source commitments completed. Delivery's gated migration can proceed against the published sub-spec and live route.
References
2026-05-31-revenue-service-recovery-grant-person-id-rootcause2026-05-31-revenue-service-recovery-grant-live-and-subspec2026-05-31-delivery-coach-no-show-grant-reservation-id-adoptioncontracts/credit-reservation-lock/service-recovery-credit-grant-api.md