API ЖД Тариф - Описание протокола обмена данными с системой расчета провозной платы на жд от Альта-Софт: различия между версиями
(→Структура блока <Calc> (Тарифные составляющие)) |
|||
| Строка 412: | Строка 412: | ||
| <code><guard_all></code> || <code>currency</code>, <code>value</code> || Общая плата за вооруженную охрану по всем дорогам. | | <code><guard_all></code> || <code>currency</code>, <code>value</code> || Общая плата за вооруженную охрану по всем дорогам. | ||
|- | |- | ||
| − | | <code><guide_c_all></code> || <code>currency</code>, <code>value</code> || Плата за проезд проводников отправителя | + | | <code><guide_c_all></code> || <code>currency</code>, <code>value</code> || Плата за проезд проводников отправителя (инфраструктурная составляющая) |
|- | |- | ||
| <code><guide_v_all></code> || <code>currency</code>, <code>value</code> || Плата за проезд проводников отправителя в вагоне. | | <code><guide_v_all></code> || <code>currency</code>, <code>value</code> || Плата за проезд проводников отправителя в вагоне. | ||
Текущая версия на 09:45, 29 сентября 2026
Содержание
- 1 Описание протокола обмена данными (API) «ЖД Тариф» от Альта-Софт
- 1.1 Общие положения
- 1.2 1. Справочник грузов (ЕТСНГ и ГНГ)
- 1.3 2. Справочник станций
- 1.4 3. Справочник государств
- 1.5 4. Дерево подвижного состава и перевозочных средств
- 1.6 5. Расчет нитки маршрута и расстояний между станциями
- 1.7 6. Расчет ЖД Тарифа
- 1.8 7. Получение информации о ключе (лимит и срок действия)
- 1.9 8. Обработка ошибок
- 1.10 Интерактивное тестирование и демонстрация
Описание протокола обмена данными (API) «ЖД Тариф» от Альта-Софт
Сервис предназначен для расчета провозной платы (тарифа) при железнодорожных перевозках грузов по территории России, стран СНГ, Балтии и сопредельных государств, а также для получения нормативно-справочной информации (станции, номенклатура грузов ЕТСНГ/ГНГ, классификатор подвижного состава, государства).
Общие положения
- Базовый URL:
https://www.alta.ru/rail_tracking/rail_trf/ - Протокол: HTTP / HTTPS.
- Методы запросов:
GET,POST. - Формат передачи данных: XML (кодировка
UTF-8). - Аутентификация: Обязательный GET/POST-параметр
api_key.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
api_key |
string | Да | Уникальный лицензионный ключ доступа. Выдается после оплаты, имеет ограниченный срок действия (6 месяцев или 1 год) и лимит доступных обращений. |
type |
string | Да | Тип выполняемой операции (fre, frg, fst, tst, states, van_tree, calc, key_info).
|
encoding |
string | Нет | Кодировка ответа (рекомендуется передавать utf-8).
|
1. Справочник грузов (ЕТСНГ и ГНГ)
Служит для поиска кодов грузов по ЕТСНГ (Единая тарифно-статистическая номенклатура грузов) и ГНГ (Гармонизированная номенклатура грузов), а также для автоматического сопоставления классификаторов.
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
type |
string | — | Режим выборки:
|
index |
string | (пусто) | Поисковый запрос: код груза (или первые цифры кода) либо наименование (или фрагмент наименования). Если не задан — возвращается весь справочник. |
corr |
string | yes |
yes — искать соответствие между ЕТСНГ и ГНГ; no — не выполнять кросс-поиск.
|
Примеры запросов
- Поиск в ЕТСНГ по началу кода с кросс-поиском по ГНГ:
- Поиск в ГНГ по наименованию без сопоставления:
https://www.alta.ru/rail_tracking/rail_trf/?type=frg&index=пшен&corr=no&encoding=utf-8&api_key=[ВАШ_API_KEY]
Описание полей ответа (XML)
Корневой элемент: <fraights> (содержит атрибут last_update — дата актуализации справочника). Внутри расположен список элементов <fraight>.
| Атрибут | Тип | Присутствует в | Описание |
|---|---|---|---|
index |
string | ЕТСНГ / ГНГ | 6-значный код ЕТСНГ или 8-значный код ГНГ. |
name |
string | ЕТСНГ / ГНГ | Наименование груза. |
level |
integer | ЕТСНГ / ГНГ | Уровень вложенности в иерархическом справочнике (1, 2, 3...). |
parent |
string | ЕТСНГ / ГНГ | Код вышестоящего родительского узла/группы. |
isgroup |
boolean | ЕТСНГ / ГНГ | true — узел является группой грузов; false — конкретный груз (конечная позиция).
|
danger |
boolean | ЕТСНГ | true — груз относится к категории опасных.
|
guard |
boolean | ЕТСНГ | true — груз подлежит обязательной охране (ВОХР/сопровождение).
|
frclass |
integer | ЕТСНГ | Тарифный класс груза (1, 2 или 3 класс). |
mwn |
string | ЕТСНГ | Минимальная весовая норма (МВН): число в тоннах либо ГП (грузоподъемность вагона).
|
gng |
string | ЕТСНГ | Соответствующий 8-значный код по номенклатуре ГНГ (при corr=yes).
|
frnameg |
string | ЕТСНГ | Наименование соответствующего груза по ГНГ. |
toetsng |
string | ГНГ | Соответствующий код ЕТСНГ (при corr=yes).
|
Пример XML-ответа
<?xml version="1.0" encoding="utf-8"?>
<fraights last_update="17.01.2026">
<fraight index="011005" name="ПШЕНИЦА" level="3" parent="010002" isgroup="false" danger="false" guard="false" frclass="2" mwn="ГП" gng="10019000" frnameg="" />
</fraights>
2. Справочник станций
Служит для поиска железнодорожных станций по названию или коду ЕСР (Единая сетевая разметка), проверки выполняемых коммерческих операций (параграфов ТР №4) и определения принадлежности железной дороге и государству.
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
type |
string | — | fst (станция отправления) или tst (станция назначения). Формат выдачи идентичен.
|
index |
string | (пусто) | Поисковый запрос: код станции или наименование (регистронезависимо). |
exactly |
integer | 0 |
1 — строгое совпадение по наименованию; 0 — поиск по подстроке (вхождению символов).
|
full_code |
integer | 0 |
1 — возвращать 6-значный код ЕСР (с контрольным знаком); 0 — стандартный 5-значный тарифный код.
|
Примеры запросов
- Поиск по коду станции:
- Поиск по названию станции:
https://www.alta.ru/rail_tracking/rail_trf/?type=fst&index=моск&encoding=utf-8&api_key=[ВАШ_API_KEY]
Описание полей ответа (XML)
Корневой элемент: <stations> (атрибут count — число найденных записей). Дочерние элементы: <station>.
| Атрибут | Тип | Описание |
|---|---|---|
index |
string | 5- или 6-значный код станции по ЕСР. |
name |
string | Наименование станции. |
paragrafs |
string | Номера параграфов Тарифного руководства №4 (коммерческие операции, выполняемые на станции). |
stateindex |
integer | Цифровой код государства расположения станции. |
statename |
string | Наименование государства. |
roadindex |
integer | Код железной дороги. |
roadname |
string | Наименование железной дороги (например, Приволжская, Октябрьская). |
tip |
integer | Числовой код типа станции. |
tipstr |
string | Текстовая расшифровка типа станции (например, «Внутренняя станция», «Пограничная экспортная»). |
toroad |
string | Код сопредельной дороги (для стыковых/пограничных станций). |
tostateindex |
string | Код сопредельного государства (для погранпереходов). |
tostatename |
string | Наименование сопредельного государства. |
Пример XML-ответа
<?xml version="1.0" encoding="utf-8"?>
<stations count="1">
<station index="62670" name="Питерка" paragrafs="1,3" stateindex="20" statename="Россия" roadindex="61" roadname="Приволжская" tip="10" tipstr="Внутренняя станция" toroad="00" tostatename="" tostateindex="" />
</stations>
3. Справочник государств
Возвращает перечень стран и их идентификаторов, используемых в тарифной системе.
Запрос
Описание полей ответа (XML)
Корневой элемент: <states>, содержит элементы <state>:
index(integer) — уникальный код государства в ж/д классификаторе (например, 20 — Россия, 27 — Казахстан, 21 — Беларусь);name(string) — наименование государства.
Пример XML-ответа
<?xml version="1.0" encoding="utf-8"?>
<states>
<state index="20" name="Россия" />
<state index="21" name="Белоруссия" />
<state index="27" name="Казахстан" />
</states>
4. Дерево подвижного состава и перевозочных средств
Возвращает иерархический классификатор вагонов и контейнеров. Конечный атрибут index элемента 3-го уровня используется в расчетах тарифа (параметр van).
Параметры запроса
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
type |
string | — | Значение van_tree.
|
kind |
string | xml |
Формат вывода: xml (структурированное дерево XML) или html / ul (вложенные списки HTML для отображения на web-страницах).
|
Пример запроса
https://www.alta.ru/rail_tracking/rail_trf/?type=van_tree&kind=xml&encoding=utf-8&api_key=[ВАШ_API_KEY]
Описание полей ответа (XML)
Дерево состоит из вложенных элементов <van>:
level(integer) — уровень иерархии:1— вид отправки (Повагонная, Контейнерная);2— тип/категория ПС (В универсальных вагонах, В цистернах, Крупнотоннажные контейнеры и т.д.);3— конкретный тип подвижного состава (листовой узел).
name(string) — наименование категории или типа ПС.index(integer) — код типа ПС. Присутствует только на 3-м уровне. Именно это значение передается в параметрvanпри расчете тарифа (например:200— крытый,400— платформа,600— полувагон,2220— контейнер 20 футов).
Пример XML-ответа
<?xml version="1.0" encoding="utf-8"?>
<van_tree>
<van level="1" name="Повагонная">
<van level="2" name="В универсальных вагонах">
<van level="3" index="200" name="Крытый" />
<van level="3" index="400" name="Платформа" />
<van level="3" index="600" name="Полувагон" />
</van>
</van>
<van level="1" name="Контейнерная">
<van level="2" name="Универсальный контейнер">
<van level="3" index="2220" name="Контейнер крупнотоннажный г/п 20 т (20 ft.)" />
<van level="3" index="2430" name="Контейнер крупнотоннажный г/п 30 т (40 ft.)" />
</van>
</van>
</van_tree>
5. Расчет нитки маршрута и расстояний между станциями
Позволяет построить географический и тарифный маршрут следования с разбивкой по транзитным дорогам, опорным станциям и расчетным плечам без выполнения финансового расчета тарифа.
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
type |
string | Да | Значение calc.
|
fst |
string | Да | 5-значный код ЕСР станции отправления. |
tst |
string | Да | 5-значный код ЕСР станции назначения. |
route_only |
integer | Да | Значение 1 (только маршрут).
|
api_key |
string | Да | Лицензионный ключ. |
Пример запроса
https://www.alta.ru/rail_tracking/rail_trf/?type=calc&fst=69000&tst=19100&route_only=1&api_key=[ВАШ_API_KEY]
Ответ содержит секцию <route>, идентичную блоку маршрута в полном расчете тарифа (см. раздел 6).
6. Расчет ЖД Тарифа
Основной метод системы. Производит комплексный расчет провозных плат, сборов, платы за охрану, нормативных сроков доставки и построение нитки маршрута с детализацией по странам следования.
Входные параметры
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
type |
string | — | Обязательно: calc.
|
fst |
string | — | Код ЕСР станции отправления (5 знаков). |
tst |
string | — | Код ЕСР станции назначения (5 знаков). |
fre |
string | — | Код груза по номенклатуре ЕТСНГ (5–6 знаков). |
frg |
string | — | Код груза по номенклатуре ГНГ (8 знаков). Если не задан, подбирается автоматически. |
fstate |
integer | — | Код государства станции отправления (из справочника states).
|
tstate |
integer | — | Код государства станции назначения (из справочника states).
|
van |
integer | — | Идентификатор типа вагона/контейнера из дерева van_tree.
|
w |
integer/float | — | Масса груза в вагоне (в килограммах). Общая для всех вагонов отправки. |
gp |
integer/float | — | Грузоподъемность вагона (в тоннах). |
owner |
integer | 0 |
Принадлежность парка: 0 — вагон перевозчика (общий парк); 1 — собственный или арендованный парк.
|
empt |
integer | 0 |
0 — груженый рейс; 1 — порожний рейс. Для грузов группы ЕТСНГ 421*** установка empt=1 обязательна.
|
num_vagons |
integer | 1 |
Число вагонов в отправке. |
w1...wN |
integer | — | Индивидуальный вес груза в кг для вагона № N (например, w2=65000).
|
gp1...gpN |
integer/float | — | Индивидуальная грузоподъемность вагона № N в тоннах (например, gp3=70).
|
return |
integer | 0 |
1 — рассчитать плату за возврат вагона; 0 — не рассчитывать.
|
return_st |
string | fst |
Код ЕСР станции возврата вагона (если отличается от станции отправления). |
modular |
integer | 0 |
Признак сборной отправки: 1 — сборная повагонная отправка нескольких грузов.
|
fre1...freN |
string | — | Коды ЕТСНГ отдельных грузов при сборной отправке (modular=1).
|
frg1...frgN |
string | — | Коды ГНГ отдельных грузов при сборной отправке. |
route |
integer | 1 |
1 — включить детальную нитку маршрута в XML; 0 — скрыть.
|
calc_date |
string | Текущая | Дата применения тарифов в формате ДД.ММ.ГГГГ (например, 23.09.2026).
|
currency |
string | По странам | Мнемокод валюты итога (RUB, USD, EUR, KZT, CHF). По умолчанию расчет по участкам ведется в нац. валютах транзитных дорог, итог пересчитывается в рубли по курсу ЦБ РФ.
|
dock_stations |
string | — | Коды стыковых станций через запятую для принудительной маршрутизации (например, 66380,54850).
|
crimea_bridge |
integer | 0 |
Для Крымской ж/д: 1 — через Крымский мост; 0 — через паромную переправу Кавказ–Крым.
|
for_loading |
integer | 0 |
Для порожнего рейса по КТЖ (Казахстан): 1 — под погрузку; 0 — из-под выгрузки.
|
fre_empty |
string | fre |
Код ЕТСНГ груза, под погрузку которого следует вагон при порожнем рейсе по КТЖ. |
is_speed |
integer | 1 |
1 — перевозка большой скоростью; 0 — без учета надбавки.
|
is_cont_train |
integer | 1 |
1 — в составе регулярного контейнерного поезда; 0 — повагонная/одиночная отправка.
|
Примеры запросов
- Расчет повагонной отправки (1 вагон):
- Многовагонная отправка с индивидуальными параметрами:
- Сборная повагонная отправка (
modular=1):
Описание структуры XML-ответа
Ответ сервиса включает в себя:
<status>— общий статус обработки (okилиerror).<route>— нитка маршрута по странам и участкам.<Calc>— блок финансовых результатов по странам и консолидированный итог.<stat>,<client_thread>,<requests_available>— сервисная информация и остаток лимита.
Структура блока <route> (Маршрут следования)
<route>:total_rst(integer) — общее расстояние маршрута (км);from_state,to_state(string) — страны отправления и назначения.
<st_part>— участок маршрута по территории отдельной страны:index(integer) — код страны;name(string) — наименование страны;rst(integer) — протяженность участка по территории этой страны в км.
<stage>— расчетное плечо маршрута между ключевыми/стыковыми станциями:st1_ecp,st1_name— ЕСР-код и наименование начальной станции плеча;st2_ecp,st2_name— ЕСР-код и наименование конечной станции плеча;rst(integer) — тарифное расстояние плеча в км.
Структура блока <Calc> (Тарифные составляющие)
Внутри <Calc> для каждого транзитного государства формируется узел <state>.
Атрибуты элемента <state>:
| Атрибут | Тип | Описание |
|---|---|---|
index |
integer | Цифровой код государства. |
name |
string | Наименование государства. |
rst |
integer | Тарифное расстояние по данному государству (км). |
return |
boolean | true — плата за порожний возврат; false — груженый рейс.
|
id |
integer | Порядковый номер вагона в отправке. |
w |
integer | Расчетная масса груза в вагоне (кг). |
gp |
float | Грузоподъемность вагона (т). |
spec_tax |
boolean | Признак применения спецставки/исключительного тарифа. |
Дочерние элементы <state> (денежные составляющие):
Все узлы содержат атрибуты currency (валюта) и value (сумма с двумя знаками после запятой).
| Тег | Описание |
|---|---|
<summa> |
Основная тарифная ставка за перевозку (инфраструктурная и локомотивная составляющие). |
<summa_add_free> |
Базовая ставка без учета дополнительных сборов. |
<add_taxes> |
Сумма дополнительных сборов и плат. |
<guard> |
Плата за военизированную охрану груза (ВОХР). |
<nalog> |
Сумма налога (НДС). При международных перевозках часто 0.00 (ставка 0%). |
<total_tax_free> |
Итоговая сумма по участку без НДС. |
<total> |
Итоговая провозная плата по стране с учетом всех сборов и налогов. |
<tonna_tax_free> |
Стоимость перевозки 1 тонны груза по данному участку без НДС. |
<tonna> |
Итоговая стоимость перевозки 1 тонны груза по стране с НДС. |
<tonna_add_free> |
Стоимость за 1 тонну без дополнительных сборов. |
Сводные итоговые элементы блока <Calc>:
| Тег | Атрибуты | Описание |
|---|---|---|
<total_all> |
currency, value |
Полная стоимость перевозки по всему маршруту (по всем странам). По умолчанию конвертирована в рубли (RUB). |
<total_all_nalog> |
currency, value |
Суммарный налог (НДС) по всей перевозке. |
<tonna_all> |
currency, value |
Суммарная стоимость перевозки 1 тонны по всему маршруту следования. |
<guard_all> |
currency, value |
Общая плата за вооруженную охрану по всем дорогам. |
<guide_c_all> |
currency, value |
Плата за проезд проводников отправителя (инфраструктурная составляющая) |
<guide_v_all> |
currency, value |
Плата за проезд проводников отправителя в вагоне. |
<delivery_time> |
unit, value |
Нормативный срок доставки. Значение value — количество, unit — единица измерения (например, сутки).
|
Сервисные элементы ответа
<request>— копия входящей строки запроса в блоке CDATA.<client_thread>— идентификатор внутреннего потока сервера обработки.<stat>:<calc_start>,<calc_finish>— временные метки начала и завершения расчета на сервере.
<requests_available binded="...">— количество оставшихся оплаченных запросов по ключу.
Пример XML-ответа при расчете тарифа
<?xml version="1.0" encoding="utf-8"?>
<xml>
<status>ok</status>
<route total_rst="3093" from_state="20 Россия" to_state="27 Казахстан">
<st_part index="20" name="Россия" rst="2804">
<stage st1_ecp="01100" st1_name="Кяппесельга" st2_ecp="30260" st2_name="Кошта" rst="741" />
<stage st1_ecp="30260" st1_name="Кошта" st2_ecp="26290" st2_name="Новки II" rst="577" />
<stage st1_ecp="26290" st1_name="Новки II" st2_ecp="24700" st2_name="Красный Узел" rst="492" />
<stage st1_ecp="24700" st1_name="Красный Узел" st2_ecp="65730" st2_name="Кинель" rst="540" />
<stage st1_ecp="65730" st1_name="Кинель" st2_ecp="81300" st2_name="Канисай (эксп.)" rst="454" />
</st_part>
<st_part index="27" name="Казахстан" rst="289">
<stage st1_ecp="66650" st1_name="Илецк I (эксп.)" st2_ecp="66000" st2_name="Кандыагаш" rst="289" />
</st_part>
</route>
<Calc>
<state index="20" name="Россия" rst="2804" return="false" id="1" w="60000" gp="66" spec_tax="false">
<summa currency="RUB" value="254403.00" />
<summa_add_free currency="RUB" value="0.00" />
<add_taxes currency="RUB" value="0.00" />
<guard currency="RUB" value="0.00" />
<total_tax_free currency="RUB" value="254403.00" />
<tonna_tax_free currency="RUB" value="4240.05" />
<nalog currency="RUB" value="0.00" />
<total currency="RUB" value="254403.00" />
<tonna currency="RUB" value="4240.05" />
<tonna_add_free currency="RUB" value="4240.05" />
</state>
<state index="27" name="Казахстан" rst="289" return="false" id="1" w="60000" gp="66" spec_tax="false">
<summa currency="KZT" value="176003.00" />
<summa_add_free currency="KZT" value="176003.00" />
<add_taxes currency="KZT" value="0.00" />
<guard currency="KZT" value="0.00" />
<total_tax_free currency="KZT" value="176003.00" />
<tonna_tax_free currency="KZT" value="2933.38" />
<nalog currency="KZT" value="0.00" />
<total currency="KZT" value="176003.00" />
<tonna currency="KZT" value="2933.38" />
<tonna_add_free currency="KZT" value="2933.38" />
</state>
<total_all currency="RUB" value="288023.00" />
<total_all_nalog currency="RUB" value="0.00" />
<tonna_all currency="RUB" value="4800.38" />
<guard_all currency="" value="0.00" />
<guide_c_all currency="" value="0.00" />
<guide_v_all currency="" value="0.00" />
<delivery_time unit="сутки" value="18" />
</Calc>
<request><![CDATA[type=calc&fst=01100&tst=66000&fre=01100&frg=10019000&fstate=20&tstate=27&van=200&w=60000&gp=66&owner=0&return=0&empt=0&api_key=alta_rail&page=calc.xml]]></request>
<client_thread>84</client_thread>
<stat>
<calc_start>29.09.2026 10:15:13</calc_start>
<calc_finish>29.09.2026 10:15:15</calc_finish>
</stat>
<requests_available binded="0">9999999</requests_available>
</xml>
XSD-схема валидации ответа расчета тарифа (calc.xsd)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="MoneyItemType">
<xs:attribute name="currency" type="xs:string" use="optional" />
<xs:attribute name="value" type="xs:decimal" use="required" />
</xs:complexType>
<xs:element name="xml">
<xs:complexType>
<xs:sequence>
<xs:element name="status" type="xs:string" />
<xs:element minOccurs="0" name="error" type="xs:string" />
<xs:element minOccurs="0" name="route">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="st_part">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="stage">
<xs:complexType>
<xs:attribute name="st1_ecp" type="xs:string" use="required" />
<xs:attribute name="st1_name" type="xs:string" use="required" />
<xs:attribute name="st2_ecp" type="xs:string" use="required" />
<xs:attribute name="st2_name" type="xs:string" use="required" />
<xs:attribute name="rst" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="index" type="xs:integer" use="required" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="rst" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="total_rst" type="xs:integer" use="required" />
<xs:attribute name="from_state" type="xs:string" use="required" />
<xs:attribute name="to_state" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Calc">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="state">
<xs:complexType>
<xs:sequence>
<xs:element name="summa" type="MoneyItemType" />
<xs:element name="summa_add_free" type="MoneyItemType" />
<xs:element name="add_taxes" type="MoneyItemType" />
<xs:element name="guard" type="MoneyItemType" />
<xs:element name="total_tax_free" type="MoneyItemType" />
<xs:element name="tonna_tax_free" type="MoneyItemType" />
<xs:element name="nalog" type="MoneyItemType" />
<xs:element name="total" type="MoneyItemType" />
<xs:element name="tonna" type="MoneyItemType" />
<xs:element name="tonna_add_free" type="MoneyItemType" />
</xs:sequence>
<xs:attribute name="index" type="xs:integer" use="required" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="rst" type="xs:integer" use="required" />
<xs:attribute name="return" type="xs:boolean" use="required" />
<xs:attribute name="id" type="xs:integer" use="required" />
<xs:attribute name="w" type="xs:decimal" use="required" />
<xs:attribute name="gp" type="xs:decimal" use="required" />
<xs:attribute name="spec_tax" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="total_all" type="MoneyItemType" />
<xs:element name="total_all_nalog" type="MoneyItemType" />
<xs:element name="tonna_all" type="MoneyItemType" />
<xs:element name="guard_all" type="MoneyItemType" />
<xs:element name="guide_c_all" type="MoneyItemType" />
<xs:element name="guide_v_all" type="MoneyItemType" />
<xs:element name="delivery_time">
<xs:complexType>
<xs:attribute name="unit" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="request" type="xs:string" />
<xs:element minOccurs="0" name="client_thread" type="xs:string" />
<xs:element minOccurs="0" name="stat">
<xs:complexType>
<xs:sequence>
<xs:element name="calc_start" type="xs:string" />
<xs:element name="calc_finish" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="requests_available">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="binded" type="xs:integer" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
7. Получение информации о ключе (лимит и срок действия)
Запрос
Пример XML-ответа
<?xml version="1.0" encoding="utf-8"?>
<xml>
<status>ok</status>
<key_info requests_available="10000000" start_date="2026-01-01 00:00" expire_date="2026-12-31 23:59" />
<requests_available binded="0">10000000</requests_available>
</xml>
Описание полей элемента <key_info>
requests_available(integer) — остаток предоплаченных запросов по лицензии.start_date(datetime) — дата и время активации ключа.expire_date(datetime) — дата и время истечения срока действия ключа.
8. Обработка ошибок
В случае возникновения ошибок (невалидный API-ключ, неверный код станции, невозможность построения маршрута и т.д.) сервер возвращает ответ со статусом error:
<?xml version="1.0" encoding="utf-8"?>
<xml>
<status>error</status>
<error>Неверный ключ доступа или срок действия ключа истек</error>
</xml>
| Типовая ошибка | Причина возникновения | Решение |
|---|---|---|
Неверный ключ доступа... |
Параметр api_key отсутствует, недействителен либо истек срок подписки. |
Проверить актуальность ключа через type=key_info или обратиться к менеджеру Альта-Софт.
|
Станция не найдена |
Передан несуществующий 5-значный код станции в fst или tst. |
Выполнить поиск по справочнику через type=fst / type=tst.
|
Не найден маршрут |
Отсутствует прямое или транзитное ж/д сообщение между станциями. | Проверить допустимость коммерческих операций на станциях либо задать промежуточные стыки (dock_stations).
|
Интерактивное тестирование и демонстрация
- Форма интерактивного тестирования всех методов API:
- Полнофункциональный веб-интерфейс калькулятора ЖД тарифа: