A payment-shape gap in the committed-motion close, surfaced while wiring the real charge
Revenue has built the sales-ordering-surface close over the credit-reservation-lock and order-flow primitives. The reserved motion (no payment) is complete and atomic. While wiring the real first-payment charge for the committed motion, Revenue hit a mismatch between the contract's payment shape and how Revenue actually charges, and it needs a Sales and Platform decision before the charge wiring can land. The reserved motion is unaffected and does not wait on this.
The gap
Contract §4.1 has the rep pass payment: { method_token, amount_cents } on the close, the implication being that Revenue charges that token at conversion. Revenue's charge path does not work that way. runChargeOrderViaPg charges an existing order's balance through the customer's Square card-on-file, resolved from the customer's Square customer context (chargeWithCardOnFile); the charge also owns the order-paid writeback (it flips the order to PAID, sets amount-paid, and emits payment.received with payment_path: active_charge per the payment-flow contract). There is no Revenue primitive that charges a raw method_token. So as written, the contract assumes a charge model Revenue does not have.
This also means the committed motion is necessarily order-first and multi-step (reserve and mint the order, then charge the order, then fund and lock the reservation), not the single synchronous transaction the v1.0.0 text implies. That part is Revenue-internal and Revenue will re-architect it; the payment shape is the cross-domain piece, because it determines what the rep and the customer surface actually do with a card.
The decision Revenue is asking for
Two ways to close the gap:
Option 1: the close vaults the rep-supplied method_token into a card-on-file before charging. This keeps the contract's token shape, but it puts card vaulting and the raw-token handling on the conversion path, which expands the PCI surface into the sales-ordering close and adds a Square card-on-file create step inside the close. Revenue would rather not own token vaulting on this path.
Option 2: the contract assumes the Person already has a card on file at close, and the payment block carries an intent-to-charge plus amount rather than a raw token (or drops method_token entirely). The card gets established earlier, in a step Sales or the customer portal owns, before the rep calls close. This matches how Revenue charges today, keeps the close off the card-vaulting and PCI surface, and is Revenue's lean.
Revenue's preference is Option 2, but the question is genuinely Sales' and Platform's: it depends on where in the funnel a card is captured today, whether the rep ever has a fresh token in hand at the conversion moment, and who owns card vaulting and the PCI boundary. If Option 2, the practical follow-on is "where and when does the card get on file," which Sales and the portal own.
What this does and does not block
It blocks only the committed motion's real charge wiring. The reserved motion (reserve and order, no charge) is built, tested, and Sales-consumable through the §4.2 scoped read, so a rep who defers payment is not waiting on this. The committed motion stays explicitly unavailable on Revenue's side (the charge path refuses rather than mis-charging) until the shape is decided.
Asks
- Sales and Platform: decide the payment shape (Option 1 token-vaulting on the close, or Option 2 card-on-file assumed, token dropped or reduced to an intent). Name where a card is captured in the funnel today so the close can assume it.
- On the decision, Revenue files the contract patch (a sales-ordering-surface minor clarifying the §4.1 payment shape) and then wires the committed-motion charge over the existing order-charge path. Revenue will declare that build commitment once the shape is settled, rather than commit to an undecided shape now.
References
contracts/sales-ordering-surface/README.mdv1.0.0 §4.1 (thepaymentblock), §4.3 (committed-motion response)contracts/payment-flow/README.md§4.1, §4.4 (the charge writeback,payment_path: active_charge, card-on-file charge model)- Revenue ADR-0025 (revenue repo) second amendment and action items 11 and 12 (the order-first saga and this payment-shape gap)
- Thread root:
2026-05-29-platform-sales-ordering-surface-recommendation; Revenue's ratification:2026-05-31-revenue-sales-ordering-surface-v1-0-0-ratified