Skip to main content

Overview

Why Use Webhooks?

⚡ Real-time Updates

Receive notifications instantly when events happen

🔄 Automatic Retries

Failed deliveries are automatically retried

🔒 Secure Verification

Every webhook includes a signature to verify authenticity

📊 Event Logging

Complete history of all webhook deliveries

🎯 Selective Events

Subscribe only to the events you care about

🚀 Scalable

Handle high-volume event streams

Event Types

Address Events

Master Wallet Events

Address Settlement Rule Events

Master Settlement Rule Events

Wildcard Subscriptions

Webhook Payloads

Address Incoming Transfer Example

Master Swap Executed Example

Settlement Rule Executed Example

Setting Up Webhooks

Via Dashboard

1

Navigate to Webhooks

Go to Settings > Webhooks in the dashboard
2

Create Webhook

Click the Create Webhook button
3

Configure Webhook

Fill in the webhook details:
  • URL: Your endpoint URL (must be HTTPS)
  • Name: A descriptive name
  • Event Types: Select the events you want to receive
4

Copy Secret

Copy the generated webhook secret for signature verification
5

Save and Test

Click Save and test your webhook with a test event

Via API

Response:

Managing Webhooks

List Webhooks

Get Webhook Details

Update Webhook

Rotate Webhook Secret

Signature Verification

Why Verify Signatures?

Webhook signatures ensure that requests truly come from XentFi and not an imposter.

Verification Code Example

Retry Logic

Retry Schedule

Webhook Events & Retries

You can monitor webhook event delivery status:
Response:

Get Webhook Event Details

Best Practices

  • Always verify signatures - Never trust unverified webhooks
  • Respond quickly - Return 2xx within 5 seconds
  • Idempotent processing - Handle duplicate webhooks gracefully
  • Log all webhooks - Keep audit trail for debugging
  • Monitor failures - Set up alerts for failed deliveries
  • Queue processing - Use message queues for async handling
  • Keep endpoints public - Must be accessible from the internet

Webhook Headers

Event Delivery Status

Troubleshooting

Possible causes:
  • Endpoint not publicly accessible
  • Firewall blocking requests
  • Invalid URL format
  • Webhook not active
Solutions:
  • Verify URL is accessible from internet
  • Check firewall rules
  • Ensure URL includes https://
  • Verify webhook is active in dashboard
Possible causes:
  • Wrong secret used
  • Payload body modified
  • Encoding issues
Solutions:
  • Rotate and update secret
  • Use raw request body
  • Verify JSON stringification
Solutions:
  • Implement idempotency using webhook ID
  • Check for processed flag in your database
  • Use unique constraint on webhook ID
Solutions:
  • Process webhooks asynchronously
  • Use message queue (RabbitMQ, SQS)
  • Return 202 Accepted for long processing

API Reference

Payment Links

Payment event notifications

Auto Settlement

Settlement event notifications

Master Wallets

Wallet event notifications

Next Steps