Add independent payment-service (port 8012, payment_db) with foundation licensing, BYO-PSP, merchant accounts, idempotent requests, callbacks, and immutable ledger. Co-authored-by: Cursor <cursoragent@cursor.com>
11 KiB
11 KiB
Event Catalog
Canonical event types. Envelope rules: event-driven-architecture.md.
Core Platform
| event_type | aggregate | Description |
|---|---|---|
tenant.created |
tenant | New tenant created |
tenant.suspended |
tenant | Tenant suspended |
tenant.activated |
tenant | Tenant activated |
domain.created |
domain | Domain added |
subscription.created |
subscription | Subscription created |
subscription.updated |
subscription | Subscription changed |
feature_access.changed |
feature_access | Entitlement override/plan effect changed |
Identity & Access
| event_type | Description |
|---|---|
user.registered |
New user registered |
tenant_member.added |
Member added (identity layer) |
tenant_member.removed |
Member removed (identity layer) |
Accounting (Phases 5.1–5.6)
| event_type | Description |
|---|---|
voucher.created |
Voucher drafted |
voucher.validated |
Voucher passed validation |
voucher.posted |
Voucher posted to ledger |
voucher.reversed |
Voucher reversed |
journal_entry.created |
Journal entry created via Posting Engine |
posting.completed |
Posting operation succeeded |
ledger.updated |
General ledger updated |
trial_balance.generated |
Trial balance snapshot created |
fiscal_period.locked |
Fiscal period locked |
cash.received |
Cash receipt recorded |
settlement.completed |
AR/AP settlement completed |
sales_invoice.posted |
Sales invoice accounting posted |
revenue.recognized |
Revenue recognition recorded |
Full list: backend/services/accounting/app/events/types.py
CRM (Phases 6.0–6.1)
| event_type | Description |
|---|---|
crm.lead.created |
Lead created |
crm.lead.updated |
Lead updated |
crm.contact.created |
Contact created |
crm.organization.created |
Organization created |
crm.opportunity.created |
Opportunity created |
crm.opportunity.updated |
Opportunity updated |
crm.opportunity.won |
Opportunity marked won |
crm.opportunity.lost |
Opportunity marked lost |
crm.pipeline.changed |
Pipeline updated |
crm.stage.changed |
Opportunity stage changed |
crm.playbook.assigned |
Sales playbook assigned |
crm.playbook.completed |
Playbook assignment completed |
crm.forecast.updated |
Sales forecast computed/updated |
crm.activity.completed |
Sales activity completed |
crm.task.completed |
Sales task completed |
crm.meeting.finished |
Meeting finished |
crm.call.logged |
Call logged against opportunity |
crm.timeline.updated |
Sales timeline entry appended |
crm.comment.created |
Collaboration comment created |
crm.mention.created |
User mentioned in CRM collaboration |
crm.quote.created |
Sales quote created |
crm.note.created |
CRM note created |
crm.attachment.added |
Attachment reference added |
Full list: backend/services/crm/app/events/types.py
Loyalty (Phase 7.0)
| event_type | Description |
|---|---|
loyalty.program.created |
Loyalty program created |
loyalty.program.updated |
Loyalty program updated |
loyalty.program.deleted |
Loyalty program soft-deleted |
loyalty.tier.created |
Membership tier created |
loyalty.tier.updated |
Membership tier updated |
loyalty.tier.deleted |
Membership tier soft-deleted |
loyalty.member.created |
Member created |
loyalty.member.updated |
Member updated |
loyalty.member.enrolled |
Member enrolled / activated |
loyalty.member.activated |
Member activated with term/expiry |
loyalty.member.renewed |
Membership renewed |
loyalty.member.frozen |
Membership frozen |
loyalty.member.resumed |
Membership resumed from freeze |
loyalty.member.cancelled |
Membership cancelled |
loyalty.member.expired |
Membership expired |
loyalty.member.transferred |
Membership transferred to another program |
loyalty.member.deleted |
Member soft-deleted |
loyalty.point_account.opened |
Point account opened |
loyalty.point_account.updated |
Point account updated |
loyalty.point_account.deleted |
Point account soft-deleted |
loyalty.points.earned |
Points earned on ledger |
loyalty.points.redeemed |
Points redeemed on ledger |
loyalty.points.adjusted |
Points adjusted on ledger |
loyalty.points.expired |
Points expired on ledger |
loyalty.reward.created |
Reward catalog item created |
loyalty.reward.updated |
Reward catalog item updated |
loyalty.reward.deleted |
Reward soft-deleted |
loyalty.reward.redeemed |
Reward redeemed (points debited) |
loyalty.reward.fulfilled |
Redemption fulfilled |
loyalty.reward.redemption_cancelled |
Redemption cancelled / refunded |
loyalty.campaign.created |
Campaign created |
loyalty.campaign.updated |
Campaign updated |
loyalty.campaign.deleted |
Campaign soft-deleted |
loyalty.campaign.applied |
Campaign applied (points granted) |
loyalty.referral.rewarded |
Referral bonuses granted |
loyalty.wallet.opened |
Wallet account opened |
loyalty.wallet.credited |
Wallet credited |
loyalty.wallet.debited |
Wallet debited |
loyalty.wallet.adjusted |
Wallet adjusted |
loyalty.wallet.transferred |
Wallet transfer |
loyalty.wallet.closed |
Wallet soft-closed |
Full list: backend/services/loyalty/app/events/types.py
Communication (Phase 8)
| event_type | Description |
|---|---|
communication.message.queued |
Message enqueued |
communication.message.sent |
Accepted by provider |
communication.message.delivered |
Delivery confirmed |
communication.message.failed |
Terminal failure |
communication.message.cancelled |
Cancelled |
communication.provider.failover |
Provider failover |
communication.otp.generated |
OTP issued |
communication.otp.verified |
OTP verified |
communication.queue.dead_letter |
Queue DLQ |
communication.webhook.received |
Inbound webhook |
Full list: backend/services/communication/app/events/types.py
Future (reserved)
| Restaurant | order.placed, order.completed |
| Ecommerce | order.placed, product.updated |
| Notification | notification.delivered (prefer Communication delivery events) |
When adding events: update this catalog, module registry producers/consumers, and contracts in the same phase.
Related Documents
Delivery & Fleet Platform (delivery)
| Event | When |
|---|---|
delivery.organization.created |
Delivery organization created |
delivery.organization.updated |
Delivery organization updated |
delivery.hub.created |
Hub created |
delivery.hub.updated |
Hub updated |
delivery.external_provider.registered |
External provider registered |
delivery.external_provider.updated |
External provider updated |
delivery.routing_engine.registered |
Routing engine registration created |
delivery.routing_engine.updated |
Routing engine registration updated |
delivery.configuration.created |
Configuration created |
delivery.configuration.updated |
Configuration updated |
delivery.setting.upserted |
Setting upserted |
delivery.driver.created |
Driver profile created |
delivery.driver.updated |
Driver profile updated |
delivery.driver.status_changed |
Driver status transition |
delivery.driver.activated |
Driver activated |
delivery.driver.suspended |
Driver suspended |
delivery.driver.resumed |
Driver resumed |
delivery.driver.deactivated |
Driver deactivated |
delivery.driver.blocked |
Driver blocked |
delivery.driver.unblocked |
Driver unblocked |
delivery.driver.archived |
Driver archived |
delivery.driver.deleted |
Driver soft-deleted |
delivery.driver.credential_added |
Driver credential registered |
delivery.driver.document_attached |
Driver document metadata attached |
Payment Platform (payment) — planned
Normative contract payloads: payment-contracts.md. Architecture: ADR-020, ADR-021.
| Event | When |
|---|---|
payment.workspace.enabled |
Payment workspace enabled for tenant |
payment.workspace.disabled |
Payment disabled for tenant |
payment.workspace.suspended |
Payment workspace suspended |
payment.bundle.activated |
Tenant payment bundle activated |
payment.bundle.deactivated |
Tenant payment bundle deactivated |
payment.feature_toggle.changed |
Operational feature toggle changed |
payment.psp_provider.registered |
PSP type registered in catalog |
payment.psp_connection.created |
BYO-PSP connection created |
payment.psp_connection.activated |
BYO-PSP connection activated |
payment.psp_connection.suspended |
BYO-PSP connection suspended |
payment.psp_routing.updated |
Routing policy updated |
payment.provider_assignment.changed |
Active provider assignment changed |
payment.merchant_account.created |
Facilitator merchant account created |
payment.merchant_account.activated |
Merchant account activated |
payment.request.created |
Payment intent created |
payment.request.redirect_issued |
Redirect/token issued to payer |
payment.request.paid |
Payment verified paid |
payment.request.failed |
Payment failed or expired |
payment.request.cancelled |
Payment request cancelled |
payment.callback.received |
PSP callback received |
payment.callback.verified |
Callback signature verified |
payment.transaction.recorded |
Ledger transaction recorded |
payment.ledger.entry_appended |
Append-only ledger entry |
payment.refund.requested |
Refund initiated (14.6+) |
payment.refund.succeeded |
Refund completed |
payment.refund.failed |
Refund failed |
payment.split.allocated |
Split allocation computed (14.7+) |
payment.settlement_batch.created |
Settlement batch opened |
payment.settlement_batch.closed |
Settlement batch closed |
payment.checkout_session.created |
Checkout session created (14.8+) |
payment.checkout_session.completed |
Checkout session completed |
payment.reconciliation.completed |
Reconciliation run completed (14.9+) |
payment.accounting_intent.created |
Accounting posting intent emitted |
payment.analytics.snapshot.created |
Analytics snapshot refreshed (14.10+) |