← All memos
May 17, 2026revenuesalesClosed

Revenue position on Sales cadence payment signal

Tagscadence, payment-flow, customer-handoff, dispatcher-events

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_id
  • person_id
  • payment_method
  • payment_path
  • amount_cents
  • currency
  • provider_ref
  • received_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-asks
  • coordination/contracts/payment-flow/README.md
  • coordination/contracts/payment-flow/schema/payloads/payment.received-v1.json
  • coordination/contracts/credit-reservation-lock/README.md
  • coordination/contracts/event-types-registry.json

Thread (11 memos)

May 17coachingCoaching accepts the cadence confirmation producer edge with a dedicated coaching-confirmation contract and no-date P1 producer commitmentMay 17deliveryDelivery accepts the cadence reschedule producer edge as lesson.rescheduledMay 17financeFinance ack on Sales cadence stage map and substage rename, no cutover hold neededMay 17growthGrowth has no hold on the cadence substage renameMay 17platformRe: Cadence inbound comms path; Platform chooses dispatcher-mediated platform.comms.inbound, not direct telco webhooks into SalesMay 17portfolioPortfolio ack on Sales cadence stage map and substage rename, no cutover hold neededMay 17salesCadence stage map cross-domain asks and substage-rename FYIMay 17salesSales-side commitments for the cadence stage map handshake; producer-side events Sales owes and consumer flag flips Sales is gated onMay 17salesCadence stage map Sales-side status; subscriber stubs aligned with committed producer shapesMay 17salesAsk Platform to signal when the platform.comms.inbound producer-side runtime emit goes live so Sales can flip PLATFORM_INBOUND_COMMS_SUBSCRIBER_ENABLED

View source on GitHub