The webhooks feature must be enabled using a feature flag on your Ripple Custody instance. Contact your Ripple liaison if you're unable to access the feature by performing the steps in the following section.
Webhooks are lightweight HTTP callbacks that allow real-time delivery of event notifications to your systems. Use this page to manage webhook channels in the Ripple Custody beta UI.
You can select from a wide range of events that you want to subscribe to and configure a webhook URL. Once you complete the setup, Ripple Custody will automatically send minimal event payloads to your registered endpoint when the selected events occur.
You can subscribe to many event types when configuring a webhook. For detailed information about each event type and complete payload structures, see Event tracking for a complete list.
For intent state changes, subscribe to IntentUpdated to receive updates when an intent is approved or rejected. Subscribe to IntentClosed to receive updates when an intent reaches its final state.
Event payloads are minimal and designed for easy parsing.
The following sample shows a typical payload for an intent creation event:
{
"domainId": "25aaec0d-e8dc-44b6-8070-9231f1ddadf0",
"id": "03424a3f-bdfc-4521-b8b2-933a8ff13cce",
"payload": {
"id": "35e4d8d9-f943-484b-865c-c736679ba0cc",
"type": "IntentCreated"
},
"savedAt": "2025-03-07T14:22:37.389Z",
"sequenceNumber": 369
}Payload fields:
| Field | Description |
|---|---|
domainId | The unique identifier of the domain where the event originated |
id | The ID of the webhook notification |
payload.id | The ID of the event |
payload.type | The type of event (e.g., IntentCreated, IntentUpdated) |
savedAt | The timestamp when the webhook notification was sent |
sequenceNumber | The sequence in which this event occurred |
Make sure your webhook endpoint is properly secured to prevent unauthorized access. Validating incoming requests and using HTTPS are just a few ways in which you can secure your endpoints.
If a webhook delivery fails (for example, if your endpoint is down or returns an error), Ripple Custody automatically retries delivery using an exponential backoff strategy.
- Initial delivery attempt — Ripple Custody sends the event to your webhook endpoint.
- Retry on failure — If delivery fails, the system waits and retries using exponential backoff.
- Maximum retries — After the maximum number of retry attempts is exhausted, the event delivery status is marked as
FAILEDand automatic retries stop.
The retry mechanism uses exponential backoff with the following default parameters:
| Parameter | Default | Description |
|---|---|---|
| Max retries | 3 | Number of retry attempts before marking as FAILED |
| Initial interval | 500 ms | Wait time before the first retry |
| Multiplier | 2 | Factor applied to increase wait time between retries |
| Max interval | 5000 ms | Upper limit for wait time between retries |
Example with defaults: If delivery fails, the system retries after 500 ms, then 1000 ms, then 2000 ms (capped at 5000 ms if exceeded).
Retry parameters are configured at the instance level and require coordination with Ripple teams to modify. Contact your Ripple partner engineer if you need to adjust retry behavior for your deployment.
If webhook delivery fails after all retries are exhausted, you have two options to recover missed events:
| Recovery method | Description |
|---|---|
| Events API | Use the List events API to retrieve events that occurred during the downtime. Filter by time range or sequence number to identify missed events. |
| AMQP queue | If your deployment includes an AMQP queue integration, you can inspect the queue to recover missed events. Contact Ripple support for assistance with AMQP-based recovery. |
Best practice: Implement a reconciliation process that periodically calls the Events API to verify your system has received all expected events. This provides a safety net for any delivery failures.
You must be a user with the role eds-manager to create and manage webhooks for your domain.
To register a webhook:
- In the top nav bar of the Ripple Custody UI, select Try beta version.
- In the top right, select Settings > Event Distribution.
- On the Event distribution page, under the Webhooks tab, select Add webhook.

- On the Select events page, select the events you want to receive webhook notifications for, and select Continue.

- In the Configure channel step, enter the webhook endpoint information:
- In the Endpoint name field, enter a descriptive name for the webhook you're creating.
- In the Endpoint URL field, enter the webhook URL where you want to receive the event information.

- Select Submit to finish configuring your webhook.
Your webhook is successfully set up when you see a message at the bottom of your screen indicating that your webhook was created.
To update an existing webhook:
- In the top nav bar of the Ripple Custody UI, select Try beta version.
- In the top right, select Settings > Event Distribution.
- On the Event distribution page, under the Webhooks tab, select the webhook you want to edit.

- Select the action you want to take:
- Edit the list of events that you've subscribed: Select Edit webhook.
- Send a test event, change the webhook's active status, or delete the webhook: Select the overflow menu and select the desired option.

Want to manage webhooks with the API instead? See Manage webhooks with the API.