Transaction Webhooks Are Now Available
API users can now register a callback URL and receive a notification the instant a transaction settles, instead of polling the status endpoint.
Previously, finding out whether a recharge succeeded meant calling /sendapi/status repeatedly. At five second intervals over two minutes, that is twenty-four requests per transaction, twenty-three of which tell you nothing new.
Now: one signed POST to your URL, sent the moment the outcome is known.
{
"event": "transaction.success",
"request_id": "BD030823122153128",
"transaction_id": "TRX8891042",
"number": "01743739873",
"amount": 100.00,
"cost": 98.40,
"status": 1,
"status_text": "success",
"settled_at": "2026-08-04 13:20:48"
}
request_id is the id you sent with the original request — match on that one. transaction_id is our reference, useful for raising a dispute.
Each request carries X-MITLoad-Signature: sha256=<hmac> computed over the raw body with your secret. Check it before acting on anything. An unverified endpoint lets anyone POST a fake success.
A delivery is successful on any 2xx response. Anything else is retried after 1, 5, 15, 60, 180 and 360 minutes, then abandoned. Because retries happen, your handler must be idempotent — key on request_id and ignore anything already settled.
/sendapi/status is not going anywhere. The recommended setup is webhooks for the normal path plus a status sweep every ten minutes for anything still pending on your side. That survives an outage on either end.
Full details are in the API documentation.