{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-apis/biz-sms.yaml","sidebar":"sidebar-sidebar.yaml__apis_biz-sms"},"props":{"definitionId":"apis/biz-sms.yaml","dynamicMarkdocComponents":[],"baseSlug":"/apis/biz-sms","seo":{"title":"Biz SMS API","siteUrl":"https://docs.ecommunicate.co.za","lang":"en-ZA","image":"/assets/og-cover.93cb0a29e46afb76d2e2ad760ae643881a756bfe5784b4b0c3553ecb20635632.db81178d.png","keywords":["eCommunicate API","WhatsApp Business API","SMS API","omnichannel messaging","WhatsApp templates","messaging platform","South Africa messaging API","bulk SMS API","two-way SMS","SMS gateway","delivery receipts"],"meta":[{"name":"author","content":"eCommunicate (Pty) Ltd"},{"name":"robots","content":"index, follow"}],"jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.ecommunicate.co.za/#organization","name":"eCommunicate","url":"https://www.ecommunicate.co.za/","logo":"https://docs.ecommunicate.co.za/images/logo.png","sameAs":["https://www.ecommunicate.co.za/"],"contactPoint":{"@type":"ContactPoint","email":"support@ecommunicate.co.za","contactType":"customer support"}},{"@type":"WebSite","@id":"https://docs.ecommunicate.co.za/#website","name":"eCommunicate API Documentation","url":"https://docs.ecommunicate.co.za","publisher":{"@id":"https://www.ecommunicate.co.za/#organization"}}]},"llmstxt":{"hide":false,"title":"eCommunicate Omnichannel API","description":"Developer documentation for the eCommunicate Omnichannel platform — WhatsApp Cloud, WhatsApp Lite, SMS, Live Chat, and Conversations APIs.","sections":[{"title":"Guides","includeFiles":["guides/**/*.md"],"excludeFiles":[]},{"title":"Tutorials","includeFiles":["tutorials/**/*.md"],"excludeFiles":[]},{"title":"API Reference","includeFiles":["apis/**/*.yaml"],"excludeFiles":[]},{"title":"Changelog","includeFiles":["changelog.md"],"excludeFiles":[]}],"excludeFiles":[]}},"itemId":"","disableAutoScroll":true,"metadata":{"type":"openapi","title":"Biz SMS API","description":"**Biz SMS** (the eCommunicate Automated Interactive SMS gateway) is a batch-oriented HTTP SMS API built for high-volume, two-way campaigns with delivery receipts, reply routing via virtual numbers, scheduling, and credit/charge queries.\n\nIt is a distinct product from the JSON [SMS Gateway API](./sms.yaml) and the WhatsApp-centric [Omnichannel Integration API](./omnichannel.yaml).\n\nAn **Email-to-SMS** facility is also available — send an email addressed to `cellnumber@ecommunicate.biz` and the gateway sends the SMS. See the Biz SMS guide for details.\n\n## How it works\n\n- Requests are sent as **`application/x-www-form-urlencoded`** parameters\n  (\"keywords\"). Production traffic must use **HTTP POST**; `GET` is only for\n  light testing (roughly five numbers or fewer).\n- Responses are **XML** documents in the namespace\n  `https://messaging.ecommunicate.biz/sms/response` (the `httpresponse`\n  diagnostic returns plain text). Always parse with a namespace-aware XML\n  parser — attribute order and tag counts are not fixed.\n- Implement **HTTP/1.1 Keep-Alive**. Break large batches into ~200 numbers per\n  POST, reusing the same `batchref` and incrementing `batchid`.\n\n\n## Correlation: batchref + batchid\n\nThere is no per-message id. Each send is identified by a client-chosen `batchref` (max 80 chars) plus a `batchid` (unique within the batchref, max 20 chars). You pull delivery receipts and replies later using the same pair. Re-sending an identical `batchref`+`batchid` does **not** resend — the gateway returns the original response wrapped in `<previousxml>` (status `1034`).\n\n## Authentication\n\nEvery request is authenticated with an **API key**: send an `X-API-Key: ecom_...` header. Generate and revoke keys from the client portal.\n\nThe optional `specversion`, `commsversion`, and `appversion` keywords are advisory. The gateway keys on major version **2**.\n\n## Status codes\n\nEvery outcome is carried in the XML `<status code=\"...\">`. Ranges: `0` success · `1`–`99` partial success / fail · `1000`–`1999` keyword error · `2000`–`2999` functional error · `3000`–`3999` system error. A send is successful when the code is `0` (or `1` = partial, some invalid numbers). Common codes: `1010` authentication failed · `1021` message keyword missing · `1034` duplicate batchref+batchid · `1071` all numbers invalid · `1100` senderid required · `2012` insufficient credits · `1310` bad `futuredatetime` format.","summary":"High-volume batch SMS with two-way replies, delivery receipts and virtual numbers."},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"docs.ecommunicate.co.za","port":4000,"ipAddress":"216.73.216.28"},"lang":"default_locale","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"main"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/apis/biz-sms","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}