API interaction
Request format
All the data in requests to Bank 131 and notifications from the Bank are transmitted with the use of the GET/POST method over HTTP. Message parameters are packed into a JSON object.
Currently, two versions of the same method exist. However, version 1.1 is no longer updated, so we recommend using version 2.0.
- 2.0
- 1.1
Endpoint
How to set this out
<server address> + /api/v2.0/ + <address for sending requests of the appropriate method>
Server addresses
- For testing:
https://kyc-stage.bank131.ru/
- For live testing:
https://kyc.bank131.ru/
Authentication
Specify your project ID in the headers of requests to Bank 131.
Headers
Name | Mandatory | Type | Description |
---|---|---|---|
X-PARTNER-PROJECT | + | string | Project identifier. Given to you by your Bank 131 manager |
Request example with authentication
curl -X GET \
https://kyc.bank131.ru/api/v2.0/check/7 \
-H 'content-type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d '{
// request body
}'
Endpoint
How to set this out
<server address> + /api/v1.1/ + <address for sending requests of the appropriate method>
Server addresses
- For testing:
https://kyc-stage.bank131.ru/
- For live testing:
https://kyc.bank131.ru/
Authentication
Specify your project ID in the headers of requests to Bank 131.
Headers
Name | Mandatory | Type | Description |
---|---|---|---|
X-PARTNER-PROJECT | + | string | Project identifier. Given to you by your Bank 131 manager |
Request example with authentication
curl -X GET \
https://kyc.bank131.ru/api/v1.1/check/7 \
-H 'content-type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d '{
// request body
}'
Request signature
Since personal data is transmitted in identification requests, requests must be signed with CryptoPro.
Non-resident individuals can sign their requests using RSA Keys. To enable this functionality, contact your manager in Bank 131.
Getting started with CryptoPro
- Get the enhanced encrypted and certified digital signature (EECDS) if you don't have one. You can get it from any verification center.
To test, create an electronic signature verification key certificate in the CryptoPro Test Verification Center. Remember that you cannot use it in real transactions.
Install CryptoPro CSP on your computer.
Add your electronic signature certificate to CryptoPro (for example, check this guide for Windows).
Submit to the Bank a list of IP addresses you will use to send requests.
Send the public part of the electronic signature verification key to your Bank 131 manager so we can identify your requests.
Ready! You can now sign the requests with CryptoPro.
How to sign requests
Step 1. Create a signature file
Take the request body (payload
content), sort by key, and write to the file. Use the UTF-8 encoding system.
Example
import json
payload = {...}
payload_bytes = bytes(json.dumps(payload, sort_keys=True) + '\r\n', encoding='utf-8')
with open('payload_bytes.jsonb', 'wb') as f:
f.write(payload_bytes)
Step 2. Sign the file
Sign the file with CryptoPro. You can use the cryptcp application (part of CryptoPro).
Example of creating a signature with cryptcp
cryptcp -sign -display -thumbprint <signature key fingerprint> -detached payload_json.json payload_json.sig
Step 3. Add the signature to the request
Get the signature from payload_json.sig and pass it in the signature
field of the request.