Skip to content
English
  • There are no suggestions because the search field is empty.

Reloadly Webhook

Get instant updates on any async pending transactions through the Reloadly webhook

Developers · Webhooks

Stop polling. Let Reloadly tell you when something happens

What a webhook actually is, how to set one up, and the rules your endpoint needs to follow to receive transaction status reliably.

Setup time

~15–30 minutes

Level

Technical

You'll need

An HTTPS endpoint

What exactly is a webhook?

A webhook (also called a web callback or HTTP push API) is a way for an app to give other applications real-time information. Instead of you asking "is it done yet?" over and over, a webhook pushes data to your system the moment something happens.

With a typical API, you'd need to poll constantly to check a transaction's status. Reloadly's webhook flips that around: we send you the update, which makes communication more efficient for both sides.

ℹ️ Worth the setup: the only real drawback to webhooks is the initial setup. Once it's running, you stop burning API calls on status checks entirely.
1

Create the webhook endpoint

Build an HTTPS URL on your own server that's ready to receive POST requests from Reloadly. Follow the developer guide for creating the endpoint for the exact request/response shape to expect.

2

Configure the webhook on your dashboard

Once your endpoint exists, register it with Reloadly in 3 steps. See the configuration guide for full reference.

 
Dashboard Wallet Top-up
Security Developers Sandbox
API Keys Webhooks API Logs

Webhooks

Set up your webhook endpoint to receive live events from Reloadly.

API client secret

••••••••••••••
📋 Copy

Rotate client secret

🔗 Webhooks

😕

No webhooks configured.

From Developers → Webhooks, click Add Endpoint (top right). Add the URL of your endpoint, select which service it covers, and pick the event(s) you want notifications for. Your webhook signature secret — used to verify every event actually came from Reloadly — is also available on this screen.

💡 Tip: the API client secret on this page and your webhook signature secret are different things — the client secret authenticates your API calls, the signature secret verifies incoming webhook payloads.
3

Handle incoming callbacks correctly

Once configured, Reloadly sends a callback (JSON payload) for every event you specified. If you have multiple webhooks set up, always confirm the event type on the callback matches what you're listening for before acting on it.

Your endpoint must respond quickly with an HTTP 200 to acknowledge receipt. If it doesn't, Reloadly treats it as a failure and retries — up to 10 times total. After the 10th unanswered attempt, Reloadly stops trying and assumes the message was consumed successfully.

⚙️ Requirements for consuming airtime status

  1. Your endpoint must be idempotent — messages are delivered with "at least once" semantics, so you may receive the same callback more than once.
  2. On receiving a callback, respond with an HTTP 2xx status to acknowledge the transaction status message.
  3. If you don't return a 2xx, Reloadly retries up to 10 times. After that, no further attempts are made for that transaction.
  4. Return the HTTP status immediately and process the data asynchronously. Don't do heavy processing in the same thread that received the callback — if you hold the connection open longer than 3 seconds, Reloadly terminates the call and assumes the message was consumed successfully.

Important: a slow or unresponsive endpoint looks identical to Reloadly as a "successfully consumed" message after 3 seconds — so a thread that's just slow, not actually broken, can silently miss the retry mechanism. Keep your endpoint fast and push real work to a background job.

Updating your webhook domain

You can change the domain from your dashboard under Developers. One important limitation: Reloadly can't support multiple domains for the same event type — whichever URL is currently configured (old or new) is the one that receives the transaction status update.

ℹ️ Recommended approach: test the new domain in Sandbox first using test transactions. Once you've confirmed it works, switch the production configuration over to the new domain.

Stuck setting up your webhook?

Our support team can help you troubleshoot the integration.

Contact support →