01When does it fire?
- When a coupon is redeemed on a real order — once per redemption.
- The event is order-linked — it carries the order id, the receipt number and the customer CRM id.
02Full payload example
{
"id": "mwh:coupon-redeemed:9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b:b7c8d9e0-1f2a-4b3c-9d4e-5f6a7b8c9d0e",
"type": "coupon.redeemed",
"api_version": "v2",
"tenant_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b",
"data": {
"redemption_id": "b7c8d9e0-1f2a-4b3c-9d4e-5f6a7b8c9d0e",
"coupon_id": "0a9b8c7d-6e5f-4a3b-8c2d-1e0f9a8b7c6d",
"coupon_code": "WELCOME10",
"order_id": "3f0c8e6a-1d24-4b7f-9a3e-2c5b8d90f1aa",
"receipt_number": "RCP-20261020-1482",
"customer_phone": "+201001234567",
"customer_name": "Ahmed Mahmoud",
"customer_id": "3a4b5c6d-7e8f-4a9b-8c0d-1e2f3a4b5c6d",
"discount_amount": 50,
"redeemed_at": "2026-10-20T12:34:56.812450+00:00"
}
}03data fields
| Field | Meaning |
|---|---|
| redemption_id | The redemption id (UUID). |
| coupon_id / coupon_code | The coupon id and code. |
| order_id / receipt_number | The linked order and its receipt number. |
| customer_phone / customer_name / customer_id | The customer phone, name and their CRM id. |
| discount_amount | The discount value in the store currency. |
| redeemed_at | The redemption time, ISO 8601. |
04Event identity
Pattern: mwh:coupon-redeemed:<tenant_id>:<redemption_id> — once per redemption.
COMPLETE YOUR INTEGRATION
