В данной статье представлен код, который позволяет получать данные ССП для расчета ПДН в режиме "одного окна" из любого БКИ (НБКИ, ОКБ, Эквифакс и прочие).
На этом этапе у вас уже должен быть заключен договор с БКИ, на руках имеется сертификат, полученный от ЦБ, и вы зарегистрировали его в БКИ для отправки запросов и шифрования соединения (согласно требованиям ЦБ - все запросы должны осуществляться по защищенному соединению + запрос должен быть подписан присоединенной ЭП).
Все запросы в случае НБКИ необходимо направлять по адресу https://reports.nbki.ru/qbch/
Ссылка на описание API ЦБ https://www.cbr.ru/ckki/transfer_inform/
По сути, данная разработка применима к любому из четырех БКИ, ведь API у всех одинаковое и теперь ЦБ регулирует, чтобы не нужно было под каждое конкретное БКИ подстраиваться.
Так что - заключить договор можно с любом БКИ, код будет рабочим всегда, меняется только корневой адрес, куда слать запросы.
Первый этап - для упрощения текст шаблона можно поместить в макет, или в процедуру, как строку с символами переноса. Я выбрал для себя первый вариант.
Чтобы не выкладывать готовую обработку, привожу текст шаблона ниже:
Шаблон запроса (можете вставить в макет или использовать прямо в процедуре):
<ЗапросСведенийОПлатежах ТипЗапроса="2" ИдентификаторЗапроса="[ИдентификаторЗапроса]" Версия="1.2">
<Абонент>
<ЮридическоеЛицо>
<ИНН>[ИННОрганизации]</ИНН>
<ОГРН>[ОГРНОрганизации]</ОГРН>
</ЮридическоеЛицо>
</Абонент>
<Запрос Дата="[ДатаЗапроса]">
<Источник>
<ЮридическоеЛицо ПризнакРегистрацииРФ="1" КодВидаПользователя="3">
<ИНН>[ИННОрганизации]</ИНН>
<ОГРН>[ОГРНОрганизации]</ОГРН>
<ПолноеНаименование>[НаименованиеПолное]</ПолноеНаименование>
<СокращенноеНаименование>[НаименованиеСокращенное]</СокращенноеНаименование>
</ЮридическоеЛицо>
</Источник>
<Субъект>
<ФИО>
<Фамилия>[Фамилия]</Фамилия>
<Имя>[Имя]</Имя>
[Отчество]
</ФИО>
[ПредыдущиеФИО]
<ДатаРождения>[ДатаРождения]</ДатаРождения>
<ДокументЛичности КодДУЛ="21">
<Серия>[СерияПаспорта]</Серия>
<Номер>[НомерПаспорта]</Номер>
<ДатаВыдачи>[ДатаВыдачиПаспорта]</ДатаВыдачи>
<Гражданство>643</Гражданство>
</ДокументЛичности>
[ПредыдущиеДУЛ]
</Субъект>
<Согласие ОбОтветственностиПредупрежден="1" СрокДействия="1" ДатаВыдачи="[ДатаНачалаСогласия]">
<Выдано>
<ЮридическоеЛицо>
<ИНН>[ИННОрганизации]</ИНН>
<ОГРН>[ОГРНОрганизации]</ОГРН>
<ПолноеНаименование>[НаименованиеПолное]</ПолноеНаименование>
</ЮридическоеЛицо>
</Выдано>
<Цель КодЦели="2"/>
</Согласие>
<Цель КодЦели="2"/>
<СуммаОбязательства Валюта="RUB">[СуммаЗайма]</СуммаОбязательства>
</Запрос>
</ЗапросСведенийОПлатежах>
Для отправки данного запроса соединение необходимо шифровать пользовательским сертификатом ЦБ, который зарегистрирован в БКИ для шифрования соединения.
Я использую stunnel (cryptopro.ru/products/other/stunnel-msspi), подробнее можно узнать из других статей.
Далее на основании тела запроса генерируется отсоединенная подпись средствами 1С, и присоединяется к основному запросу.
Данная процедура вернет результат обработки, подписанный сертификатом. Необходимо снять эту подпись, чтобы затем сохранить результат в файл.
Применяется бесплатная утилита csptest.exe, входящая в комплект установки Крипто Про.
На первом этапе будет либо сразу получен результат, либо вернется идентификатор запроса, по которому GET-запросом необходимо получить конечный результат.
Конечный результат получаете в формате XML, который содержит данные о всех среднемесячных платежах контрагента во всех БКИ. Структура его довольно простая, по ссылке на API ЦБ есть примеры с текстом запроса и ответа.
Свои вопросы можете писать в комментариях к этой статье, надеюсь, она поможет вам сэкономить время. Ведь НБКИ в скором времени перестанет предоставлять даже кредитные отчеты своим клиентам, если не шифровать соединение сертификатом при запросе и не пользоваться двусторонней аутентификацией (то есть, требуют подписывать текст запроса и снимать подпись с ответа, проверяя подпись).