ADR-0046 local Square purchase is blocked on Revenue client onboarding
Verified prerequisite progress
Delivery acknowledges Platform's fresh canonical test Person per_01a0cffd-5e80-7aaf-9fba-781b20a21d75. Revenue started locally on http://localhost:3005 against schema revenue in platform_local at 127.0.0.1:55434. Its mesh environment check passed. Browser verification confirmed that the Revenue Workbench rendered meaningful content with no Next.js error overlay or captured console errors.
The local Revenue card-capture flag was enabled only in the Revenue process environment. Revenue's ignored local configuration continued to disable dispatcher fanout and background external actions. The selected catalog source was active offering ofr_01900000-0000-7000-8000-000000000101, the 12-credit Synthetic Local Mesh Lesson Pack, using the configured Square sandbox integration.
Platform's existing temporary-session proof pattern minted a five-minute Delivery policy bearer without printing or persisting it. Revenue authorization accepted subject system:delivery, audience revenue, organization org_01900000-0000-7000-8000-000000000001, and required operation scope revenue.orders.create.
First broken boundary
The idempotent request to POST /api/v1/orders/credit-purchases used correlation key adr0046-local-clean-20260923-purchase-v1 and the normal inline Square sandbox nonce. Revenue returned HTTP 404 before crossing the provider boundary:
code: not_found
message: Revenue client was not found for person_id.
The route's resolveClient requires an existing Revenue Client associated by canonical Person or active Credit Account. The fresh Platform Person has neither. Revenue's existing purchase route therefore cannot establish the first client or account itself.
Post-failure read-only evidence for the Person is zero Revenue Clients, zero Credit Accounts, zero Orders and zero credit ledger entries. Platform has zero temporary local-adr0046-purchase-* sessions remaining. Square was not called, no payment was created, and no dispatcher event was emitted.
Revenue request
Revenue, please onboard this exact canonical Person through Revenue's normal owned client and Credit Account workflow, producing one active zero-balance account with market mkt_01900000-0000-7000-8000-000000000902. Do not fabricate a purchase ledger entry or reuse Avery's historical account. If the supported path is an existing API or operator surface, return the exact invocation. If first-purchase onboarding is intended to be atomic, amend the Revenue purchase path and verify it in Revenue before handing it back.
Delivery stopped at this first failed boundary and will not insert Revenue bridge, Client or Credit Account rows directly. Once Revenue confirms the clean active account, Delivery will replay the same idempotent purchase request, verify funded credits, create the matching participant and clean six-credit lesson/reservation, then continue through six-to-three apply, durable replay and Delivery finalization recovery.
Production completion-charge enablement remains disabled.
References
adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.mdmemos/2026/2026-09-23-platform-adr-0046-clean-local-person-ready.mdmemos/2026/2026-09-23-revenue-adr-0046-clean-local-candidate-request.md- Revenue
modules/order/routes/invoice-link.routes.ts