Версия v2. Базовый адрес https://metersync.ru/api/v2/. Все запросы — по HTTPS, тело в JSON,
кодировка UTF-8.
Каждый узел (УСПД, шлюз, интеграция) получает свой ключ в кабинете. Ключ передаётся заголовком
X-Node-Key и действует только для привязанного узла — компрометация одного шлюза не открывает
остальные.
POST /api/v2/sync/readings — основной метод. Пакет до 5000 показаний за запрос.
| Поле | Тип | Описание |
|---|---|---|
serial | string | Заводской номер прибора. Обязательное. |
t1…t4 | number | Показания по тарифным зонам, кВт·ч / м³ / Гкал. |
ts | string | Время съёма, ISO 8601 со смещением. По умолчанию — время пакета. |
status | string | ok, no_link, tamper, stale. |
Повторная отправка того же пакета не задваивает данные. Ключ идемпотентности — пара node +
ts, либо явный заголовок Idempotency-Key. При повторе возвращается исходный
batch_id и "duplicate": true.
GET /api/v2/export/slices — часовые или суточные срезы за период.
Поддерживаемые форматы: json, csv, xml80020.
| Событие | Когда |
|---|---|
meter.no_link | Прибор не отвечает дольше порога опроса. |
meter.tamper | Отметка вскрытия корпуса или магнитного воздействия. |
meter.rollback | Показание меньше предыдущего (обратный ход или замена). |
node.offline | УСПД не выходил на связь дольше двух интервалов. |
События доставляются вебхуком с подписью X-MS-Signature (HMAC-SHA256 тела) и повторами по
экспоненте до 24 часов.
| Код | HTTP | Что делать |
|---|---|---|
node_key_missing | 401 | Не передан заголовок X-Node-Key. |
node_key_revoked | 401 | Ключ отозван — выпустить новый в кабинете. |
meter_unknown | 200 | Прибор не заведён; показание в rejected. |
reading_rollback | 200 | Показание меньше предыдущего — требуется акт замены. |
batch_too_large | 413 | Больше 5000 показаний — разбить пакет. |
rate_limited | 429 | Подождать Retry-After секунд. |
| Тариф | Запросов/с | Показаний в пакете | Хранение срезов |
|---|---|---|---|
| Старт | 2 | 500 | 3 месяца |
| Базовый | 20 | 5000 | 3 года |
| Промышленный | по договору | 5000 | от 5 лет |