Skip to main content

List Webhook Deliveries

Lists the webhooks a custody provider has delivered to the platform and what came of each, newest first. The request snapshot (headers, body) is left out of the rows; read one delivery with Get Webhook Delivery.

One delivery can produce more than one row: each processing side records its own outcome, so a delivery may appear once per context (admin, user). webhook_id ties those rows together.

Platform owner only. The caller's node must be the platform root node; any other caller is refused with 403 / 10005.

Required permission: custodial-wallet:view

Request​

GET /v2/admin/custodial-wallets/{provider}/webhook-logs

Parameters​

NameTypeInDescription
providerstringpathRequired. Provider key: rudiq or taurus
pageintegerqueryRequired. Page number, starting at 1
per_pageintegerqueryRequired. Items per page, 1–100
contextstringqueryOnly rows of this processing side: admin or user
statusesstringqueryOnly rows with these outcomes: processed, unmatched, skipped, failed. Repeat the parameter for several (statuses=failed&statuses=skipped)
transaction_idstringqueryOnly rows for this Custody Transaction ID: the id custody returned when it accepted the operation

Headers​

NameDescription
AuthorizationRequired. Bearer <access_token>

Example​

curl --request GET \
--url '{{baseUrl}}/v2/admin/custodial-wallets/rudiq/webhook-logs?page=1&per_page=20&statuses=failed&statuses=skipped' \
--header 'Authorization: Bearer <access_token>'

Response​

{
"data": [
{
"id": "6911c1a7e4b0f51d2c8a7f10",
"webhook_id": "8d0c6a52-3f7e-4b19-9a2d-51e4c7b0f3a6",
"context": "admin",
"provider": "rudiq",
"source_ip": "10.42.3.17",
"transaction_id": "4c1a9b4e-0000-4000-8000-00000000abcd",
"custody_transaction_id": "9b2e7d14-0000-4000-8000-0000000017f3",
"gas_fee_wei": "52341000000000",
"gas_fee_native": "0.000052341",
"transaction_hash": "0x5b8e2f4c1d9a7b3e6f0a2c4d8e1b3f5a7c9d0e2f4a6b8c0d1e3f5a7b9c2d4e6f",
"transaction_type": "deploy_contract",
"transaction_status": "completed",
"status": "processed",
"received_at": "2026-11-09T09:41:22.508Z",
"created_at": "2026-11-09T09:41:22.734Z"
}
],
"total": 1,
"page": 1,
"per_page": 20
}

Response Fields​

FieldTypeDescription
dataarrayDelivery rows on this page
data[].idstringRow id; pass it to Get Webhook Delivery
data[].webhook_idstringThe sender's id for the delivery, shared by the rows of each processing side
data[].contextstringProcessing side that wrote the row: admin or user
data[].providerstringProvider key
data[].source_ipstringIP address the delivery came from
data[].transaction_idstringCustody Transaction ID: the id custody returned when it accepted the operation, and the key the platform matches its transaction on
data[].custody_transaction_idstringCustody's own row id for the transaction. Omitted when custody sent none
data[].external_idstringCustody's reconciliation id. Omitted when custody sent none
data[].gas_fee_weistringGas fee custody paid, in wei. Omitted when custody sent none
data[].gas_fee_nativestringGas fee custody paid, in the network's native currency. Omitted when custody sent none
data[].transaction_hashstringOn-chain transaction hash
data[].transaction_typestringCustody's type for the operation, verbatim (e.g. transfer, deploy_contract, execute_contract)
data[].transaction_statusstringCustody's status for the operation, verbatim
data[].statusstringOutcome on this processing side: processed (matched and applied), unmatched (no transaction of this side has the id), skipped (matched but deliberately not applied, e.g. already final) or failed (processing returned an error)
data[].errorstringWhy processing failed. Omitted when there is no error
data[].received_atstringWhen the delivery reached the platform (ISO 8601)
data[].created_atstringWhen the row was written (ISO 8601)
totalintegerNumber of rows matching the filters
pageintegerPage number sent in the request
per_pageintegerPage size sent in the request

Errors​

StatusCodeDescription
40010015Validation failed (page / per_page missing or out of range) — see details. Also: unsupported provider key
40310005The caller is not the platform owner (domain 2)

See Errors for the error format and common codes.