List a connection's webhook events
The processor_connections.events.list operation: GET /api/v1/processor_connections/{id}/events in the REST API and the processor_connections_events_list tool in the MCP server.
/api/v1/processor_connections/{id}/eventsLists the verified webhook events a processor connection received, newest first: the processor's event ID and
type, what Ownrecord made of it (normalizedKind), its status (pending, processed, failed with the
error) and the handlers that ran. Events with a bad signature are refused at the door and never listed. The
processor's payload isn't returned. Paginate with limit and starting_after.
At a glance
- REST:
GET /api/v1/processor_connections/{id}/events - MCP tool:
processor_connections_events_list - Operation ID:
processor_connections.events.list - Scope: Legal entity
- Permission:
processors:read - Risk tier:
read - Dry run: Not supported
- Idempotency: Not needed (read only)
- Modes: Test and live
- Pagination:
limit(at most 100) andstarting_after - Authentication: API key with the
processors:readscope - Since: M4
Request
Path parameters
| Field | Type | Description |
|---|---|---|
id | pcon_… ID |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
limit | integer (1 to 100) | No | |
starting_after | pevt_… ID | No |
Response
200 OK with a JSON object, a page of the list (newest first):
| Field | Type | Description |
|---|---|---|
object | "list" | |
data | array of object | |
data[].id | pevt_… ID | |
data[].object | "processor_event" | |
data[].connectionId | pcon_… ID | |
data[].processor | one of stripe, mollie, fake | |
data[].externalEventId | string | |
data[].type | string | |
data[].normalizedKind | string or null | |
data[].status | one of pending, processed, failed | |
data[].attempts | integer (at least 0) | |
data[].handlers | array of string | |
data[].error | object or null | |
data[].receivedAt | date-time | |
data[].processedAt | date-time or null | |
has_more | boolean | |
next_cursor | pevt_… ID or null |
Examples
Recent events
GET /api/v1/processor_connections/pcon_01m4vyt4mxe0s9zzk90373z6p6/events?limit=20
Authorization: Bearer or_test_…
Response (200):
{
"object": "list",
"data": [
{
"id": "pevt_01m4vyt4mxe0s9zzk90373z6p8",
"object": "processor_event",
"connectionId": "pcon_01m4vyt4mxe0s9zzk90373z6p6",
"processor": "stripe",
"externalEventId": "evt_3ExampleEvent0001",
"type": "payment_intent.succeeded",
"normalizedKind": "payment.succeeded",
"status": "processed",
"attempts": 1,
"handlers": [],
"error": null,
"receivedAt": "2026-10-14T12:05:00.000Z",
"processedAt": "2026-10-14T12:05:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
resource_not_found | 404 | No such connection for this entity in this mode. | Check the ID and that your credentials are scoped to the right organization, entity, brand and mode. |
validation_failed | 400 | A pagination value is invalid. | Fix the fields listed in details.issues and send the request again. |
scope_required | 400 | The request names no legal entity. | Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (details.required_scope). |
permission_denied | 403 | You can't see processor connections here. | Ask an organization owner or admin for a role or scope that allows this action. |
It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, dry_run_not_supported, rate_limited, internal_error.