Webhooks::Incoming::ExternalPurchaseEvent

List Incoming External Purchase Events

Changed on

List the raw events received by one incoming external purchase endpoint. Events can exist without a ClickFunnels order; in that case order_id is null. Read a single event to get its raw payload.

get/webhooks/incoming/external_purchase_endpoints/{endpoint_id}/events

Request

Path parameters

endpoint_idstring required

Integer ID or obfuscated public ID of the incoming external purchase endpoint.

Query parameters

afterstring

ID of item after which the collection should be returned. More examples and info about pagination in our guides.

per_pageinteger

Records per page. Defaults to 20; raise it up to 100 for bulk reads. A larger value returns 100 records. Zero, a negative or a non-integer value is a 422. The Link next-page URL keeps the value, so a client following it keeps the page size. More in our guides.

sort_order'asc' | 'desc'

Sort order of a list response. Use 'desc' to reverse the default 'asc' (ascending) sort order. Examples in our guides.

sort_property'id' | 'updated_at'

Sort property of a list response. The default is id and thus the created_at order. If you sort by other properties, we additionally sort by id implicitly as a secondary sort property, so that you can rely on the sort order to be deterministic even if the main sort property ends up with the same values.

idstring
event_typestring
processing_statusstring

Filter by id, event_type or processing_status, like this: ?filter[event_type]=payment.succeeded&filter[processing_status]=success. All about filtering here.

Response

OK

idinteger

Event ID.

public_idstring

Obfuscated event ID.

workspace_idinteger

Workspace that owns the endpoint which received this event.

external_purchase_endpoint_idinteger

Incoming external purchase endpoint that received this event.

order_idinteger nullable

ClickFunnels order created or affected by this event, or null when no order is associated.

event_typestring nullable

Provider event type, when supplied by the provider.

external_event_idstring nullable

Provider's own ID for this delivery, when supplied. Use it to match an event against the provider's dashboard.

payloadunknown
processed_atstring date-time nullable

Time processing completed, or null while unprocessed or after a failed attempt.

processing_status'pending' | 'success' | 'processing_skipped' | 'decryption_failed' | 'processing_failed' | 'order_creation_failed' | 'refund_processing_failed' | 'chargeback_processing_failed' | 'duplicate_webhook_event' | 'creation_failed' | 'no_origin_order_processing_ignored' | 'null' nullable

Current or final processing outcome, or null before processing starts.

processing_errorsstring nullable

Why the event changed nothing, or null when no reason was recorded.

created_atstring date-time

Created at.

updated_atstring date-time

Updated at.

Example response

[
  {
    "id": 301,
    "public_id": "WhEvtA",
    "workspace_id": 42000,
    "external_purchase_endpoint_id": 81,
    "order_id": null,
    "event_type": "membership.activated",
    "external_event_id": "evt_abc123",
    "payload": {
      "id": "evt_abc123",
      "type": "membership.activated",
      "data": {
        "status": "active"
      }
    },
    "processed_at": null,
    "processing_status": null,
    "processing_errors": null,
    "created_at": "2026-08-26T12:30:00.000Z",
    "updated_at": "2026-08-26T12:30:00.000Z"
  }
]

Changes