Documentation

Documentation

  • Bank 131 API
  • Languages iconEnglish
    • Русский

›Passport Verification

131 Documentation

  • API features
  • Where to begin

Introduction to API

  • Interaction
  • API libraries
  • Testing
  • Version history

How Payouts Work

  • Features
  • How it all works
  • Main payout scenario
  • Payout refunds
  • The Self-employed

    • Payouts to the self-employed
    • Linking the self-employed

    Payout Methods

    • To a Russian bank card
    • To a foreign bank card
    • To a Russian bank account
    • To a QIWI Wallet
    • To a YooMoney (Yandex.Money)
    • To the Russian Federal Tax Agency

    Payout Scenarios

    • Payout to a card via widget
    • Single-request payout
    • Payout to a card with PCI DSS
    • Payout to a self-employed person with fiscal receipt

How Payments Work

  • Features
  • Payment process
  • Payments via bank card
  • Payments with later capture
  • Refunds
  • Recurring payments
  • Split Payments

    • Features and options
    • Split payments out of the box
    • Split payments using API

    Payment Scenarios

    • Paying via payment form
    • Paying with PCI DSS
    • Single-request payment

Widgets

  • Widget to get card details
  • Payment form widget
  • Widget for linking a self-employed person to the Bank

Passport Verification

  • Features
  • Interaction
  • Verification request
  • Verification status
  • HTTP codes

Reports

  • Payouts report
  • Payments report
  • Monthly report

API Reference

  • Objects
  • Methods
  • Webhooks
  • Error codes

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.

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

NameMandatoryTypeDescription
X-PARTNER-PROJECT+stringProject identifier. Given to you by your Bank 131 manager

Request example with authentication

curl -X GET \
  https://kyc-stage.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 are transmitted in verification requests, requests must be signed with CryptoPro.

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.

Example of creating a signature with cryptcp

cryptcp -encr -thumbprint a2963503c955a34c8a5f7d4abf5e08874827a3aa -thumbprint 5567d04803d51080cec4aa030ff0ef6e26fe7740 -uMy -der bank131_20200903.txt.sig bank131_20200903.txt.sig.enc

Step 3. Add the signature to the request

Specify the signature in the signature field.

← FeaturesVerification request →
  • Request format
  • Endpoint
    • How to set this out
    • Server addresses
  • Authentication
  • Request signature
    • Step 1. Create a signature file
    • Step 2. Sign the file
    • Step 3. Add the signature to the request
Documentation
Documentation
PayoutsPaymentsAPI Reference
Step by step
Payout to a card via widgetPayout to a card with PCI DSSPayout to the self-employed Paying via payment form
Get in touch
Ideas and partnerships — partners@131.ruMedia — press@131.ru
© 2021 Bank 131