Skip to main content
Rhino.fi webhooks send real-time transaction status events to your server, covering deposit detection, settlement confirmation and action outcomes for Smart Deposit Addresses and bridge transfers. To receive them, you set up an HTTP endpoint that accepts POST requests from Rhino.fi, processes the payload and responds. This page covers the requirements and best practices.

Requirements

Endpoint

Your endpoint must accept POST requests at the path /rhinofi-event. When you register your webhook, enter only the base URL. Rhino.fi adds /rhinofi-event for you (see Subscribe to webhooks). Each request includes an X-Rhino-Signature header, which you use to verify the request. The request body looks like this:
See the events list for every WebhookEvent. Your endpoint must return a 204 status with no content.

HTTPS only

Your endpoint must use HTTPS. Rhino.fi does not send webhooks to HTTP endpoints.

Public access

Your endpoint must be reachable from the internet. Use the signature header to confirm that each request comes from Rhino.fi. You can rate-limit the endpoint to prevent abuse, but make sure the limits don’t block Rhino.fi’s requests.

Reliable uptime

Keep your server available. Failed deliveries are retried a few times, but if they keep failing, the event is not delivered again. If your server was down, use get missed events to recover anything you missed.

Best practices

  • Verify every request. Reject any request whose signature doesn’t verify.
  • Respond quickly. Return 204 as soon as you’ve received and stored the event, and do any slow processing afterwards. This avoids timeouts and unnecessary retries.
  • Handle duplicates. Because failed deliveries are retried, you may receive the same event more than once. Use eventId to skip events you’ve already processed.
  • Recover after downtime. After any outage, fetch missed events and process them.

Next steps