Skip to main content

Changelog

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

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.