Fires when an ecommerce order refund is processed. The eventType is ecommerce_order_refunded. Categories: COMMERCE, PAYMENT.
Deduplicate on event_id. Money is integer cents (84900 = $849.00). Do not treat a refund as a new purchase.
Field guarantees
| Field | Guarantee |
|---|---|
ecommerce_order_id, commerce_status, total_value_cents, currency, refund_amount_cents, refund_type | ✅ Always present |
payment_status | ⚠️ Conditional |
first_purchase, plan_type | ⚠️ Added by the v2 sanitizer when an ecommerce order is resolved |
attribution | ⚠️ Omitted when no tracking data was captured |
journey_id | ⚠️ Omitted when no journey relationship is resolved |
Payload (v2)
{
"event_type": "ecommerce_order_refunded",
"event_id": "evt::example",
"api_version": "2026-08-17",
"timestamp": "2026-05-26T12:00:00.000Z",
"timestamp_epoch": 1779796800,
"affiliate_id": "aff::example",
"patient_id": "pat::example",
"patient_external_id": "ext-patient-123",
"patient_marketing_consent": false,
"is_returning_patient": false,
"ecommerce_order_id": "eord::example",
"commerce_status": "refunded",
"total_value_cents": 4999,
"currency": "usd",
"payment_status": "refunded",
"refund_amount_cents": 4999,
"refund_type": "full"
}| Field | Type | Always? | Notes |
|---|---|---|---|
ecommerce_order_id, commerce_status | string | ✅ | |
total_value_cents, currency | number/string | ✅ | Integer cents. 4999 = $49.99. On this event total_value_cents is the refunded amount. |
refund_amount_cents | number | ✅ | Amount refunded |
refund_type | string | ✅ | e.g. full, partial |
payment_status | string | ⚠️ | e.g. refunded |
attribution | object | ⚠️ | See Attribution Passthrough. |
