Skip to main content
POST
Cancel a Journey Enrollment
Send exactly one of idempotencyKey or externalId. An external id can belong to several enrollments over time, for example a lead enrolled again, and every active one carrying it ends. The enrollment ends with reason cancelled, and the reason you send shows in the contact’s history.

Authorizations

Authorization
string
header
required

Your API key, sent as Authorization: Bearer YOUR_API_KEY

Path Parameters

key
string
required

The journey's key, such as appointment-confirmations. It is shown on the journey's Enrollment tab.

Body

application/json
idempotencyKey
string | null

The key the enrollment was created with. Send this or externalId.

Maximum string length: 255
externalId
string | null

The enrollment's external id. Send this or idempotencyKey.

Maximum string length: 255
reason
string | null

Why the enrollment was cancelled. Shown in the contact's history.

Maximum string length: 500

Response

The enrollment ended, or had already ended.

enrollmentId
string
required

The enrollment's id. Empty when the contact was skipped.

status
enum<string>
required

active while the journey is working the contact, ended once it finished, skipped when the contact could not be enrolled.

Available options:
active,
ended,
skipped
endedReason
string | null
required

Why the enrollment ended, such as goal_met, opted_out, cancelled, total_cap or exhausted.

skippedReason
string | null
required

Why the contact was not enrolled, in words, such as Active in another journey.

created
boolean
required

True when this request created the enrollment.

nextTouchAt
string<date-time> | null
required

When a call or text is going out right away. Null when the next step is later; it is planned when it comes due.

contact
object | null
required

The contact's time zone, when known.

Last modified on October 19, 2026