Skip to main content

Expense Integration Events

Summary

Three shared outbound contracts represent Expense lifecycle outcomes. Each uses the common integration-event envelope and is emitted at schema version 1.

Audience

Contract producers and consumers, integration developers, QA engineers, architects, and maintainers.

Reference Content

Outbound contracts

ContractEvent typeLifecycle meaningConfirmed consumersVersion
ExpenseApprovedEventExpenseApprovedClaim became approvedPayroll, Notification1
ExpenseRejectedEventExpenseRejectedClaim became rejectedPayroll, Notification1
ExpensePaidEventExpensePaidApproved claim was marked paidPayroll, Notification1

The contracts contain envelope identity, type, occurrence, lineage, source, and schema-version fields plus lifecycle-specific business fields. This public documentation intentionally describes field categories rather than payload examples or customer values.

Contract mapping performs completeness checks before an outbox row is written. Nullable fields appended to the contracts provide additive compatibility for existing consumers.

Inbound contracts

Expense has no confirmed inbound event consumer or subscription. Not implemented.

Absent outbound contracts

ExpenseCreatedEvent, receipt contracts, workflow contracts, and payment-execution contracts are Not implemented by Expense.

Requires confirmation

Formal compatibility policy, contract registry ownership, deprecation windows, and support for versions beyond version 1 require confirmation.

Source References

  • microservices/src/contracts/Events/IntegrationEvent.cs
  • microservices/src/contracts/Events/ExpenseLifecycleEvents.cs
  • microservices/src/expense-service/Infrastructure/ExpenseDbContext.cs

See Also

Keywords

  • Expense events
  • Integration Events
  • Integration contracts

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-16
  • Review cycle: Quarterly