Технический документ для поставщиков информации Ломбард и получателей кредитных отчетов «Загрузка данных»-Ломбард

Материал из Wiki ГКБ
Перейти к навигации Перейти к поиску
Главная страница Предыдущая страница


Данный документ разработан для технического описания системы «База данных кредитных историй» (далее - БДКИ) АО «Государственное кредитного бюро» (далее - ГКБ). БДКИ - это ин-формационные ресурсы кредитного бюро (программно-аппаратные средства), основанные на информационных системах и информационных процессах, соответствующих требованиям, установленным законодательством Республики Казахстан, используемые для сбора и хранения информации о кредитных историях субъектов кредитных историй, мониторинга и корректировок информации, а также для формирования кредитных историй (кредитных отчетов) и осуществления иных действий, определенных Законом о кредитных бюро.

Существует два способа загрузки данных по контрактам и субъектам:

1) Пользовательский web-интерфейс ПО БДКИ;
2) Автоматическая загрузка данных.

В данном документе описывается автоматическая загрузка данных, его методы, входные XML-файлы, примеры входных и выходных SOAP-запросов, ошибки и бизнес-логика системы. Данные для автоматической загрузки предоставляются в виде ZIP- архива, содержащего XML-файл установленного формата, либо в виде непосредственно XML-файла.


Технический документ предназначается:

1) для разработчиков, которые будут реализовать взаимодействие с системой ГКБ;
2) для поставщиков информации.
Примечание: информацию с описанием передачи данных в 1 день смотрите в разделе «6. Передача информации в 1 день».


Подключение к системе «БДКИ» через Интернет

Требования


1. Сервер или персональный компьютер с доступом в Интернет.
2. Интернет-браузер:
• Internet Explorer 10 и выше;
• Mozilla Firefox 23 и выше;
• Google Chrome 29 и выше.
3. Следующие открытые TCP порты:
• 443 – интерфейс ПО БДКИ;
• 8643 – центральный сервис аутентификации CAS.


Адреса


Передача договоров

Для передачи кредитных договоров формируется XML-файл (подробное описание см. в разделе «3.1 Общая информация по договору»). При загрузке пакета необходимо указать тип файла со значением 1-«Кредитный договор».

Система осуществляет проверку файлов в два этапа:

1) Проверка корректности структуры файлов в соответствии с XSD-схемами;
2) Проверка бизнес-правил.

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

Если записи файла корректны и прошли перечисленные выше этапы проверки, то перед загрузкой информации в базу данных система проверяет, существуют ли уже субъекты и договоры, указанные в файле.


Общая информация по договору


При автоматической загрузке XML-файла, каждая запись субъекта/договора содержит признак «Вставить» (создать новый субъект/договор) либо «Обновить» (обновить данные по субъекту/договору). В одном файле может быть несколько договоров и соответственно связанных с ним субъектов.

Запись договора имеет следующую структуру: [Показать ответ]
1) Вид операции («Вставить»/«Обновить»);
2) Блок «Общая информация по договору»;
2.1) Специфические данные для договора;
3) Блок информации по обеспечениям;
4) Блок информации по субъектам (Физическое лицо);
4.1) Блок по идентификационным документам субъекта;
4.2) Блок информации по адресам субъекта;
4.3) Блок информации по контактным данным субъекта;
5) Блок информации по учетным датам.
Примечание: Все вышеуказанные блоки обязательны для заполнения.
XML пример для передачи договора: [Показать ответ]
1.	<?xml version="1.0" encoding="utf-8"?>  
2.	<Records>  
3.	    <Contract operation="2">  
4.	        <General>  
5.	            <ContractCode>Ломбард_Test_01</ContractCode>  
6.	            <AgreementNumber>Ломбард_Test_01</AgreementNumber>  
7.	            <FundingType id="2"/>  
8.	            <CreditPurpose2 id="1"/>  
9.	            <CreditObject id="03"/>  
10.	            <ContractPhase id="5"/>  
11.	            <ContractStatus id="1"/>  
12.	            <StartDate>2011-02-21</StartDate>  
13.	            <EndDate>2021-02-21</EndDate>  
14.	            <RealPaymentDate>2019-12-21</RealPaymentDate>  
15.	            <AnnualEffectiveRate>11.7</AnnualEffectiveRate>
16.	            <NominalRate>25.20</NominalRate>  
17.	            <ProlongationCount>1</ProlongationCount>  
18.	            <BranchLocation katoId="710000000"/>  
19.	            <Address katoId="750000000" typeId="5">  
20.	                <StreetName>  
21.	                    <Text language="ru-RU">пр. Достык</Text>  
22.	                </StreetName>  
23.	                <StreetNumber>136</StreetNumber>  
24.	            </Address>  
25.	            <CriminalCase>№12000 от 15.11.2019г</CriminalCase>  
26.	            <Collaterals>  
27.	                <Collateral statusId="1" typeId="5">  
28.	                    <PledgeName>  
29.	                        <Text language="en-GB">Mobile phone</Text>  
30.	                        <Text language="ru-RU">Мобильный телефон</Text>  
31.	                        <Text language="kk-KZ">Ұялы телефон</Text>  
32.	                    </PledgeName>  
33.	                    <Value currency="KZT" typeId="5">15000.00</Value>  
34.	                    <SerialNumber>45222</SerialNumber>  
35.	                    <Model>Samsung</Model>  
36.	                    <State id="1"/>  
37.	                    <Weight unitId="2">23.50</Weight>  
38.	                    <Colour>белый</Colour>  
39.	                    <Measurement>  
40.	                        <Length unitId="1">15.40</Length>  
41.	                        <Width unitId="1">12.05</Width>  
42.	                    </Measurement>  
43.	                    <ProductionDate>2018-02-15</ProductionDate>  
44.	                </Collateral>  
45.	            </Collaterals>  
46.	            <Subjects>  
47.	                <Subject roleId="1">  
48.	                    <Entity>  
49.	                        <Individual>  
50.	                            <FirstName>  
51.	                                <Text language="ru-RU">ИМЯ</Text>  
52.	                            </FirstName>  
53.	                            <Surname>  
54.	                                <Text language="ru-RU">ФАМИЛИЯ</Text>  
55.	                            </Surname>  
56.	                            <FathersName>  
57.	                                <Text language="ru-RU">ОТЧЕСТВО</Text>  
58.	                            </FathersName>  
59.	                            <Gender>F</Gender>  
60.	                            <Residency id="1"/>  
61.	                            <DateOfBirth>1989-01-01</DateOfBirth>  
62.	                            <NegativeStatus id="11"/>  
63.	                            <Citizenship id="110"/>  
64.	                            <Identifications>  
65.	                                <Identification rank="1" typeId="14">  
66.	                                    <Number>890101402472</Number>  
67.	                                    <IssueDate>2011-02-21</IssueDate>  
68.	                                </Identification>  
69.	                                <Identification rank="2" typeId="7">  
70.	                                    <Number>123456789</Number>  
71.	                                    <IssueDate>2009-02-21</IssueDate>  
72.	                                </Identification>  
73.	                            </Identifications>  
74.	                            <Addresses>  
75.	                                <Address katoId="750000000" locationId="110" typeId="1">  
76.	                                    <StreetName>  
77.	                                        <Text language="ru-RU">пр. Достык</Text>  
78.	                                    </StreetName>  
79.	                                    <StreetNumber>136</StreetNumber>  
80.	                                    <AdditionalInformation>Доп. информация</AdditionalInformation>  
81.	                                </Address>  
82.	                                <Address katoId="750000000" locationId="110" typeId="6">  
83.	                                    <StreetName>  
84.	                                        <Text language="ru-RU">пр. Достык</Text>  
85.	                                    </StreetName>  
86.	                                    <StreetNumber>136</StreetNumber>  
87.	                                    <AdditionalInformation>Доп. информация</AdditionalInformation>  
88.	                                </Address>  
89.	                            </Addresses>  
90.	                            <Communications>  
91.	                                <Communication typeId="3">87019303855</Communication>  
92.	                                <Communication typeId="2">87271234567</Communication>  
93.	                                <Communication typeId="1">87271234589</Communication>  
94.	                            </Communications>  
95.	                        </Individual>  
96.	                    </Entity>  
97.	                </Subject>  
98.	            </Subjects>  
99.	        </General>  
100.	        <Type>  
101.	            <Credit>  
102.	                <CreditLimit currency="KZT">15000.00</CreditLimit>  
103.	                <RecordsList>  
104.	                    <Record accountingDate="2019-12-27">  
105.	                        <ResidualAmount currency="KZT">0</ResidualAmount>  
106.	                        <OverdueInstalmentCount>0</OverdueInstalmentCount>  
107.	                        <OverdueAmount currency="KZT">0.00</OverdueAmount>  
108.	                        <ProlongationEndDate>2019-12-25</ProlongationEndDate>  
109.	                        <LastPaymentDate>2020-12-01</LastPaymentDate>  
110.	                    </Record>  
111.	                </RecordsList>  
112.	            </Credit>  
113.	        </Type>  
114.	    </Contract>  
115.	</Records>
Примечание: данные, предоставленные в XML примере, вымышленные, любые совпадения с реальными данными случайны. 
Таблица 1. Общая информация по договору [Показать ответ]




Информация по учетным датам


В данном разделе содержится вся специфическая информация по передаваемым учетным датам. Элемент <RecordsList> содержит учетные записи, относящиеся к договору.

SOAP Message: [Показать ответ]
1.	<Type>  
2.	    <Credit>  
3.	        <CreditLimit currency="KZT">15000.00</CreditLimit>  
4.	        <RecordsList>  
5.	            <Record accountingDate="2019-12-27">  
6.	                <ResidualAmount currency="KZT">15000.02</ResidualAmount>  
7.	                <OverdueInstalmentCount>0</OverdueInstalmentCount>  
8.	                <OverdueAmount currency="KZT">0.00</OverdueAmount>  
9.	                <ProlongationEndDate>2019-12-25</ProlongationEndDate>  
10.	            </Record>  
11.	        </RecordsList>  
12.	    </Credit>  
13.	</Type>
Таблица 2. Информация по передаваемой учетной дате: [Показать ответ]




Записи по обеспечениям


Обеспечения по кредиту - это система гарантий возвратности кредита, используемая для погашения основного долга и процентов, причитающихся кредитору. Ценности или денежные средства, являющиеся залогом возврата должником полученных в ссуду средств и уплаты им причитающихся процентов. В данном разделе содержится вся информация о видах обеспечения.

XML пример блока информации по обеспечениям: [Показать ответ]
1.	<Collaterals>  
2.	    <Collateral statusId="1" typeId="5">  
3.	        <PledgeName>  
4.	            <Text language="en-GB">Mobile phone</Text>  
5.	            <Text language="ru-RU">Мобильный телефон</Text>  
6.	            <Text language="kk-KZ">Ұялы телефон</Text>  
7.	        </PledgeName>  
8.	        <Value currency="KZT" typeId="1">15000.00</Value>  
9.	        <SerialNumber>45222</SerialNumber>  
10.	        <Model>Samsung</Model>  
11.	        <State id="1"/>  
12.	        <Weight unitId="2">23.50</Weight>  
13.	        <Colour>белый</Colour>  
14.	        <Measurement>  
15.	            <Length unitId="1">15.40</Length>  
16.	            <Width unitId="1">12.05</Width>  
17.	        </Measurement>  
18.	        <ProductionDate>2018-02-15</ProductionDate>  
19.	    </Collateral>  
20.	</Collaterals>
Таблица 3. Записи по обеспечениям: [Показать ответ]




Записи по субъектам физическим лицам


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

XML пример блока информации по субъектам: [Показать ответ]
1.	<Subjects>  
2.	    <Subject roleId="1">  
3.	        <Entity>  
4.	            <Individual>  
5.	                <FirstName>  
6.	                    <Text language="ru-RU">ИМЯ</Text>  
7.	                </FirstName>  
8.	                <Surname>  
9.	                    <Text language="ru-RU">ФАМИЛИЯ</Text>  
10.	                </Surname>  
11.	                <FathersName>  
12.	                    <Text language="ru-RU">ОТЧЕСТВО</Text>  
13.	                </FathersName>  
14.	                <Gender>F</Gender>  
15.	                <Residency id="1"/>  
16.	                <DateOfBirth>1989-01-01</DateOfBirth>  
17.	                <NegativeStatus id="11"/>  
18.	                <Citizenship id="110"/>  
19.	                <Identifications>  
20.	                    <Identification rank="1" typeId="14">  
21.	                        <Number>890101402472</Number>  
22.	                        <IssueDate>2011-02-21</IssueDate>  
23.	                    </Identification>  
24.	                    <Identification rank="2" typeId="7">  
25.	                        <Number>123456789</Number>  
26.	                        <IssueDate>2009-02-21</IssueDate>  
27.	                    </Identification>  
28.	                </Identifications>  
29.	                <Addresses>  
30.	                    <Address katoId="750000000" locationId="110" typeId="1">  
31.	                        <StreetName>  
32.	                            <Text language="ru-RU">пр. Достык</Text>  
33.	                        </StreetName>  
34.	                        <StreetNumber>136</StreetNumber>  
35.	                        <AdditionalInformation>Дополнительная информация</AdditionalInformation>  
36.	                    </Address>  
37.	                    <Address katoId="750000000" locationId="110" typeId="6">  
38.	                        <StreetName>  
39.	                            <Text language="ru-RU">пр. Достык</Text>  
40.	                        </StreetName>  
41.	                        <StreetNumber>136</StreetNumber>  
42.	                        <AdditionalInformation>Дополнительная информация</AdditionalInformation>  
43.	                    </Address>  
44.	                </Addresses>  
45.	                <Communications>  
46.	                    <Communication typeId="3">87019303855</Communication>  
47.	                    <Communication typeId="2">87271234567</Communication>  
48.	                    <Communication typeId="1">87271234589</Communication>  
49.	                </Communications>  
50.	            </Individual>  
51.	        </Entity>  
52.	    </Subject>  
53.	</Subjects>
Таблица 4. Записи по субъектам физическим лицам: [Показать ответ]



Алгоритм расчета контрольного разряда для ИИН: [Показать ответ]

При расчете используется следующий алгоритм в два цикла:

а12=(а1*b1+а2*b2+а3*b3+а4*b4+а5*b5+а6*b6+а7*b7+а8*b8+а9*b9+a10*b10+a11*b11) mod 11,

где ai - значение i-гo разряда; bi - вес i-гo разряда.


Первый цикл


Второй цикл

Если полученное число равно 10, то расчет контрольного разряда производится с другой последовательностью весов:



Процесс загрузки данных

Данные в ИС БДКИ можно передавать 2-мя способами: [Показать ответ]
1. Посредством веб-интерфейса – пакеты в этом случае загружаются вручную через раздел «Администрирование». Более подробно этот способ описан в техническом документе «Пользовательская инструкция ИС БДКИ Часть 1 «Для Поставщиков информации».
2. Посредством веб-сервиса – пакеты в этом случае загружаются посредством вызова метода веб-сервиса по загрузке пакетов. Более подробно сервис описан в разделе «4.1 Сервис загрузки пакетов BatchProcessingWebService» данного документа.
Примечания: [Показать ответ]
- система поддерживает следующие возможные форматы файлов для загрузки - *.zip и *.xml;
- имеется возможность выбора нескольких файлов для загрузки;
- размер одного передаваемого пакета ограничен - 100 Мб (в пользовательском интерфейсе в случае превышения лимита отображается сообщение об ошибке);
- в одном XML/ZIP пакете можно передавать до 10 000 записей;
- при загрузке в ИС БДКИ данных в виде одного XML/ZIP файла, необходимо передавать от 10 000 (десяти тысяч) до 50 000 (пятидесяти тысяч) контрактов. В случае, если количество передаваемых контрактов составляет менее 10 000 (десяти тысяч) контрактов, то необходимо передавать все контракты в одном XML/ZIP файле.
Независимо от способа передачи пакета: [Показать ответ]

→Независимо от способа передачи пакета, после получения запроса от пользователя о появлении нового файла на сервере, система перемещает его с сервера и размещает в локальной папке. На этом шаге файлу присваивается ID для того, чтобы он не был утерян. Далее файл отправляется в архив, где он переименовывается (наименование содержит ID пакета в системе) и размещается в папке, наименование которой содержит дату загрузки. Параллельно система отправляет нотификацию о том, что файл принят в обработку (сообщение содержит ID пакета) и файл поступает на проверку. Проверка файла осуществляется в несколько этапов:

1. Проверка корректности структуры файла в соответствии с XSD-схемами.

→Если файл не прошел данный этап валидации, то в системе регистрируется факт не прохождения проверки с отражением причины непринятия файла в БДКИ. Одновременно, пользователю, осуществляющему загрузку информации, направляется уведомление с указанием наименования файла и описанием ошибки, из-за которой загруженный файл не прошел проверку валидации.

2. Проверка бизнес-правил.

→Если в файле с информацией, подлежащей загрузке в БДКИ, присутствуют и корректные, и ошибочные записи, то в результате обработки файла в БДКИ корректные записи, согласно бизнес-правилам, описанными в настоящем Техническом документе, загружаются и сохраняются в БДКИ. Перечень не принятых ошибочных записей также будет выявлен в БДКИ, при этом Поставщик информации получит уведомление с описанием ошибочных записей в загруженном файле.

→При загрузке файла каждая запись субъекта/контракта содержит признак «Вставить» (т.е. создать новый контракт/субъект) либо «Обновить» (обновить данные по контракту/субъекту).

→Если в файле есть и ошибочные и корректные записи, то корректные записи загружаются и сохраняются в базе, а ошибочные записи не попадают в систему, при этом Поставщик информации уведомляется о возникшей ошибке.

→Если записи файла корректны и прошли перечисленные выше этапы проверки, то перед загрузкой информации в БДКИ система проверяет существуют ли уже субъекты и контракты, указанные в файле.

Проверка наличия контрактов в системе: [Показать ответ]

Независимо от вида операции («Вставить»/«Обновить») система осуществит поиск контракта в системе. Идентификация контрактов осуществляется по следующим полям (совпадение по всем параметрам):

1) Код контракта;
2) Дата начала срока действия договора;
3) Поставщик информации.

В случае если контракт не найден, то он создается. Создание контракта осуществляется в соответствии с определенными требованиями.

Механизм обновления/добавления данных выглядит следующим образом: [Показать ответ]
1) Перезапись - сохранение всех полей; если переданы пустые поля, значит, сохраняются пустые поля;
2) Обновление - сохранение заполненных переданных значений; если переданы пустые поля, то оставляются прежние значения.
Таблица 5. Процесс загрузки данных: [Показать ответ]




Сервис загрузки пакетов BatchProcessingWebService


Сервис BatchProcessingWebService предназначен для пакетной загрузки файлов, а также для предоставления различной служебной информации о загруженных и загружаемых файлах.

Для успешного вызова веб-сервиса необходимо обязательное указание следующих параметров: [Показать ответ]

1) ID и Пароль клиента (организации) в HTTP Header, необходимый для базовой аутентификации. Так как коммуникация с веб-сервисами системы идет по защищенному протоколу HTTPS, базовая аутентификация представляется безопасным решением.

2) ID пользователя, от имени которого будет выполнена запрашиваемая операция, в SOAP Header: Http Headers: {Authorization=[Basic 3ZjUnB0U3lzdGVtQWNjb3VudDpBbzZVRkdyVTZ2]}, где c3ZjUnB0U3lzdGVtQWNjb3VudDpBbzZVRkdyVTZ2 - есть значение HTTP Header, представляющее собой ID клиента (организации) и его пароль в формате «clientId:password» и кодировке Base64 как того требует механизм Basic Authentication.

SOAP Message имеет следующий вид: [Показать ответ]
1.	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://data.chdb.scb.kz">   
2.	    <soapenv:Header>        
3.	        <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	    </soapenv:Header>  
5.	    <soapenv:Body>  
6.	        <data:методСервиса>  
7.	        ...  
8.	        </data:методСервиса>  
9.	    </soapenv:Body>  
10.	</soapenv:Envelope>
Обработка данных в системе производится следующим образом: [Показать ответ]

1) Вызов любого веб-сервиса идет через ESB. На этом уровне:

а) Производится базовая аутентификация - проверяется, есть ли в системе активный клиент соответствующий указанным в HTTP Authorization Header данным;
б) Определяется, действительно ли указанный в <userId> SOAP Header пользователь работает на указанного клиента и активен ли он;
в) Проверяется, имеет ли клиент доступ к запрошенному веб-сервису;

В случае, если один из вышеперечисленных пунктов не выполняется - вызывающему клиенту отсылается сообщение об ошибке, а вызов веб-сервиса не уходит дальше в модуль системы.

2) После успешной проверки на ESB вызов приходит в модуль сервисов - UM или Reporting или Data. Здесь по идентификатору из <userId> формируется пользовательский контекст, т.е. определяется, какой пользователь пытается совершить операцию и какие роли у него есть. Это позволяет установить всякого рода ограничения: например, пользователь, работающий в организации A, не сможет изменять контракты организации B (если, например, такого рода изменение указано в Batch-файле), или же он вообще не сможет изменить контракт, если роли этого не позволяют.


Метод uploadFile сервиса BatchProcessingWebService


Метод uploadFile выполняет загрузку пакетов на сервер, регистрацию принятых пакетов и постановку пакетов в очередь на обработку.

Пример входных параметров метода uploadFile: [Показать ответ]
1.	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://data.chdb.scb.kz">
2.	 <soapenv:Header>
3.	  <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>
4.	 </soapenv:Header>
5.	 <soapenv:Body> 
6.	  <data:uploadFile> 
7.	   <!-- Содержимое XML файла, закодированное в BASE64 --> 
8.	   <file>PFJlY29yZHM...Vjb3Jkcz4=</file> 
9.	   <!-- Имя пакета (не принимается наименование на кириллице) --> 
10.	   <fileName>new_batch.xml</fileName> 
11.	   <!-- Тип пакета (1-кредитный договор) --> 
12.	   <fileType>1</fileType>
13.	   
14.	   <!-- ИЛИ --> 
15.	   <!-- Тип пакета (3-оперативная загрузка) для загрузки в 1 день -->
16.	   <fileType>3</fileType>
17.	   
18.	  </data:uploadFile>
19.	 </soapenv:Body>  
20.	</soapenv:Envelope>
Примечание: 
1. Значение <userId> смотрите в форме на предоставление доступа к ИС БДКИ.
2. При передаче информации в 1 день в теге <fileType> необходимо указывать значение 3.
Таблица 6. Входные параметры метода uploadFile: [Показать ответ]



Пример выходных параметров метода uploadFile: [Показать ответ]
1.	<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
2.	 <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">  
3.	  <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	  <creditorId>xx</creditorId>  
5.	  <timestamp>1581502678429</timestamp>  
6.	 </SOAP-ENV:Header>  
7.	 <soap:Body>  
8.	  <ns2:uploadFileResponse xmlns:ns2="http://data.chdb.scb.kz">  
9.	   <batchPackageId>241010</batchPackageId>  
10.	  </ns2:uploadFileResponse>  
11.	 </soap:Body>  
12.	</soap:Envelope>
Таблица 7. Выходные параметры метода uploadFile: [Показать ответ]


Исключительные ситуации:

Метод uploadFile может возвращать следующие виды ошибок:

1. ScbBusinessFault
2. ScbSystemFault
3. ScbValidationFault

Подробное описание видов ошибок см. в разделе «4.2 Ошибки web-сервиса»



Метод getImportInfo сервиса BatchProcessingWebService


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

Пример входных параметров метода getImportInfo: [Показать ответ]
1.	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://data.chdb.scb.kz">  
2.	    <soapenv:Header>        
3.	        <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	    </soapenv:Header>  
5.	    <soapenv:Body>  
6.	        <data:getImportInfo>            
7.	            <params>                
8.	                <!-- Параметры поддержки постраничной выборки данных -->  
9.	                <paginationSupportDto>                      
10.	                    <firstResult>0</firstResult>                      
11.	                    <maxResults>10</maxResults>  
12.	                </paginationSupportDto>                 
13.	                <!-- ID пакета, зарегистрированного в системе БДКИ -->  
14.	                <packageId>232943</packageId>  
15.	                <!-- Язык, на котором будет возвращаться информация (ru, kk, en) -->  
16.	                <language>ru</language>  
17.	            </params>  
18.	        </data:getImportInfo>  
19.	    </soapenv:Body>  
20.	</soapenv:Envelope>
Примечание: значение <userId> смотрите в форме на предоставление доступа к ИС БДКИ.
Таблица 8. Входные параметры метода getImportInfo: [Показать ответ]
Пример выходных параметров метода getImportInfo: [Показать ответ]
1.	<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
2.	    <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">  
3.	        <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	        <creditorId>xx</creditorId>  
5.	        <timestamp>1581565079710</timestamp>  
6.	    </SOAP-ENV:Header>  
7.	    <soap:Body>  
8.	        <ns2:getImportInfoResponse xmlns:ns2="http://data.chdb.scb.kz">  
9.	            <filesImportInfo>  
10.	                <batchFileDtoList>  
11.	                    <fileId>240699</fileId>  
12.	                    <fileNumber>1</fileNumber>  
13.	                    <fileScheme>1</fileScheme>  
14.	                    <fileName>new_batch1.xml</fileName>  
15.	                    <batchFile>Путь к batch-файлу на сервере</batchFile>  
16.	                    <uploadedTime>2020-02-13T09:35:59.234+06:00</uploadedTime>  
17.	                    <batchUploadStatus>Файл обработан.</batchUploadStatus>  
18.	                    <numberOfContracts>1</numberOfContracts>  
19.	                    <numberOfSubjects>0</numberOfSubjects>  
20.	                    <updatedContracts>0</updatedContracts>  
21.	                    <updatedSubjects>0</updatedSubjects>  
22.	                    <newContracts>0</newContracts>  
23.	                    <newSubjects>0</newSubjects>  
24.	                    <mergedContracts>0</mergedContracts>  
25.	                    <skippedContracts>1</skippedContracts>  
26.	                    <mergedSubjects>0</mergedSubjects>  
27.	                    <numberOfErrors>0</numberOfErrors>  
28.	                    <batchPackage>  
29.	                        <packageId>241029</packageId>  
30.	                        <packageName>Пакет.zip</packageName>  
31.	                        <addTime>2020-02-13T09:35:55.583+06:00</addTime>  
32.	                        <creditor>ТОО "Василёк"</creditor>  
33.	                        <employee>Иван Иванович Иванов</employee>  
34.	                    </batchPackage>  
35.	                </batchFileDtoList>  
36.	                <batchFileDtoList>  
37.	                    <fileId>240700</fileId>  
38.	                    <fileNumber>2</fileNumber>  
39.	                    <fileScheme>1</fileScheme>  
40.	                    <fileName>new_batch2.xml</fileName>  
41.	                    <batchFile>Путь к batch-файлу на сервере</batchFile>  
42.	                    <uploadedTime>2020-02-13T09:36:04.005+06:00</uploadedTime>  
43.	                    <batchUploadStatus>Ошибка обработки.</batchUploadStatus>  
44.	                    <numberOfContracts>0</numberOfContracts>  
45.	                    <numberOfSubjects>0</numberOfSubjects>  
46.	                    <updatedContracts>0</updatedContracts>  
47.	                    <updatedSubjects>0</updatedSubjects>  
48.	                    <newContracts>0</newContracts>  
49.	                    <newSubjects>0</newSubjects>  
50.	                    <mergedContracts>0</mergedContracts>  
51.	                    <skippedContracts>0</skippedContracts>  
52.	                    <mergedSubjects>0</mergedSubjects>  
53.	                    <numberOfErrors>3</numberOfErrors>  
54.	                    <batchPackage>  
55.	                        <packageId>241029</packageId>  
56.	                        <packageName>Пакет.zip</packageName>  
57.	                        <addTime>2020-02-13T09:35:55.583+06:00</addTime>  
58.	                        <creditor>ТОО "Василёк"</creditor>  
59.	                        <employee>Иван Иванович Иванов</employee>  
60.	                    </batchPackage>  
61.	                </batchFileDtoList>  
62.	                <count>2</count>  
63.	            </filesImportInfo>  
64.	        </ns2:getImportInfoResponse>  
65.	    </soap:Body>  
66.	</soap:Envelope>


Таблица 9. Выходные параметры метода getImportInfo: [Показать ответ]
Таблица 10. Выходной параметр batchFile (tns:batchFileDto): [Показать ответ]
Таблица 11. Выходной параметр batchPackage (tns:batchPackageDto): [Показать ответ]


Метод getImportDetailInfo сервиса BatchProcessingWebService


При успешной загрузке данных, метод getImportDetailInfo дает возможность детально посмотреть какие именно контракты/субъекты записались или обновились, а также конкретный вид ошибки, которые возникли в результате загрузки.

Пример входных параметров метода getImportDetailInfo: [Показать ответ]
1.	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://data.chdb.scb.kz">  
2.	    <soapenv:Header>  
3.	        <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	    </soapenv:Header>  
5.	    <soapenv:Body>  
6.	        <data:getImportDetailInfo>  
7.	            <params>  
8.	                <!-- Параметры поддержки постраничной выборки данных -->  
9.	                <paginationSupportDto>                      
10.	                    <firstResult>0</firstResult>  
11.	                    <maxResults>10</maxResults>  
12.	                </paginationSupportDto>  
13.	                <!-- Идентификатор batch-файла, зарегистрированный в БДКИ -->  
14.	                <fileId>240700</fileId>  
15.	                <!--  
16.	                Тип записи:  
17.	                0 - для получения ошибочных записей  
18.	                1 - для получения новых записей  
19.	                2 - для получения обновленных записей  
20.	                3 - для получения объединенных записей  
21.	                4 - для получения детальной информации о всех записях, кроме ошибочных  
22.	                -->  
23.	                <recordGroupStatus>0</recordGroupStatus>  
24.	                <!-- Язык, на котором будет возвращаться информация (ru, kk, en) -->  
25.	                <language>ru</language>  
26.	            </params>  
27.	        </data:getImportDetailInfo>  
28.	    </soapenv:Body>  
29.	</soapenv:Envelope>
Примечание: значение <userId> смотрите в форме на предоставление доступа к ИС БДКИ.
Таблица 11. Входные параметры метода getImportDetailInfo: [Показать ответ]
Пример выходных параметров метода getImportDetailInfo: [Показать ответ]
1.	<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
2.	    <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">  
3.	        <userId>xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx</userId>  
4.	        <creditorId>xx</creditorId>  
5.	        <timestamp>1581574303768</timestamp>  
6.	    </SOAP-ENV:Header>  
7.	    <soap:Body>  
8.	        <ns2:getImportDetailInfoResponse xmlns:ns2="http://data.chdb.scb.kz">  
9.	            <recordsImportInfo>  
10.	                <batchRecordDtoList>  
11.	                    <recordId>209060544</recordId>  
12.	                    <contractId>17775000</contractId>  
13.	                    <contractPhase>5</contractPhase>  
14.	                    <contractCode>Контракт01</contractCode>  
15.	                    <creditDiscriminator>1</creditDiscriminator>  
16.	                    <result>Создан новый контракт.</result>  
17.	                </batchRecordDtoList>  
18.	                <batchRecordDtoList>  
19.	                    <recordId>209060551</recordId>  
20.	                    <subjectId>859962</subjectId>  
21.	                    <subjectName>ФИО субъекта 01</subjectName>  
22.	                    <iinBin>ИИН</iinBin>  
23.	                    <contractId>17775000</contractId>  
24.	                    <contractPhase>5</contractPhase>  
25.	                    <contractCode>Контракт01</contractCode>  
26.	                    <creditDiscriminator>1</creditDiscriminator>  
27.	                    <result>Субъект обновлен.</result>  
28.	                </batchRecordDtoList>  
29.	                <batchRecordDtoList>  
30.	                    <recordId>209060552</recordId>  
31.	                    <subjectId>9081626</subjectId>  
32.	                    <subjectName>ФИО субъекта 02</subjectName>  
33.	                    <iinBin>ИИН</iinBin>  
34.	                    <contractId>17775000</contractId>  
35.	                    <contractPhase>5</contractPhase>  
36.	                    <contractCode>Контракт01</contractCode>  
37.	                    <creditDiscriminator>1</creditDiscriminator>  
38.	                    <result>Субъект обновлен.</result>  
39.	                </batchRecordDtoList>  
40.	                <count>3</count>  
41.	            </recordsImportInfo>  
42.	        </ns2:getImportDetailInfoResponse>  
43.	    </soap:Body>  
44.	</soap:Envelope>


Таблица 12. Выходные параметры метода getImportDetailInfo: [Показать ответ]


Исключительные ситуации:

Метод getImportDetailInfo может возвращать ошибки вида ScbBusinessFault.

Подробное описание видов ошибок см. в разделе «4.2 Ошибки web-сервиса»


Ошибки web-сервиса


Веб-сервисы ПО БДКИ могут возвращать следующие виды ошибок:

1. ScbBusinessFault - бизнес-ошибки;
2. ScbValidationFault - ошибки валидации;
3. ScbSystemFault - системные ошибки.


Бизнес-ошибки ScbBusinessFault


Предсказуемые ошибки, связанные, как правило, с бизнес-логикой работы ПО БДКИ. Например, проверки правил бизнес-логики, проверки безопасности, данные не найдены и т.д.

Таблица 13. Описание ошибок вида ScbBusinessFault: [Показать ответ]


Бизнес-ошибки ScbValidationFault


Ошибки, возникающие при проверке корректности данных. Например, нарушение правил бизнес-логики, превышение размерности данных и т.д. Возвращается список, содержащий структуру, которая описана в таблице ниже.

Таблица 14. Описание ошибок вида ScbValidationFault: [Показать ответ]


Бизнес-ошибки ScbValidationFault


Непредвиденные ошибки, которые могут возникнуть при работе ПО БДКИ. Например, ошибки подключения к каким-то ресурсам, сетевые ошибки, ошибки недостаточности памяти и т.д.

Таблица 15. Описание ошибок вида ScbSystemFault: [Показать ответ]


Входные параметры paginationSupportDto


Таблица 16. Параметры для получения сущности из БД (baseGetParams): [Показать ответ]
Таблица 17. Параметры поддержки постраничной выборки данных (paginationSupportDto): [Показать ответ]
Таблица 18. Параметр поддержки поиска по частичному совпадению (PaginationOrderPartialCoincidenceParam): [Показать ответ]


Правила бизнес-логики

В системе ГКБ существует два состояния для контрактов и субъектов: предварительный и активный. При автоматической загрузке контракта/субъекта присваивается состояние «Активный». При создании контракта/субъекта автоматически состояние присваивается равным «Предварительный», как только внесены все необходимые данные, состояние становится «Активный».

Примечание: в случае, если при внесении всех данных по субъекту/контракту состояние не меняется с «Предварительного» на «Активный», необходимо в интерфейсе зайти в раздел редактирования субъекта/контракта и не меняя данные произвести пересохранение.

Только «Активные» контракты/субъекты участвуют в формировании отчетов. Обратный переход контракта/субъекта из состояния «Активный» в «Предварительный» не допускается. В нижеприведенной таблице описаны бизнес-правила для активных контрактов/субъектов, загружаемых в систему при помощи автоматической загрузки. Бизнес-правила для пользовательского интерфейса описаны в «Пользовательской инструкции ИС БДКИ Часть 1 «Для Поставщиков информации».

Детальное описание правил бизнес-логики приведено в документе «Приложение №1 к Договору о предоставлении информации в кредитное бюро «Структура базы данных кредитного бюро».

Таблица 19. Правила бизнес-логики по контрактам и субъектам: [Показать ответ]


Передача информации в 1 день

Контракты физических лиц, которые будут передаваться в 1 день, должны загружаться в систему в отдельной схеме. При загрузке таких контрактов необходимо указать тип файла со значением 3-«Оперативная загрузка» (смотрите подраздел 4.1.1 Метод uploadFile сервиса BatchProcessingService раздела «4.1 Процесс загрузки пакетов BatchProcessingService»). Данный тип файла предназначен исключительно для отправки вновь выданных контрактов согласно внесенным изменениям в Закон «О кредитных бюро и формировании кредитных историй в РК», которые вступят в силу 01 октября 2022г.

Обязательность полей для данного типа файла отличается от типа 1 - «Кредитный договор».

Для удобства Поставщиков информации, контракты с полным набором полей, аналогичным типу файла 1, также будут приниматься системой по типу 3. При этом в БДКИ будут записываться только поля, обязательные для типа 3. Остальные поля не записываются в БДКИ (присваивается значение NULL), несмотря на их наличие в XML файле.

Дальнейшее обновление контрактов (на 10 день) производится Поставщиками информации в прежнем режиме по типу файла 1.

Контракты, отправленные по типу 3, имеют наивысший приоритет при загрузке.


Общая информация по договору


XML пример для передачи договора в 1 день: [Показать ответ]
1.	<?xml version="1.0" encoding="utf-8"?>  
2.	<Records>  
3.	 <Contract operation="2">  
4.	  <General>  
5.	   <ContractCode>Ломбард_OneDay_Test_01</ContractCode>  
6.	   <AgreementNumber>Ломбард_OneDay_Test_01</AgreementNumber>  
7.	   <FundingType id="2"/>
8.	   <ContractPhase id="4"/>  
9.	   <ContractStatus id="4"/>  
10.	   <StartDate>2021-02-21</StartDate>  
11.	   <EndDate>2021-03-21</EndDate>  
12.	   <AnnualEffectiveRate>11.7</AnnualEffectiveRate>
13.	   <NominalRate>25.20</NominalRate>
14.	   <Subjects>  
15.	    <Subject roleId="1">  
16.	     <Entity>  
17.	      <Individual>  
18.	       <FirstName>  
19.	        <Text language="ru-RU">ИМЯ</Text>  
20.	       </FirstName>  
21.	       <Surname>  
22.	        <Text language="ru-RU">ФАМИЛИЯ</Text>  
23.	       </Surname>       
24.	       <FathersName>  
25.	        <Text language="ru-RU">ОТЧЕСТВО</Text>  
26.	       </FathersName>       
27.	       <Residency id="1"/>
28.	       <DateOfBirth>1989-01-01</DateOfBirth>  
29.	       <Identifications>  
30.	        <Identification rank="1" typeId="14">  
31.	         <Number>890101402472</Number>  
32.	        </Identification>  
33.	        <Identification rank="2" typeId="7">  
34.	         <Number>123456789</Number>  
35.	        </Identification>  
36.	       </Identifications>  
37.	       <Addresses>  
38.	        <Address katoId="750000000" locationId="110" typeId="1">  
39.	         <StreetName>  
40.	          <Text language="ru-RU">пр. Достык</Text>  
41.	         </StreetName>  
42.	        </Address>  
43.	        <Address katoId="750000000" locationId="110" typeId="6">  
44.	         <StreetName>  
45.	          <Text language="ru-RU">пр. Достык</Text>  
46.	         </StreetName>  
47.	        </Address>  
48.	       </Addresses>  
49.	      </Individual>  
50.	     </Entity>  
51.	    </Subject>  
52.	   </Subjects>  
53.	  </General>  
54.	  <Type>  
55.	   <Credit>  
56.	    <CreditLimit currency="KZT">15000.00</CreditLimit>  
57.	    <RecordsList>  
58.	     <Record accountingDate="2019-12-27">  
59.	      <ResidualAmount currency="KZT">0</ResidualAmount>
60.	     </Record>  
61.	    </RecordsList>  
62.	   </Credit>  
63.	  </Type>  
64.	 </Contract>  
65.	</Records>
Примечание: данные, предоставленные в XML примере, вымышленные, любые совпадения с реальными данными случайны. 
Таблица 20. Общая информация по договору: [Показать ответ]




Информация по учетным датам


В данном разделе содержится вся специфическая информация по передаваемым учетным датам. Элемент <RecordsList> содержит учетные записи, относящиеся к договору.


XML пример блока: [Показать ответ]
1.	<Type>  
2.	 <Credit>  
3.	  <CreditLimit currency="KZT">15000.00</CreditLimit>  
4.	  <RecordsList>  
5.	   <Record accountingDate="2019-12-27">  
6.	    <ResidualAmount currency="KZT">0</ResidualAmount>
7.	   </Record>  
8.	  </RecordsList>  
9.	 </Credit>  
10.	</Type>
Таблица 21. Информация по передаваемой учетной дате: [Показать ответ]




Записи по обеспечениям


В данном разделе содержится информация о видах обеспечения.

XML пример блока информации по обеспечениям: [Показать ответ]
1.	<Collaterals>  
2.	 <Collateral statusId="1" typeId="5"/>
3.	</Collaterals>
Таблица 22. Записи по обеспечениям: [Показать ответ]




Записи по субъектам физическим лицам


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

XML пример блока информации по субъектам: [Показать ответ]
1.	<Subjects>  
2.	 <Subject roleId="1">  
3.	  <Entity>  
4.	   <Individual>  
5.	    <FirstName>  
6.	     <Text language="ru-RU">ИМЯ</Text>  
7.	    </FirstName>  
8.	    <Surname>  
9.	     <Text language="ru-RU">ФАМИЛИЯ</Text>  
10.	    </Surname>       
11.	    <FathersName>  
12.	     <Text language="ru-RU">ОТЧЕСТВО</Text>  
13.	    </FathersName>       
14.	    <Residency id="1"/>
15.	    <DateOfBirth>1989-01-01</DateOfBirth>  
16.	    <Identifications>  
17.	     <Identification rank="1" typeId="14">  
18.	      <Number>890101402472</Number>  
19.	     </Identification>  
20.	     <Identification rank="2" typeId="7">  
21.	      <Number>123456789</Number>  
22.	     </Identification>  
23.	    </Identifications>  
24.	    <Addresses>  
25.	     <Address katoId="750000000" locationId="110" typeId="1">  
26.	      <StreetName>  
27.	       <Text language="ru-RU">пр. Достык</Text>  
28.	      </StreetName>  
29.	     </Address>  
30.	     <Address katoId="750000000" locationId="110" typeId="6">  
31.	      <StreetName>  
32.	       <Text language="ru-RU">пр. Достык</Text>  
33.	      </StreetName>  
34.	     </Address>  
35.	    </Addresses>  
36.	   </Individual>  
37.	  </Entity>  
38.	 </Subject>  
39.	</Subjects>
Таблица 23. Записи по субъектам физическим лицам: [Показать ответ]




Справочники

Следующие списки представляют собой базовые начальные данные, доступные в системе, но которые могут быть изменены либо дополнены.


Вид проводимой операции


Вид финансирования <FundingType>


Цель кредита 2 <CreditPurpose2>


Объект кредитования <CreditObject>


Фаза контракта <ContractPhase>


Статус контракта <ContractStatus>


Местонахождение филиала <BranchLocation>


Тип адреса (AddressType)


Поддерживаемые языки (language)


Вид залога/заклада (CollateralType)


Статус предмета залога (CollateralStatus)


Вид стоимости обеспечения <Value>


Роль субъекта (SubjectRole)


Состояние <State>


Единицы измерения массы <Weight>


Единицы измерения длины <Length> и ширины <Width>


Пол <Gender>


Признак резиденства <Residency>


Статус субъекта <NegativeStatus>


Вид документа (IdentificationType)


Категория документа (IdentificationRank)


Коды валют


Вид связи (CommunicationType)


Коды ошибок сервиса BatchProcessingWebService


Главная страница Предыдущая страница