Triggered whenever a disbursement’s status changes. Your API will receive a POST request at the webhook URL you configured when subscribing to disbursement events.
Each status transition has its own event type in the acceptance.disbursement.* family, allowing you to subscribe to only the events you care about:
acceptance.disbursement.pending — the disbursement has been accepted and is awaiting settlementacceptance.disbursement.succeeded — the disbursement has settled onchainacceptance.disbursement.failed — the disbursement could not be completed (includes error details)Security: Webhook requests include an X-Hook0-Signature header containing an HMAC-SHA256 signature of the request body using your webhook secret. Always verify this signature before processing webhook events.
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
The disbursement resource at the time the event was emitted. The payload always includes the full disbursement summary; on failed events the error field is populated, and on succeeded events the onchainTransactions field is populated.
Webhook event payload sent whenever a disbursement's status changes. Each status transition has its own event type in the acceptance.disbursement.* family, allowing subscribers to selectively receive only the events they care about.
The type of webhook event. Each disbursement status transition maps to a distinct event type in the acceptance.disbursement.* family.
acceptance.disbursement.pending, acceptance.disbursement.succeeded, acceptance.disbursement.failed "acceptance.disbursement.succeeded"
Unique identifier for this webhook event. Use this for idempotency.
"123e4567-e89b-12d3-a456-426614174000"
When this event occurred (ISO 8601 format).
"2026-04-17T17:05:00.000Z"
The disbursement resource at the time the event was emitted.
{
"disbursementId": "disbursement_82c879c1-84e1-44ed-a8c2-1ac239cf09ad",
"source": {
"accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
"asset": "usdc"
},
"target": { "coinbaseUserId": "coinbase_user_abc123" },
"amount": "25.00",
"asset": "usdc",
"status": "succeeded",
"reason": "Goodwill disbursement for delayed shipment.",
"externalReferenceId": "disbursement-2026-04-1234",
"metadata": {
"customer_id": "cust_12345",
"order_id": "order_67890"
},
"createdAt": "2026-04-17T17:00:00.000Z",
"updatedAt": "2026-04-17T17:05:00.000Z",
"onchainTransactions": [
{
"transactionHash": "0xabc123def456789012345678901234567890abcdef1234567890abcdef123456",
"network": "base"
}
]
}Webhook received and processed successfully. Return a 200 status code to acknowledge receipt. If your endpoint does not return a 2xx status code, the webhook will be retried with exponential backoff.