Fires when a patient starts checkout for a journey. The eventType is journey_checkout_started.
v1 and v2 payloads are identical for journey events. These are journey-native events built on the flat, sanitized payload shape — there is no separate raw-envelope form. The same payload below is delivered regardless of the webhook's payload version.
See Attribution Passthrough for inbound URL params, the attribution block, and compliance guidance.
Field guarantees
| Field | Guarantee |
|---|---|
event_type, api_version, timestamp, journey_id, affiliate_id, template_id, patient_marketing_consent, is_returning_patient, total_value_cents, currency, products | ✅ Always present |
template_display_name, journey_type, patient_id, patient_external_id, started_at, coupon_code, attribution | ⚠️ Conditional — omitted when the underlying data is absent |
Payload (v1 and v2)
{
"event_type": "journey_checkout_started",
"api_version": "2026-08-06",
"timestamp": "2026-05-26T12:00:00.000Z",
"journey_id": "jour::example",
"affiliate_id": "aff::example",
"template_id": "jtmp::example",
"template_display_name": "Weight Loss Program",
"journey_type": "ONE_TIME",
"patient_id": "pat::example",
"patient_external_id": "ext-patient-123",
"patient_marketing_consent": true,
"is_returning_patient": false,
"started_at": "2026-05-26T12:00:00.000Z",
"total_value_cents": 4999,
"currency": "usd",
"products": [
{ "product_variation_id": "epv::example", "display_name": "Weight Loss Program", "quantity": 1, "unit_price_cents": 4999, "is_addon": false }
],
"coupon_code": "WELCOME20",
"attribution": {
"first": {
"captured_at": "2026-01-04T10:22:31.000Z",
"params": {
"telegra_utm_source": "google",
"telegra_utm_medium": "cpc",
"gclid": "Cj0KCQexample",
"fbp": "fb.1.1700000000.1234567890"
}
},
"last": {
"captured_at": "2026-03-11T18:02:55.000Z",
"params": {
"telegra_utm_source": "facebook",
"fbclid": "IwARexample",
"fbp": "fb.1.1700000000.1234567890",
"fbc": "fb.1.1700000000.IwARexample"
}
},
"touch_count": 2,
"visitor_id": "550e8400-e29b-41d4-a716-446655440000"
}
}| Field | Type | Always? | Notes |
|---|---|---|---|
journey_id, template_id, affiliate_id | string | ✅ | |
total_value_cents, currency | number/string | ✅ | |
products | array | ✅ | Line items; each {product_variation_id, display_name, quantity, unit_price_cents, is_addon} |
template_display_name, journey_type | string | ⚠️ | From the template if resolvable |
patient_id, patient_external_id | string | ⚠️ | Present when the journey has a patient |
started_at | string (ISO-8601 date-time) | ⚠️ | |
coupon_code | string | ⚠️ | Only when a coupon is applied |
attribution | object | ⚠️ | First/last-touch tracking params; omitted when the journey has none. See Attribution Passthrough. |
