Voucher¶
aggregate-root promotion
Value or benefit instrument issued, validated, redeemed, or cancelled.
Business Purpose: Support voucher management and voucher redemption across commerce and payment-adjacent flows.
Identity¶
| Type | Field | Description |
|---|---|---|
global |
voucher-id |
Globally unique voucher identifier, stable for the lifetime of the voucher. |
Attributes¶
| Attribute | Description |
|---|---|
voucher-id Voucher ID |
Stable voucher identifier. |
voucher-code Voucher Code |
Voucher code when applicable. |
amount Amount |
Voucher value when applicable. |
status Status |
Current voucher state. |
expires-at Expires At |
Date and time when the voucher expires. |
Lifecycle¶
issued → active → validated → redeemed → cancelled → expired
Invariants¶
stable-voucher-id— Voucher ID must remain stable for the lifetime of the voucher.single-redemption— A voucher must not be redeemed more than once unless explicitly configured for multiple use.
Relationships¶
| Type | Target |
|---|---|
applies-to |
basket basket |
Events¶
| Event | Classification | Terminal |
|---|---|---|
VoucherIssued |
created | — |
VoucherValidated |
calculated | — |
VoucherRedeemed |
transitioned | ✓ |
VoucherCancelled |
transitioned | ✓ |
Used by Capabilities¶
- voucher-management Voucher Management
Used by Processes¶
Used by Applications¶
- Promotion Engine
promotion-engine
Note
Aligned with existing voucher object and voucher-redemption process.
Referenced by APIs¶
| Endpoint | Method | Role | Capability |
|---|---|---|---|
/vouchers/{code}/validate |
POST | response |
voucher-management |