HTTP(S) and SMPP protocols for global SMS delivery. Form-encoded requests, XML responses, login and password authentication. Works with any language or HTTP client.
All requests use your login and password as POST body parameters. Credentials are issued by your account manager — the same login and password work for HTTP(S), SMPP, and the web dashboard.
All HTTP(S) operations use the same endpoint — http.ritorica.com/multi.php — with different parameters. Mailing list operations use http.ritorica.com/list.php.
| Field | Type | Description |
|---|---|---|
| login | string required | Your account login |
| password | string required | Your account password |
| phones | string required* | Comma-separated phone numbers in international format without +. E.g. 447911123456,79051112233 |
| message | string required* | SMS text body. Max 160 chars Latin, 70 chars Cyrillic/Unicode. Long messages auto-split into parts. |
| originator | string optional | Sender name — max 11 alphanumeric chars or 15 digits as a phone number. |
| rus | integer optional | Encoding: 0 = Latin/transliterate (default), 1 = Windows-1251 Cyrillic, 5 = UTF-8 |
| start_date | string optional | Schedule time in format YYYY-MM-DD HH:MM:SS (UTC+5). Max 3 days in future. |
| gap | float optional | Interval between sends in seconds. Default 1, minimum 0.05. |
| timeout | integer optional | SMS lifetime in seconds. Max 86400 (24h). |
| want_sms_ids | 0 or 1 optional | Set to 1 to receive message IDs in the response for delivery tracking. |
| individual_messages | 0 or 1 optional | Set to 1 to send a different text to each phone number. |
| group | string optional | Name of a saved contacts group — replaces the phones parameter. |
| Field | Type | Description |
|---|---|---|
| login | string required | Your account login |
| password | string required | Your account password |
| operation | string required | Always "status" |
| sms_id | string required | Comma-separated message IDs returned from the send call. Status history kept for 2 days only. |
| Delivered | Final | Message reached the handset |
| Non Delivered | Final | Failed — invalid number, subscriber blocked, or call barring |
| Expired | Final | Phone off too long or memory full during message lifetime |
| Rejected | Final | Operator rejected — bad sender, wrong format, or spam filter |
| Deleted | Final | Removed from SMSC — routing restriction or link shortening reduced SMS size |
| Unknown status | Final | No delivery report received from SMSC |
| Clicked | Final | Subscriber clicked a tracked link in the message |
| Checked | Final | Subscriber used the OTP (e.g. typed it on your website) |
| Buffered SMSC | Transitional | Still trying to deliver — phone off or memory full |
| (blank) | Transitional | No status received yet — scheduled or just sent |
| Field | Type | Description |
|---|---|---|
| login | string required | Your account login |
| password | string required | Your account password |
| operation | string required | Always "account" |
Set up a script on your server that accepts POST requests, then send your URL to the Ritorica support team. The platform will automatically call your endpoint after every status change.
| Field | Description |
|---|---|
| sms_id | Message identifier (unsigned 8-byte number) |
| status | Delivery status value (see status table above) |
| delivery_date | Date/time of last status change (UTC+5, YYYY-MM-DD HH:MM:SS) |
| error_code | Error code if not delivered (0 if delivered or unknown reason) |
| operation value | Description |
|---|---|
| status_all | Get all mailing lists in your account (default) |
| status | Get info about a specific list (requires group_id) |
| add_member | Add phone numbers to a list (max 5,000 per request) |
| remove_member | Remove phone numbers from a list (max 5,000 per request) |
Limits depend on the protocol and operation. HTTP throughput is account-specific — contact your account manager to increase it. SMPP limits are enforced per connection.
| Operation / Protocol | Default Limit | Notes |
|---|---|---|
SMPP submit_sm |
20 SMS / sec | Per connection. Contact your account manager to increase. |
POST /multi.php — Send SMS |
Account-specific | HTTP throughput set per account. Contact your manager for details. |
POST /multi.php?operation=status |
Max 5,000 IDs / req | Status history available for the last 2 days only. |
POST /multi.php?operation=set_checked |
Max 5,000 IDs / req | Can only mark messages sent within the last 3 days. |
POST /list.php — Mailing list |
Max 5,000 numbers / req | Per add_member or remove_member request. |
Errors are returned in the XML response body as a numeric <error> code. A value of 0 means success.
login parameter is missing from the request.password parameter is missing from the request.phones parameter is missing from the request.login and password credentials.originator value exceeds the allowed length (max 11 alphanumeric or 15 numeric).447911123456).The Ritorica API is a standard HTTPS endpoint — use it directly from any language or HTTP client. No extra library needed.
The fastest way to test the API from the command line. Copy, paste your credentials, and you're live.
Integration guideUse the standard requests library — no proprietary SDK needed. Works with any Python 3.x version.
Use fetch (Node 18+) or axios. Works in Express, NestJS, or any backend framework.
Use PHP's built-in cURL extension or the Guzzle HTTP client. Compatible with Laravel and Symfony.
Use Java's built-in java.net.http.HttpClient or OkHttp. Works with Spring Boot projects.
Plain HTTPS POST with a form-encoded body (application/x-www-form-urlencoded). If your language can make an HTTP request, it can use the Ritorica API.
Contact our team to get your API credentials, whitelist your server IP, and go live. Our technical support team is available to help with your integration.