# Webhooks

Webhooks send real-time notifications to your systems when events occur in your Ripple Custody (Wallet) organization. Instead of polling the API, your server receives automatic updates for transactions, wallets, and approvals.

In this section
- [Manage webhooks via the console](/pt-br/products/wallet/integrations-and-monitoring/webhooks/manage-webhooks) — Create, view, and delete webhooks in the console
- [Manage webhooks via the API](/pt-br/products/wallet/integrations-and-monitoring/webhooks/manage-webhooks-api) — Create webhooks, add and delete subscriptions, and check delivery health through the API
- [Receive webhook deliveries](/pt-br/products/wallet/integrations-and-monitoring/webhooks/receive-webhook-deliveries) — Build an endpoint that verifies signatures, handles retries, and processes events safely
- [Webhook event reference](/pt-br/products/wallet/integrations-and-monitoring/webhooks/webhook-event-reference) — The delivery envelope, and the events and payloads for each domain


To connect your wallets to decentralized applications (dApps), see [Manage connections](/pt-br/products/wallet/integrations-and-monitoring/connections). For programmatic API access, see the [API documentation](/pt-br/products/wallet/get-started/use-the-api).

## What are webhooks?

A webhook is an automated message that Ripple Custody (Wallet) sends to your back-end systems whenever a specific event occurs on the platform. The system sends the message, or payload, to a URL on your server that you designate to receive webhook events.

Use webhooks instead of polling the API for status changes. For production integrations, webhooks are more efficient and timely than polling: your systems learn about new wallets, deposits, withdrawals, and approval decisions as they happen, without repeatedly checking the API or the console.

## How delivery works

When a subscribed event occurs, for example when a transaction status changes, Ripple Custody (Wallet) sends an HTTPS `POST` request to your webhook's endpoint. The request body is a JSON envelope that carries the event details as a base64-encoded payload. Ripple Custody (Wallet) signs each delivery so that you can verify it came from the platform, and retries deliveries that your endpoint doesn't acknowledge. For what your endpoint must do, see [Receive webhook deliveries](/pt-br/products/wallet/integrations-and-monitoring/webhooks/receive-webhook-deliveries).

Your API client calls the Ripple Custody (Wallet) API, Ripple Custody (Wallet) pushes events to your webhook receiver, and dApps interact with your wallets through [WalletConnect connections](/pt-br/products/wallet/integrations-and-monitoring/connections).

```mermaid
flowchart LR
    subgraph your["Your Systems"]
        API["API Client"]
        WH["Webhook Receiver"]
    end

    subgraph palisade["Ripple Custody (Wallet)"]
        PAPI["Ripple Custody (Wallet) API"]
        WHE["Webhook Engine"]
    end

    subgraph dapps["dApps"]
        DAPP["DeFi / NFT / Web3"]
    end

    API -->|"OAuth + REST"| PAPI
    WHE -->|"POST Events"| WH
    DAPP <-->|"WalletConnect"| palisade
```

## Subscription domains

When you create a webhook, you subscribe it to one or more domains. Each domain sends notifications when the corresponding resource changes state.

| Domain | Sends a notification when | Details |
|  --- | --- | --- |
| `TRANSACTION` | A transaction, such as a transfer, deposit, or withdrawal, moves to a new status, from creation to confirmation | [Transaction domain](/pt-br/products/wallet/integrations-and-monitoring/webhooks/webhook-event-reference#transaction-domain) |
| `WALLET` | A wallet moves to a new status during creation and provisioning | [Wallet domain](/pt-br/products/wallet/integrations-and-monitoring/webhooks/webhook-event-reference#wallet-domain) |
| `APPROVAL` | An approval request is created or updated, including when it's resolved | [Approval domain](/pt-br/products/wallet/integrations-and-monitoring/webhooks/webhook-event-reference#approval-domain) |


## Webhooks vs. audit logging

Ripple Custody (Wallet) offers two notification mechanisms. Use both together for complete visibility.

| Feature | Webhooks | Audit logging |
|  --- | --- | --- |
| **Delivery** | Real-time HTTPS push to your endpoint | Ripple Custody (Wallet) batches deliveries to AWS Firehose (~15 second buffer) |
| **Scope** | Subscribed event types only (transactions, wallets, approvals) | All API calls and console actions |
| **Use case** | Trigger downstream workflows, such as updating your database when a transaction confirms | Compliance reporting, incident investigation, access review |
| **Retention** | Your endpoint processes and stores | Your Firehose destination (S3, Splunk, etc.) |


See [Audit logging](/pt-br/products/wallet/integrations-and-monitoring/audit-logging) for Firehose setup.