{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-apis/sms.yaml","sidebar":"sidebar-sidebar.yaml__apis_sms"},"props":{"definitionId":"apis/sms.yaml","dynamicMarkdocComponents":[],"baseSlug":"/apis/sms","seo":{"title":"SMS Gateway 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":"SMS Gateway API","description":"The eCommunicate **SMS Gateway** (Payless4SMS) is a direct HTTP/JSON API for sending single and bulk SMS, tracking delivery, receiving replies and delivery receipts, scheduling messages, and managing your credit balance.\n\nIt is a standalone product, separate from the WhatsApp-centric [Omnichannel Integration API](./omnichannel.yaml). Use this API when you need plain SMS to any mobile network.\n\n## Authentication\n\nEvery request is authenticated with an **API key**: send an `X-API-Key: ecomm_...` header. Generate and revoke keys from the client portal (**API Keys**). Always use HTTPS so the key is never sent in the clear.\n\n## High-priority (OTP) traffic\n\nFor one-time-pin traffic that must deliver in 5–10 seconds, request an OTP token from support and send it as an `otpToken` header. Valid tokens are routed to a dedicated priority queue with automatic backup-gateway fallback. If the response `statusCode` is `502`, resend via your backup gateway until it returns to `100`.\n\n## Status codes\n\nResponses carry a string `statusCode` and `statusDescription`. Common values: `001` Request Completed · `021` Authentication Failed · `022` Invalid Parameters · `023` Missing Parameters · `100` Accepted For Processing · `126` Blacklisted Destination · `128` Invalid Destination · `129` Duplicate Destination · `136` Batch Size Exceeded (max 1000 recipients) · `137` Insufficient Credits · `201` Batch Scheduled · `500` Message Sent · `501` Queued At MNO · `600` Delivery Success · `620` Failed In Delivery. The gateway sometimes returns equivalent alternates (e.g. Invalid Destination `128`/`226`), so treat `statusCode` as an opaque string.","summary":"Direct bulk & transactional SMS over a simple HTTP JSON API."},"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/sms","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}