# SMSC.ru HTTP API: Проверить статус доставки

Сценарий из mcp-everything. Актуально на 2026-10-24.

Узнать, доставлено ли сообщение, — для повторной отправки или отчёта.

1. Запроси статус: GET /sys/status.php с phone и id отправленного сообщения (несколько — через запятую в одинаковом порядке) и fmt = 3.
2. С all = 1 вернётся полная информация, с all = 2 — ещё страна, оператор и регион.
3. Статус доступен в течение суток после отправки, потом сообщения уходят в архив.
4. Не опрашивай чаще лимита: не больше 5 одинаковых запросов по одному сообщению в минуту.

```bash
curl -G https://smsc.ru/sys/status.php \
  -d login=<логин> -d psw=<пароль> \
  -d phone=79991234567 -d id=<id сообщения> -d fmt=3 -d all=1
```

## Базовые URL

- Боевой: `https://smsc.ru`
- Резервный: `https://www2.smsc.ru`

## Авторизация

Тип: API-ключ

Параметры `login` и `psw` (пароль создаётся или меняется на странице паролей в кабинете) либо `apikey` вместо пары логин/пароль. Если в кабинете задан список разрешённых IP, запросы с других адресов отклоняются с ошибкой 2.

## Методы сценария

### GET /sys/status.php — Статус сообщения

Можно и POST. Статус запрашивается в течение суток после отправки, затем сообщения уходят в архив.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `login` | query | string | да | Логин (или apikey) |
| `psw` | query | string | да | Пароль |
| `phone` | query | string | да | Номер или номера через запятую (в порядке id) |
| `id` | query | string | да | ID сообщения или список через запятую |
| `fmt` | query | integer | нет | 0 строка, 1 статус и время через запятую, 2 XML, 3 JSON |
| `all` | query | integer | нет | 1 — полная информация, 2 — плюс страна, оператор, регион |
| `bot` | query | integer | нет | 1 — статус сообщения в Telegram-бот |
| `del` | query | integer | нет | 1 — удалить отправленное сообщение |
| `charset` | query | string | нет | utf-8 или koi8-r |

Пример запроса:

```
https://smsc.ru/sys/status.php?login=<login>&psw=<password>&phone=<phone>&id=<sms_id>
```

## Нюансы

- Одно SMS — 160 латинских или 70 кириллических символов; в составных — 153 и 67.
- Ошибка при `fmt=0` — `ERROR = N (описание)`, при `fmt=1` — `0,-N`, при `fmt=3` — `{"error": "...", "error_code": N}`; для ошибок 3, 6, 7, 8 дополнительно возвращается `id`.
- Префиксы в тексте: `__PING__`, `__CALL__`, `__HLR__`, `__auth__`.
- Другие скрипты: `/sys/templates.php` (шаблоны), `/sys/op_templates.php` (шаблоны операторов), `/sys/jobs.php` (рассылки), `/sys/ping.php` (уведомления).

## Другие сценарии

- [Отправить SMS и узнать стоимость](https://mcp-everything.ru/integrations/smsc/scenarios/otpravit-sms-i-uznat-stoimost.md)
- [Следить за балансом](https://mcp-everything.ru/integrations/smsc/scenarios/sledit-za-balansom.md)
- [Подтвердить номер через Mobile ID](https://mcp-everything.ru/integrations/smsc/scenarios/podtverdit-nomer-cherez-mobile-id.md)

---

Если этого недостаточно — официальная документация: https://smsc.ru/api/http/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/smsc.md
