Авторизация¶
Что нужно для подключения¶
- ОГРН и КПП организации
- Сертификат электронной подписи (ГОСТ 34.10-2012), загруженный в личный кабинет ФИС
- Адреса серверов (уточнить в тех. поддержке ФИС) — см. environments.md
Схема авторизации¶
1. Сформировать Token-Header (JSON → Base64)
2. Подписать Token-Header своим сертификатом (PKCS#7 detached)
3. POST /api/session/new → получить Session-Key
4. Использовать Session-Key во всех последующих запросах (12 часов)
Token-Header¶
JSON-объект, кодируется в Base64 и передаётся в заголовке каждого запроса.
Для /api/session/new¶
Month — порядковый номер текущего месяца (1–12). Должен совпадать с месяцем отправки запроса.
Для /api/token/new¶
{
"action": "Add",
"data_type": "ApplicationList",
"OGRN": "1234567890123",
"KPP": "123456789",
"cert64": "<Base64 сертификата>"
}
| Поле | Описание |
|---|---|
action |
Действие: Add, Edit, GetBy, GetDirect, GetAll, Remove |
data_type |
Тип сущности, например ApplicationList, CampaignList |
OGRN |
ОГРН организации (13 символов) |
KPP |
КПП организации (9 символов) |
cert64 |
Сертификат ЭП в Base64 |
Электронная подпись¶
- Алгоритм: ГОСТ 34.10-2012
- Формат: detached PKCS#7
- Подписываемые данные: конкатенация
Token-Header + "." + payload_base64
Операции чтения (
GetBy,GetDirect,GetAll) подписи не требуют —signature_base64передаётся пустой строкой.
Session-Key¶
Возвращается в ответе на /api/session/new:
{
"Session-Key": "skey+ahekxcjuaw3hafaksSdfhajk=+2025-05-12_12-24",
"Deprecated": "skey+trhDxcjuaw3hafaksSdfGtab=+2025-05-12_11-20"
}
Структура ключа: skey + <данные> + <дата_время_истечения> (три части через +).
Важно:
- Использовать ключ целиком, не разбивая на части
- Действует 12 часов с момента получения
- При запросе нового ключа — старый аннулируется немедленно
- Не чаще одного запроса в 3 минуты
- Поле Deprecated (если присутствует) — информация об отозванном старом ключе
Ошибки авторизации¶
| Код | Причина | Решение |
|---|---|---|
| 401 | Организация не найдена или нет сертификата | Загрузить сертификат в ЛК ФИС |
| 209 | Подпись не соответствует данным | Проверить формирование подписываемой строки |
| 211 | Сертификат не найден у организации | Проверить ОГРН/КПП в Token-Header |
| 212 | Попытка доступа к данным другой организации | Проверить ОГРН/КПП |