Accepting funds
On this page you will find the methods and webhooks that the payment partner will need to send a transfer.
This functionality allows individuals to transfer funds from Russia abroad without opening an account.
Note that:
- Money transfer operations are only available for individuals 18 years old or older.
- When filling in information on the Recipient, make sure the data you specify matches the passport the Recipient will use to receive the money (i.e. most likely using the Latin alphabet).
- The period over which the Recipient can get the transferred money is not limited.
- Please find the most convenient service point in Turkey.
The main scenario of requests is as follows:
- The payment partner initiates a payment session and sends to the Bank information on the Sender and Recipient using the
POST.../api/v1/bpa/session/init/payment
method. - The Bank creates a transaction and returns the creation results.
- After receiving the response, wait for a
ready_to_confirm
webhook with detailed information on the payout amount, transaction fee, and conversion rate. - Once a
ready_to_confirm
webhook is received, confirm the transaction withsession/confirm
or cancel it withsession/cancel
. - If required, you can check the session status using the
session/status
method. - To complete the transaction, wait for a
payment_finished
webhook.
Sequence diagram of accepting funds
POST.../api/v1/bpa/session/init/payment
method
This method is used to initiate the transfer.
Request parameters
Name | Mandatory | Type | Description |
---|---|---|---|
payment_details | + | object | Payment method |
type | + | string | Payment method name. Valid value: moneysend |
moneysend | + | object | Details of payment via Moneysend |
amount_details | + | object | Payment details |
amount | + | int | Amount in minor values (To transfer 100 rubles, specify 10000 ) |
currency | + | string | Payment currency |
participant_details | + | object | Participant details |
sender | + | object | Sender details |
citizenship_country_iso3 | + | string | Sender's country of citizenship according to ISO 3166-1 alpha-3 |
first_name | + | string | Sender's first name |
last_name | + | string | Sender's last name |
middle_name | - | string | Sender's patronymic |
country_iso3 | + | string | Sender's country of registration according to ISO 3166-1 alpha-3 |
state | - | string | State or region of the sender's place of registration |
city | + | string | Locality of the sender's place of registration |
postal_code | - | string | Postal code of the sender's place of registration |
street | - | string | Street of the sender's place of registration |
building | + | string | Building number of the sender's place of registration |
flat | - | string | Apartment of the sender's place of registration |
tax_reference | - | string | Sender's INN (12 digits) |
date_of_birth | + | string | Sender's date of birth in the YYYY-MM-DD format. Make sure the sender is 18 years old or older |
contacts | + | object | Sender's contacts |
phone | - | object | Sender's phone number |
full_number | + | string | Sender's full phone number in the +<country code><number> format |
country_iso3 | + | string | Sender's phone number country code according to ISO3 |
operator_code | + | string | Operator code of the sender's phone number |
short_number | + | string | Sender's phone number without the operator code |
- | string | Sender's email | |
identity_document | + | object | Sender's identity document |
id_type | + | string | Type of the sender's identity document. Valid values: — Passport of a foreign citizen — Passport of a citizen of the Russian Federation |
id_number | + | string | Sender's identity document series and number (without spaces) |
issue_date | + | string | Sender's identity document issue date in the YYYY-MM-DD format |
id_expiration_date | - | string | Sender's identity document expiry date in the YYYY-MM-DD format. Required if available in the document. Otherwise, do not send this field |
division_code | - | string | Code of the division that issued the sender's identity document. Required if available in the document |
issued_by | - | string | Name of the division that issued the sender's identity document. Required if available in the document |
documents_foreigner | - | object | Non-resident sender's identity document details. Required for non-residents only |
id_type | + | string | Type of the non-resident sender's identity document. Valid values: — Residence permit — Temporary residence permit — Migration card — Visa |
issued_by | - | string | Non-resident sender's identity document issuing authority |
issue_date | + | string | Non-resident sender's identity document issue date in the YYYY-MM-DD format |
id_expiration_date | + | string | Non-resident sender's identity document expiry date in the YYYY-MM-DD format |
service_point | + | object | Service point of accepting funds |
id | - | string | Service point ID |
name | - | string | Service point name |
country_iso3 | + | string | Service point country according to ISO 3166-1 alpha-3 |
state | - | string | Service point region/state |
city | + | string | Service point locality |
oktmo | + | string | Service point OKTMO |
street | - | string | Service point street |
house | - | string | Service point building |
terminal_id | - | string | Terminal/cash register ID |
source_of_money | - | string | Source of the sender's funds |
description | - | string | Additional information |
recipient | + | object | Recipient details |
first_name | + | string | Recipient's first name |
last_name | + | string | Recipient's last name |
middle_name | - | string | Recipient's patronymic |
date_of_birth | - | string | Recipient's date of birth in the YYYY-MM-DD format. Make sure the recipient is 18 years old or older |
currency | + | string | Payout currency. Valid values: TRY , USD |
contacts | + | object | Recipient's contacts |
phone | - | object | Recipient's phone number |
full_number | + | string | Recipient's full phone number in the +<country code><number> format |
country_iso3 | + | string | Recipient's phone number country code according to ISO3 |
operator_code | + | string | Operator code of the recipient's phone number |
short_number | + | string | Recipient's phone number without the operator code |
- | string | Recipient's email | |
cash_details | + | object | Additional information on the cash payment |
shift | + | string | Cash register shift |
Request example
{
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 1000,
"currency": "rub"
},
"participant_details": {
"sender": {
"citizenship_country_iso3": "AUS",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"country_iso3": "RUS",
"state": "New York",
"city": "Kazan",
"postal_code": "420000",
"street": "Nekrasova",
"building": "1",
"flat": "131",
"tax_reference": "123456789012",
"date_of_birth": "2010-01-01",
"contacts": {
"phone": {
"full_number": "+79371234567",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "1234567"
},
"email": "test@test.com"
},
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "123456789",
"issue_date": "2020-01-01",
"id_expiration_date": "2030-01-01",
"division_code": "165-065",
"issued_by": "OVD Kazani"
},
"documents_foreigner": {
"id_type": "Виза",
"issued_by": "OVD Kazani",
"issue_date": "2020-01-01",
"id_expiration_date": "2030-01-01"
},
"service_point": {
"id": "1",
"name": "point_on_lenina",
"country_iso3": "RUS",
"state": "Moscow",
"city": "Moscow",
"oktmo": "36634436111",
"street": "Lenin avenue",
"house": "1",
"terminal_id": "123124"
},
"source_of_money": "salary",
"description": "salary transfers"
},
"recipient": {
"first_name": "Ivan",
"last_name": "Sidorov",
"middle_name": "Ivanovich",
"date_of_birth": "2010-01-01",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+79377654321",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "7654321"
},
"email": "test@test.com"
}
}
},
"cash_details": {
"shift": "11"
}
}
Response parameters
Name | Mandatory | Type | Description |
---|---|---|---|
status | + | string | Request status |
session | + | object | Session details |
id | + | string | Session ID. Remember it to use it to confirm/cancel the transaction or to get the transaction status |
status | + | string | Current session status. See the available values |
created_at | + | string | Session creation date and time in the RFC 3339 format. Example: 2022-11-15T15:38:50.255803Z |
updated_at | + | string | Session update date and time in the RFC 3339 format. Example: 2022-11-15T15:38:50.255803Z |
error | - | object | Error details. Returned only if an error occurred |
description | - | string | Error description |
code | - | string | Error code |
acquiring_payments | + | array | Payment details |
id | + | string | Payment ID |
status | + | string | Current payment status. See the available values |
created_at | + | string | Payment creation date and time in the RFC 3339 format. Example: 2022-11-15T15:38:50.255803Z |
payment_details | + | object | payment_details sent in the request |
amount_details | + | object | amount_details sent in the request |
participant_details | + | object | participant_details sent in the request |
error | - | object | Error details. Returned only if an error occurred |
description | - | string | Error description |
code | - | string | Error code |
Successful response example
{
"status": "ok",
"session": {
"id": "ps_592245",
"status": "in_progress",
"created_at": "2022-11-15T15:38:50.255803Z",
"updated_at": "2022-11-15T15:38:50.336303Z",
"acquiring_payments": [
{
"id": "pm_296251",
"status": "in_progress",
"created_at": "2022-11-15T15:38:50.357833Z",
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 978,
"currency": "rub"
},
"participant_details": {
"sender": {
"citizenship_country_iso3": "AUS",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"country_iso3": "RUS",
"state": "New York",
"city": "Kazan",
"postal_code": "420000",
"street": "Nerkasova",
"building": "1",
"flat": "131",
"tax_reference": "123456789012",
"date_of_birth": "2010-01-01",
"contacts": {
"phone": {
"full_number": "+79371234567",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "1234567"
},
"email": "test@test.com"
},
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "123456789",
"issue_date": "2020-01-01",
"id_expiration_date": "2030-01-01",
"division_code": "165-065",
"issued_by": "OVD Kazani"
},
"documents_foreigner": {
"id_type": "Виза",
"issued_by": "OVD Kazani",
"issue_date": "2020-01-01",
"id_expiration_date": "2030-01-01"
},
"service_point": {
"id": "1",
"name": "point_on_lenina",
"country_iso3": "RUS",
"state": "Moscow",
"city": "Moscow",
"oktmo": "36634436111",
"street": "Lenin avenue",
"house": "1",
"terminal_id": "123124"
},
"source_of_money": "salary",
"description": "salary transfers"
},
"recipient": {
"first_name": "Ivan",
"last_name": "Sidorov",
"middle_name": "Ivanovich",
"date_of_birth": "2010-01-01",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+79376151530",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "7654321"
},
"email": "test@test.com"
}
}
}
}
]
}
}
Unsuccessful response example
{
"error": {
"code": "invalid_request",
"description": "participant_details.recipient.full_name.not_blank"
},
"status": "error"
}
ready_to_confirm
webhook
Bank 131 sends this webhook when everything is ready for the transaction and the Bank is waiting for session/confirm
or session/cancel
.
The confirm_information
object in the webhook will contain detailed information on the payout amount, transaction fee, and conversion rate.
"confirm_information"
The object contains the following information:
● Source – amount in the payment currency
● Destination – payout amount and currency
● Fx_rate – conversion rate
● Commission – transaction fee charged in addition to Source
The confirm_information
object needs to be sent within the session/confirm
method.
Also, the webhook will contain the tcn_code_encoded
parameter with the transaction code.
This code must be made known to the Recipient, it will be needed to get the money.
tcn_code_encoded
is wrapped in BASE64 and needs to be decoded.
Webhook example
{
"type": "ready_to_confirm",
"session": {
"id": "ps_1",
"status": "in_progress",
"created_at": "2022-11-15T13:22:31.847352Z",
"updated_at": "2022-11-15T13:22:32.638464Z",
"acquiring_payments": [
{
"id": "pm_1",
"status": "pending",
"created_at": "2022-11-15T13:22:32.132993Z",
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 9782,
"currency": "RUB"
},
"participant_details": {
"sender": {
"full_name": "Ivan Ivanov Ivanovich",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"tax_reference": "123456789012",
"country_iso3": "RUS",
"city": "Kazan",
"postal_code": "420000",
"building": "1",
"date_of_birth": "2008-01-01",
"street": "Nerkasova",
"flat": "131",
"state": "New York",
"description": "salary transfers",
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "123456789",
"issue_date": "2020-01-01",
"division_code": "165-065",
"issued_by": "OVD Kazani",
"id_expiration_date": "2030-01-01"
},
"citizenship_country_iso3": "AUS",
"documents_foreigner": {
"id_type": "Виза",
"issue_date": "2020-01-01",
"issued_by": "OVD Kazani",
"id_expiration_date": "2030-01-01"
},
"service_point": {
"id": "1",
"name": "point_on_lenina",
"country_iso3": "RUS",
"state": "Moscow",
"city": "Moscow",
"oktmo": "36634436111",
"street": "lenin avenue",
"house": "1",
"terminal_id": "123124"
},
"source_of_money": "salary"
},
"recipient": {
"full_name": "Ivan Sidorov Ivanovich",
"first_name": "Ivan",
"last_name": "Sidorov",
"middle_name": "Ivanovich",
"date_of_birth": "2008-11-08",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+79377654321",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "7654321"
},
"email": "test@test.com"
}
}
}
}
],
"next_action": "confirm"
},
"confirm_information": {
"exchanges": [
{
"id": "pm_1",
"source": {
"amount": 1000,
"currency": "RUB"
},
"destination": {
"amount": 300,
"currency": "TRY"
},
"fx_rate": "0.3000",
"commission": {
"amount": 100,
"currency": "RUB"
}
}
]
},
"details": {
"tcn_code_encoded": "NTkyMTc0LTY5NDEyMjEx"
}
}
POST.../api/v1/session/confirm
method
This method is used to confirm the payment after a ready_to_confirm
webhook is received meaning that the sender agreed with the payment amount, conversion rate, and fee.
The method should contain the confirm_information
object as it is passed in the ready_to_confirm
webhook.
Request parameters
Name | Mandatory | Type | Description |
---|---|---|---|
session_id | + | string | Session ID from the response to session/init |
confirm_information | + | object | confirm_information object from the ready_to confirm webhook as is |
exchanges | + | object | Additional details |
id | + | string | Transaction ID |
source | + | object | Payment details |
amount | + | int | Amount in minor values |
currency | + | string | Currency |
destination | + | object | Payout details |
amount | + | int | Amount in minor values |
currency | + | string | Currency |
fx_rate | + | string | Conversion rate |
commission | + | object | Fee details |
amount | + | int | Amount in minor values |
currency | + | string | Currency |
Request example
{
"session_id": "ps_1",
"confirm_information": {
"exchanges": [
{
"id": "pm_1",
"source": {
"amount": 1000,
"currency": "RUB"
},
"destination": {
"amount": 300,
"currency": "TRY"
},
"fx_rate": "0.3000",
"commission": {
"amount": 100,
"currency": "RUB"
}
}
]
}
}
Response parameters
The response contents are identical to the contents of the response to bpa/session/init/payment
.
Response example
{
"status": "ok",
"session": {
"id": "ps_1634163",
"status": "in_progress",
"created_at": "2023-12-20T10:08:08.807876Z",
"updated_at": "2023-12-20T10:08:40.947967Z",
"acquiring_payments": [
{
"id": "pm_1062803",
"status": "in_progress",
"created_at": "2023-12-20T10:08:08.924899Z",
"customer": {
"reference": "customer_reference"
},
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 45000,
"currency": "RUB"
},
"participant_details": {
"sender": {
"full_name": "Gabriil Akulov",
"first_name": "Gabriil",
"last_name": "Akulov",
"middle_name": "",
"country_iso3": "RUS",
"city": "Кашира",
"postal_code": "761290",
"building": "39",
"date_of_birth": "1998-03-15",
"street": "наб. Будапештсткая",
"flat": "1",
"state": "Свердловская область",
"description": "описание описания",
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "7012 244588",
"issue_date": "2020-03-01",
"division_code": "",
"issued_by": "ОВД ПО Кировскому району"
},
"citizenship_country_iso3": "RUS",
"service_point": {
"id": "1",
"name": "точка на Ленина",
"country_iso3": "RUS",
"state": "Москва",
"city": "Москва",
"street": "Ленина",
"house": "1",
"oktmo": "36634436111",
"terminal_id": "345"
},
"source_of_money": "зарплата",
"contacts": {
"phone": {
"full_number": "+79376151530",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "6151530"
}
}
},
"recipient": {
"full_name": "samidov burac",
"first_name": "samidov",
"last_name": "burac",
"middle_name": "",
"date_of_birth": "2005-03-15",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+43523452345",
"country_iso3": "TUR",
"operator_code": "352",
"short_number": "3452345"
}
}
}
}
}
],
"actions": {
"confirm": "2023-12-20T10:09:01.904212Z"
}
}
}
POST../api/v1/session/cancel
method
The method is used to cancel a payment.
Request parameters
Name | Mandatory | Type | Description |
---|---|---|---|
session_id | + | string | Session ID from the response to session/init |
Request example
"session_id": "ps_1"
Response parameters
The response contents are identical to the contents of the response to bpa/session/init/payment
.
Response example
{
"status": "ok",
"session": {
"id": "ps_1634164",
"status": "in_progress",
"created_at": "2023-12-20T10:09:30.979373Z",
"updated_at": "2023-12-20T10:09:47.084110Z",
"acquiring_payments": [
{
"id": "pm_1062804",
"status": "pending",
"created_at": "2023-12-20T10:09:31.100292Z",
"customer": {
"reference": "customer_reference"
},
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 45000,
"currency": "RUB"
},
"participant_details": {
"sender": {
"full_name": "Gabriil Akulov",
"first_name": "Gabriil",
"last_name": "Akulov",
"middle_name": "",
"country_iso3": "RUS",
"city": "Кашира",
"postal_code": "761290",
"building": "39",
"date_of_birth": "1998-03-15",
"street": "наб. Будапештсткая",
"flat": "1",
"state": "Свердловская область",
"description": "описание описания",
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "7012 244588",
"issue_date": "2020-03-01",
"division_code": "",
"issued_by": "ОВД ПО Кировскому району"
},
"citizenship_country_iso3": "RUS",
"service_point": {
"id": "1",
"name": "точка на Ленина",
"country_iso3": "RUS",
"state": "Москва",
"city": "Москва",
"street": "Ленина",
"house": "1",
"oktmo": "36634436111",
"terminal_id": "345"
},
"source_of_money": "зарплата",
"contacts": {
"phone": {
"full_number": "+79376151530",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "6151530"
}
}
},
"recipient": {
"full_name": "samidov burac",
"first_name": "samidov",
"last_name": "burac",
"middle_name": "",
"date_of_birth": "2005-03-15",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+43523452345",
"country_iso3": "TUR",
"operator_code": "352",
"short_number": "3452345"
}
}
}
}
}
]
}
}
POST../api/v1/session/status
method
If required, the payment partner can use this method to get session information.
More about the payment session
Available session statuses
Request parameters
Name | Mandatory | Type | Description |
---|---|---|---|
session_id | + | string | Session ID from the response to session/init |
Request example
"session_id": "ps_1"
Response example
{
"status": "ok",
"session": {
"id": "ps_1",
"status": "in_progress",
"created_at": "2022-11-15T15:38:50.255803Z",
"updated_at": "2022-11-15T15:38:50.336303Z",
"acquiring_payments": [
{
"id": "pm_1",
"status": "in_progress",
"created_at": "2022-11-15T15:38:50.357833Z",
"payment_details": {
"type": "moneysend",
"moneysend": {}
},
"amount_details": {
"amount": 1000,
"currency": "rub"
},
"participant_details": {
"sender": {
"full_name": "Ivan Ivanov Ivanovich",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"tax_reference": "123456789012",
"country_iso3": "RUS",
"city": "Kazan",
"postal_code": "420000",
"building": "1",
"date_of_birth": "2008-01-01",
"contacts": {
"phone": {
"full_number": "+79371234567",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "1234567"
},
"email": "test@test.com"
},
"street": "Nerkasova",
"flat": "131",
"state": "New York",
"description": "salary transfers",
"identity_document": {
"id_type": "Паспорт гражданина Российской Федерации",
"id_number": "123456789",
"issue_date": "2020-01-01",
"division_code": "165-065",
"issued_by": "OVD Kazani",
"id_expiration_date": "2030-01-01"
},
"citizenship_country_iso3": "AUS",
"documents_foreigner": {
"id_type": "Виза",
"issue_date": "2020-01-01",
"issued_by": "OVD Kazani",
"id_expiration_date": "2030-01-01"
},
"service_point": {
"id": "1",
"name": "point_on_lenina",
"country_iso3": "RUS",
"state": "Moscow",
"city": "Moscow",
"oktmo": "36634436111",
"street": "Lenin avenue",
"house": "1",
"terminal_id": "123124"
},
"source_of_money": "salary"
},
"recipient": {
"full_name": "Ivan Sidorov Ivanovich",
"first_name": "Ivan",
"last_name": "Sidorov",
"middle_name": "Ivanovich",
"date_of_birth": "2008-11-08",
"currency": "TRY",
"contacts": {
"phone": {
"full_number": "+79377654321",
"country_iso3": "RUS",
"operator_code": "937",
"short_number": "7654321"
},
"email": "test@test.com"
}
}
}
}
]
}
}
payment_finished
webhook
The Bank sends this webhook to finalize a transaction.
The webhook body contains all the transaction parameters including its status (in the
status
field). If the session status is succeeded
, the payment was successful.
More about the webhook