FSP 1.0

Общий язык для фулфилмента

Чтобы сравнить двух операторов, сегодня нужно созвониться и получить Excel. FSP описывает прайс, свободные мощности и заявку машиночитаемо: сравнение и смета считаются, а не выясняются перепиской.

Модули

Протокол собран из модулей, каждый со своей версией. Правка в описании цен не поднимает версию каталога услуг.

Как это работает

Сторона объявляет, что умеет

Манифест по адресу /.well-known/fsp перечисляет поддерживаемые модули, версии и уровни. Две стороны сводят манифесты и работают по пересечению — до первого запроса, а не после. Как это устроено.

Уровни вместо порога входа

Глубина модели цены у операторов разная, поэтому модуль цен определяет 3 уровня, и оператор объявляет достигнутый.

УровеньНазваниеТипичный источник
L1 Плоский прайс Прайс-лист, где у строки есть услуга, единица начисления и одна ставка
L2 Условия и модификаторы Ставка зависит от габаритов, схемы, маршрута или объёма; наценки за срочность и минимальный чек
L3 Ступенчатые тарифы Бесплатный период хранения, разная цена первой и последующих единиц, матрицы цены по количеству

Запрос уровня выше не выкидывает оператора из выдачи: возвращается код pricing_level_insufficient.

Промах объясняется кодом

Ответ на запрос сметы несёт причины непокрытия из закрытого реестра из 22 кодов: не берёт категорию, нет режима хранения, объём ниже минимального. Заявитель понимает, почему выдача узкая; оператор видит, что поправить. Все коды.

Проверяемость

Канон машиночитаем, его целостность проверяет валидатор из 43 блокирующих проверок: ссылочная целостность реестров, состав и зависимости модулей, уровни соответствия, перечисления схем против реестров, разрешимость ссылок между схемами.

git clone https://github.com/open-fsp/fsp.git
cd fsp && python3 validate.py

166 тарифных вариантов из трёх реальных прайс-листов операторов разобраны в термины стандарта. Конструкции, которых при этом не хватило, закрыты правками модулей — история проверки.

Машиночитаемые артефакты отдаются по постоянным адресам: /1.0/<модуль>/schema.json, реестры в JSON и CSV, схема манифеста. Список.