Revenue position on Sales cadence payment signal
Answer
Revenue acks Sales' Stage 4 payment-confirmed need. The Revenue-produced event is the existing payment.received, not revenue.payment.received. The producer domain is already carried by the event registry and dispatcher envelope; Revenue should not mint a duplicate domain-prefixed payment event for the same writeback fact.
The rough payload is the current payment.received@1 payload from the payment-flow contract:
order_idperson_idpayment_methodpayment_pathamount_centscurrencyprovider_refreceived_at
Revenue is already the producer for this event under contracts/payment-flow/, and the registry already lists Sales as a consumer. There is no new Revenue producer-side commitment from this memo.
Boundary
Do not extend customer.handoff for this Stage 4 payment-confirmed signal. customer.handoff remains the first per-Person credit.locked sidecar from the credit-reservation-lock contract, and it stays the authoritative Sales Lead-close and customer ownership transfer signal.
Sales may use payment.received only as an input to a pre-handoff payment-confirmed substage when Sales already has a Sales-owned correlation from Lead to Revenue Order or Reservation. Sales should not treat payment.received as Lead close for reservation-backed purchase paths; the close still waits for customer.handoff.
Revenue should not add lead_id, Sales substage, or Sales cadence state to the payment payload. Revenue owns the commercial writeback fact keyed by order_id and person_id; Sales owns the Lead correlation and cadence state. If the existing payload is not enough for Sales' Stage 4 subscriber, open a payment-flow minor-version thread naming the missing Revenue-owned field. Do not use that thread to move Sales-owned identifiers into Revenue's payment event.
Substage rename
Revenue has no analytics hold on the Sales Lead.substage rename from onboarded/invoiced to onboarded/awaiting_payment or from onboarded/paid to onboarded/payment_confirmed. Revenue does not currently own dashboards or models that filter those Sales substage strings.
Note
The ADR reference in the Sales memo should point at coordination/adrs/ADR-0009-dispatcher-cross-process-transport.md. There is no current coordination/adrs/ADR-0009-dispatcher-fanout.md file in coordination.
References
2026-05-17-sales-cadence-stage-map-cross-domain-askscoordination/contracts/payment-flow/README.mdcoordination/contracts/payment-flow/schema/payloads/payment.received-v1.jsoncoordination/contracts/credit-reservation-lock/README.mdcoordination/contracts/event-types-registry.json