.. meta:: :description: /api/mfo/scoring API endpoint SBC: устаревший API скоринга микрофинансовых организаций для оценки риска заёмщика перед выдачей займа. .. _api_mfo_scoring: /api/mfo/scoring ################ .. role:: ex .. role:: code Введение ^^^^^^^^^^^^ | Скоринг карты запускается запросом :code:`HTTPS POST` к указанным ниже :ref:`URL-адресам` и :ref:`параметрам`. Каждый запрос должен содержать :ex:`{client_order_ID}`, сформированный Присоединяющейся стороной. :ex:`{endpointId}` в URL запроса предоставляется Платёжным Шлюзом. Каждый запрос должен быть подписан, а подпись должна быть помещена в заголовок запроса :ref:`X-Authorization`. .. _api_url_mfo_scoring: API URL ^^^^^^^^ .. note:: | Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее. .. list-table:: :widths: 50, 50 :header-rows: 1 :class: longtable * - Интеграционная среда - Производственная среда * - :ex:`https://sandbox.sbctech.ru/paynet/api/mfo/scoring/{endpoint_id}/{client_order_id}` - :ex:`https://gate.sbctech.ru/paynet/api/mfo/scoring/{endpoint_id}/{client_order_id}` .. _api_parameters_mfo_scoring: Параметры запроса ^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 35, 40, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Формат * - :code:`first6PanDigits` - Первые 6 цифр номера карты. Отправьте либо :ex:`cardRefId`, либо :ex:`cardNumber`, либо сочетание :ex:`first6PanDigits` и :ex:`last4PanDigits`, но не все варианты. - N6 * - :code:`last4PanDigits` - Последние 4 цифры номера карты. Отправьте :ex:`cardRefId` или :ex:`cardNumber` либо комбинацию :ex:`first6PanDigits` и :ex:`last4PanDigits`, но не всё сразу. - N4 * - :code:`cardRefId` - Созданный ранее запросом :ref:`/api/v2/create-card-ref/` :ex:`card-ref-id` (Card Reference ID), который можно использовать для поиска конкретной карты по её токену. Отправьте либо :ex:`cardRefId`, либо :ex:`cardNumber`, либо комбинацию :ex:`first6PanDigits` и :ex:`last4PanDigits`, но не все значения одновременно. - N{1-\*} * - :code:`uniqueCardRefId` - Значение :ex:`unq-card-ref-id` (уникальный идентификатор ссылки на карту) для каждого :ex:`PAN`, созданное ранее запросом :ref:`/api/v2/create-card-ref/`, может использоваться Присоединяющейся стороной для программ лояльности или контроля мошенничества. - N{1-\*} * - :code:`cardNumber` - Полный номер карты. Передавайте либо :ex:`cardNumber`, либо :ex:`cardRefId`, либо комбинацию :ex:`first6PanDigits` и :ex:`last4PanDigits`, но не всё сразу. - N{13-19} * - :code:`cardExpiryMonth` - Месяц истечения срока действия карты, если используются first6PanDigits и last4PanDigits (необязательно). - N{1-2} * - :code:`cardExpiryYear` - Год истечения срока действия карты, если используются first6PanDigits и last4PanDigits (необязательно). - N4 Параметры ответа ^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 35, 40, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Формат * - :code:`error` - При возникновении ошибки здесь можно увидеть её краткое описание. - | ``Тип``: String * - :code:`bankBin` - Карта`s банк identification номер (As a rule, first 6 digits of the карта номер). - | ``Тип``: Integer | ``Example``: :ex:`444444` * - :code:`cardFound` - Этот параметр показывает, есть ли у системы информация о карточном скоринге для этой карты. - | ``Тип``: Boolean | Описание: ``Example``: :ex:`true` * - :code:`countIssuedFor180Days` - Количество транзакций по выдаче займов МФО за последние 180 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`countIssuedFor30Days` - Количество транзакций по выдаче займов МФО за последние 30 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`countIssuedFor90Days` - Количество транзакций по выдаче займов МФО за последние 90 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`expiredMonth` - Месяц срока действия карты. - | ``Тип``: Integer | ``Example``: :ex:`12` * - :code:`expiredYear` - Год срока действия карты. - | ``Тип``: Integer | ``Example``: :ex:`2099` * - :code:`incomingTransferAmountFor30Days` - Сумма входящих переводов за 30 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`incomingTransferAmountFor365Days` - Сумма входящих переводов за 365 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`incomingTransferAmountFor60Days` - Сумма входящих переводов за 60 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`incomingTransferAmountFor90Days` - Сумма входящих переводов за 90 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`lastDischargeAmount` - Сумма of last reплатёж. - | ``Тип``: Decimal | ``Example``: :ex:`111.400` * - :code:`lastDischargeDate` - Дата of last reплатёж. - | ``Тип``: YYYY.MM.DD | ``Example``: :ex:`2015.07.24` * - :code:`lastFourDigits` - Последние 4 цифры номера карты. - | ``Тип``: Integer | ``Example``: :ex:`1234` * - :code:`lastSuccessfulDischargeAmount` - Сумма последнего успешного погашения. - | ``Тип``: Decimal | ``Example``: :ex:`1.400` * - :code:`lastSuccessfulDischargeDate` - Дата последнего успешного погашения. - | ``Тип``: YYYY.MM.DD | ``Example``: :ex:`2015.07.24` * - :code:`mfoCountFor180Days` - Количество уникальных МФО, проводивших транзакции за последние 180 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`mfoCountFor30Days` - Количество уникальных МФО, проводивших транзакции за последние 30 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`mfoCountFor90Days` - Количество уникальных МФО, проводивших транзакции за последние 90 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`mfoIssuedFor180Days` - Количество уникальных МФО, выдавших займы за последние 180 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`mfoIssuedFor30Days` - Количество уникальных МФО, выдавших займы за последние 30 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`mfoIssuedFor90Days` - Количество уникальных МФО, выдавших займы за последние 90 дней. - | ``Тип``: Integer | ``Example``: :ex:`1` * - :code:`orderId` - Номер заказа, сгенерированный в системе. - | ``Тип``: Integer | ``Example``: :ex:`3623277` * - :code:`outgoingTransferAmountFor30Days` - Сумма исходящих переводов за 30 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`outgoingTransferAmountFor365Days` - Сумма исходящих переводов за 365 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`outgoingTransferAmountFor60Days` - Сумма исходящих переводов за 60 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`outgoingTransferAmountFor90Days` - Сумма исходящих переводов за 90 дней. - | ``Тип``: Decimal | ``Example``: :ex:`100.25` * - :code:`totalDischargeAmount` - Сумма всех выданных средств. - | ``Тип``: Decimal | ``Example``: :ex:`15.410` * - :code:`totalIssuedAmount` - Сумма всех выплаченных средств. - | ``Тип``: Decimal | ``Example``: :ex:`10.420` * - :code:`totalRecurrentAmount` - Сумма всех принудительно списанных средств. - | ``Тип``: Decimal | ``Example``: :ex:`9.000` * - :code:`transfersFromMFO` - Индикатор займов МФО. - | ``Тип``: true/false | Описание: ``Example``: :ex:`true` Пример запроса ^^^^^^^^^^^^^^^ | Запрос с параметром :code:`cardNumber`: | .. highlight:: text :: POST /paynet/api/mfo/scoring/3772/123456 HTTP/1.1 Host: sandbox.sbctech.ru User-Agent: curl/7.88.1 Accept: */* X-Authorization: 3ea5d48e9354496c2576ef5ecee0324b2aabca6c Content-Length: 27 Content-Type: application/x-www-form-urlencoded Connection: close cardNumber=4731543184191796 | Запрос с параметром :code:`cardRefId`: | .. highlight:: text :: POST /paynet/api/mfo/scoring/3772/123456 HTTP/2 Host: sandbox.sbctech.ru User-Agent: curl/7.88.1 Accept: */* X-Authorization: a3774b3911a833425f635e45474ecd9fe2714d3a Content-Length: 15 Content-Type: application/x-www-form-urlencoded cardRefId=12345 | Запрос с параметрами :code:`first6PanDigits` и :code:`last4PanDigits` (срок действия необязателен): | .. highlight:: text :: POST /paynet/api/mfo/scoring/3772/123456 HTTP/2 Host: sandbox.sbctech.ru User-Agent: curl/7.88.1 Accept: */* X-Authorization: b548c006285fde742d608238be18fa0e5b559a08 Content-Length: 81 Content-Type: application/x-www-form-urlencoded cardExpiryMonth=12&cardExpiryYear=2099&first6PanDigits=499939&last4PanDigits=5721 Пример успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^ .. highlight:: text :: HTTP/2 200 OK Date: Mon, 01 Dec 2020 11:47:18 GMT Content-Type: application/json;charset=UTF-8 { "bankBin":499939, "cardFound":true, "countIssuedFor180Days":1, "countIssuedFor30Days":1, "countIssuedFor90Days":1, "incomingTransferAmountFor30Days":30.000, "incomingTransferAmountFor365Days":100.000, "incomingTransferAmountFor60Days":40.000, "incomingTransferAmountFor90Days":50.000, "lastDischargeAmount":10.000, "lastDischargeDate":"2023.03.26", "lastFourDigits":"5721", "lastSuccessfulDischargeAmount":10.000, "lastSuccessfulDischargeDate":"2023.03.26", "mfoCountFor180Days":1, "mfoCountFor30Days":1, "mfoCountFor90Days":1, "mfoIssuedFor180Days":1, "mfoIssuedFor30Days":1, "mfoIssuedFor90Days":1, "orderId":2709907, "outgoingTransferAmountFor30Days":10.000, "outgoingTransferAmountFor365Days":60.000, "outgoingTransferAmountFor60Days":20.000, "outgoingTransferAmountFor90Days":30.000, "totalDischargeAmount":200.000, "totalIssuedAmount":150.000, "totalRecurrentAmount":200.000 "transfersFromMFO":false } Пример неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^ .. highlight:: text :: HTTP/2 200 OK Date: Mon, 01 Dec 2020 11:47:18 GMT Content-Type: application/json;charset=UTF-8 {"orderId":1234567,"cardFound":false} .. _api_signature_mfo_scoring: Вычисление подписи ^^^^^^^^^^^^^^^^^^^^^ | Чтобы вычислить подпись, выполните следующее: | #. Отсортируйте параметры POST по ключам в алфавитном порядке. #. Объедините значения этих параметров в указанном порядке, вставляя символ точки с запятой `;` между значениями (учитывайте только фактически присутствующие значения). Это создаст базовую строку для подписи. #. Удалите все дефисы :ex:`-` из контрольного ключа присоединяющейся стороны, затем декодируйте его с помощью кодировки :ex:`HEX`; это даст ключ :ex:`HMAC`. #. Compute `hmac_sha1(base_string, hmac_key)`. #. Закодируйте результат как :ex:`HEX` — это создаст подпись. | | Вычисленную подпись необходимо поместить в заголовок запроса :ex:`X-Authorization`. Конструктор запросов ^^^^^^^^^^^^^^^ | Чтобы получить случайные данные в staging-среде `sandbox.sbctech.ru`, используйте :code:`cardNumber` = :ex:`4455555555555544` или :code:`cardRefId` = :ex:`555555`. | .. raw:: html :file: ../_static/examples/mfo_scoring_Debug.html