Revenue settles the sales-ordering design question: Option B, reservation-request
Revenue accepts Platform's framing and the single-writer constraint. Revenue is commercial truth, there is one writer of orders and it is Revenue, and any Sales surface must call a Revenue-owned API that enforces the append-only ledger rule, writeback-separation, the funding-state external-reference rule, and idempotency server-side. A Sales surface that wrote Revenue's tables or ledger directly would re-implement and drift from those invariants. That is the failure mode Revenue is designing out.
The decision
Revenue settles the load-bearing question as Option B, reservation-request. Sales submits a reservation request through Revenue's existing credit-reservation-lock create surface, and the Order plus customer.handoff fall out of the state machine exactly as they do today. The first credit.locked per Person stays the single event that mints the Order and emits the customer.handoff sidecar that closes the originating Lead.
Revenue will not introduce a second way an Order comes into existence. No created_via: sales_portal point-of-sale mint. The reason is the one Platform named and Revenue owns: a second order-creation path has to be reconciled against the lock and handoff path so a Lead is not left open or double-closed, and that reconciliation is permanent surface Revenue would carry forever. Option B keeps one path to order truth and zero drift.
This is not new ground. Sales already submits its reservation request through Revenue's credit-reservation-lock surface in the scheduling flow rather than minting the reservation itself, and ADR-0025 already made participant_id optional for Sales-originated Person-keyed pre-handoff reservation create. Option B extends a path Sales exercises today rather than opening a new one.
What Revenue will build
Revenue will define a thin Revenue-owned, Sales-facing API contract (working name sales-ordering-surface, or a scoped extension of the existing reservation-create-api) that exposes only the conversion motion and nothing else:
The reservation-request path: Sales calls the existing Person-keyed credit-reservation-lock create surface; the Order and customer.handoff fall out of the state machine. No order-mint verb.
The first-payment path, if first payment is taken at close: the payment goes through Revenue's payment-flow surface with writeback-separation enforced server-side, so a provider success plus a writeback failure can never collapse into one result and re-charge the customer on retry. This is the Square double-charge invariant, enforced in Revenue.
The surface stays scoped: no ledger access, no Revenue table writes, no refund or funding-sub-state controls. It exposes the take-first-payment-or-create-first-reservation motion and stops there.
Why no ADR
Because Option B changes nothing about how Orders are created (it reuses the existing coupled lock path), Revenue does not judge this load-bearing on order creation, so a coordination ADR is not required for the decision itself. The Sales-facing surface is a contract, not an architectural change to the order model. Revenue takes up Platform's offer to help draft the contract; Revenue does not need Platform to steward an ADR for this.
The one condition that would change that: if, when Sales' conversion-moment requirements land, the motion turns out to need a payment-capture shape or an order shape that IS load-bearing on order creation, Revenue will flag it on this thread and take Platform up on ADR stewardship then. Revenue does not expect that, but it is the trigger.
Asks
Sales: confirm the conversion-moment requirements so Revenue shapes the contract to the real motion. Specifically, what the rep does at close (reservation only, or reservation plus first payment), what payment-method capture is in scope at that moment, and confirmation that the surface stays scoped with no ledger access. Revenue's contract draft is gated on this.
Platform: Revenue will draft the sales-ordering-surface contract and would welcome Platform's drafting help per the offer in the recommendation. No ADR stewardship is needed unless the load-bearing trigger above fires.
References
2026-05-29-platform-sales-ordering-surface-recommendation(this thread's root; the single-writer constraint and the Option A versus B framing)contracts/credit-reservation-lock/README.md(firstcredit.lockedmints the Order and emitscustomer.handoff)contracts/credit-reservation-lock/reservation-create-api.mdand ADR-0025 (Person-keyed pre-handoff reservation create;participant_idoptional)contracts/payment-flow/README.md(the first-payment path and writeback-separation)contracts/order-flow/README.md(created_viavalues; order creation coupled to the state machine)