Skip to main content

Changelog

Changes to the API and to this documentation, newest first.

2026-09-02

API

  • Status webhooks are retried: up to three attempts, with pauses of 10 and 60 seconds. A repeat happens only on a broken connection, a timeout, 5xx or 429; success is strictly 200. Handlers have to be idempotent. See Webhook, Verify (OTP) and Callbacks.

Documentation

  • Callbacks — new section Delivery report by URL. The report was documented only in its email form, although the gateway posts it to the notification address for every message of the account, whatever API sent it. The claim that the JSON webhook is sent instead of these callbacks was wrong: both are sent.
  • Send OTP Code (WhatsApp) — rewritten. type: whatsapp is not a message type and is rejected with Invalid message type; WhatsApp is a stage of a pipeline request.
  • The delivery report to a URL and by email carries the time zone offset without a colon (+0300), the format was documented incorrectly.

2026-08-25

API

  • Webhook payload now includes success: true only when the message was delivered (DELIVERED, READ, REPLIED, PARTIALLY DELIVERED), otherwise false. See Webhook.
  • If an async packet has no id on any message, one webhook with request_id is sent instead of skipping the notification.

2026-08-24

API

  • The notification about a rejected message now has the same shape as a delivery status: a flat object with status: REJECTED and the reason in error. The success field and the nested data array are gone — one payload, one parser. See Webhook.
  • A rejected request now produces one notification per message that carried a hook, each with its own id. Previously one notification was sent per hook address, and the rest of the batch was reported to nobody.
  • The Verify (OTP) notification follows the same shape and now also carries status and updated.

2026-08-21

Documentation

  • New page Callbacks — incoming SMS to a dedicated number, Viber 2 Way replies, and the delivery report sent by email. None of these notifications were documented before.
  • Webhook — added the request_id, reply and duration fields; id and msg_id are strings, not numbers; added the delivery rules (one attempt, no retries, 5-second timeouts) and an example of a rejected message.
  • Verify (OTP) — documented the webhook that reports a rejected request.
  • Request examples on the JSON API pages now come with ready-to-run cURL, PHP, Python and Node.js snippets.
  • The receive, delete and price commands of the HTTP API were described as send by mistake.
  • Wap-Push is no longer documented.