Операции в криптовалюте
Вариант интеграции WD
Этот вариант интеграции позволяет покупателю пополнять баланс в системе торговца с помощью криптовалюты, а также выводить деньги с баланса на криптокошелек.
Info
Вариант интеграции WD поддерживает только валюту BYN для запросов транзакций. Список криптовалют, для которых доступны пополнение баланса и вывод средств, перечислены в таблице.
Оплата
Интеграция через виджет
Процесс проведения оплаты на виджете:
- Покупатель инициирует пополнение баланса на сайте торговца и выбирает сумму пополнения в валюте
BYN. - Торговец отправляет запрос на создание платежного токена или запрос на инициализацию платежного виджета, указав в запросе идентификатор покупателя (
customer.external_id). Если в системе bePaid еще не было успешной транзакции оплаты для покупателя с таким идентификатором, в запросе необходимо передать следующие дополнительные параметры:- данные покупателя в параметре
customer; - данные идентификационного документа покупателя (
additional_data.customer_id_data); - данные KYC (
additional_data.kyc_answers).
Если для покупателя с такимcustomer.external_idуже есть успешная транзакция оплаты в системе PSP, в запросе достаточно прислатьcustomer.external_id. Остальные параметры секцииcustomerи параметрыadditional_dataнеобходимо отправлять только в случае изменения соответствующих данных покупателя.
- данные покупателя в параметре
- bePaid присылает в ответе
redirect_urlи токен платежа. - Торговец перенаправляет покупателя на
redirect_urlили инициирует виджет с помощью полученного токена. - Платежный виджет перенаправляет покупателя на страницу выбора криптовалюты.
- Покупатель выбирает криптовалюту своего кошелька из списка и подтверждает выбор. Также покупатель вводит свой email, если он не был отправлен торговцем в запросе на создание токена или при инициализации виджета.
- bePaid отправляет данные платежа провайдеру.
- [ KYC verification ] В зависимости от указанной страны покупателя, платежный виджет может перенаправить покупателя на страницу прохождения теста c вопросами о криптовалюте.
- [ KYC verification ] Покупатель отвечает на вопросы теста и нажимает Продолжить.
- [ KYC verification ] Провайдер осуществляет проверку данных покупателя.
- После успешного прохождения верификации, виджет отображает покупателю сообщение с адресом криптокошелька, на который следует сделать перевод в течение 30 минут. Также покупателю отображается сумма пополнения в выбранной покупателем криптовалюте (эквивалент суммы
BYNдля пополнения баланса). - Покупатель совершает перевод на указанную сумму на указанный криптокошелек.
- bePaid отправляет торговцу автоматическое уведомление со статусом оплаты. Торговец также может запросить статус оплаты у bePaid с помощью запроса получения статуса транзакции.
Info
После успешного прохождения KYC-проверки, торговец должен сохранить связку customer.external_id и успешного платежа. Если для указанного customer.external_id ранее уже был выполнен успешный платёж и персональные данные покупателя не изменились, то при последующих транзакциях можно не передавать параметры объекта additional_data. При повторных транзакциях оплаты в объекте customer достаточно указать только customer.external_id. В этом случае, шаги 8–10 пропускаются.
Запрос
При интеграции с виджетом или платежной страницей bePaid создайте токен платежа или выполните запрос на формирование виджета с дополнительными параметрами из таблицы ниже.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Info
Пример запроса c параметрами для KYC верификации
{
"checkout": {
"test": true,
"transaction_type": "payment",
"settings": {
"return_url": "http://127.0.0.1:4567/return",
"success_url": "http://127.0.0.1:4567/success",
"notification_url": "http://your_shop.com/notification"
},
"order": {
"tracking_id": "your_uniq_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description"
},
"customer": {
"external_id": "user-12345",
"gender": "male",
"birth_date": "1990-01-01",
"phone": "+375291234567",
"email": "ivan.petrov@example.com",
"address": "h.22 room 45",
"country": "BY",
"state": "Minsk Region",
"city": "Minsk",
"street": "Street",
"zip": "220000"
},
"additional_data": {
"customer_id_data": {
"document_type": "passport",
"document_series": "MP",
"document_number": "12345678",
"document_country": "BY",
"personal_number": "1234134513451451",
"issuer": "MVD RB",
"issue_date": "2016-05-25",
"expiry_date": "2026-05-24"
},
"kyc_answers": {
"source": "fb",
"answers": {
"countries_citizenship": [
"BY"
],
"not_usa_tax_payer": true,
"using_on_behalf": false,
"agreed": true,
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"first_name_ru": "Иван",
"last_name_ru": "Иванов",
"middle_name_ru": "Иванович",
"birth_address": "BY, Minsk, Ylica, 1",
"registration_district": "Smolevichi District"
}
}
}
}
}
Пример повторного запроса
{
"checkout": {
"test": true,
"transaction_type": "payment",
"settings": {
"return_url": "http://127.0.0.1:4567/return",
"success_url": "http://127.0.0.1:4567/success",
"notification_url": "http://your_shop.com/notification"
},
"order": {
"tracking_id": "your_uniq_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description"
},
"customer": {
"external_id": "user-12345"
}
}
}
Ответ
Info
{
"checkout": {
"token": "cfa8755fff438ff1f16c2e63006a479c89d4827c12a0d93d6743f3c31f6d519e",
"redirect_url": "https://checkout-staging.begateway.com/widget/hpp.html?token=cfa8755fff438ff1f16c2e63006a479c89d4827c12a0d93d6743f3c31f6d519e"
}
}
{
"response": {
"status": "error",
"message": "Access denied"
}
}
{
"errors": {
"checkout": {
"transaction_type": [
"is missing"
]
}
},
"message": "transaction_type is missing, transaction_type must be one of: authorization, payment, tokenization, recipient_tokenization, charge"
}
H2H интеграция
Процесс проведения оплаты при интеграции H2H с передачей данных KYC:
- Покупатель инициирует пополнение баланса на сайте торговца и выбирает сумму пополнения в валюте
BYN. - Торговец отправляет запрос на оплату, указав код криптовалюты (
method.currency) и название сети криптовалюты (method.token_standard), в которой покупатель будет делать перевод. В запросе необходимо указать идентификатор покупателя (customer.external_id). Если в системе bePaid еще не было успешной транзакции оплаты для покупателя с таким идентификатором, в запросе необходимо передать следующие дополнительные параметры:- данные покупателя в параметре
customer; - данные идентификационного документа покупателя (
additional_data.customer_id_data); - данные KYC (
additional_data.kyc_answers). Если для покупателя с такимcustomer.external_idуже есть успешная транзакция оплаты в системе PSP, в запросе достаточно прислатьcustomer.external_id. Остальные параметры секцииcustomerи параметрыadditional_dataнеобходимо отправлять только в случае изменения соответствующих данных покупателя.
- данные покупателя в параметре
- В зависимости от указанной страны покупателя, в ответе на запрос может вернуться ссылка на тест с вопросами о криптовалюте в параметре
form.action. - Если ссылка на тест присутствует в ответе, торговец перенаправляет покупателя по этой ссылке.
- Покупатель отвечает на вопросы теста и нажимает Продолжить.
- Провайдер осуществляет проверку данных покупателя.
- После успешного прохождения верификации, bePaid высылает торговцу уведомление, содержащее
method.recipient_wallet_idc идентификатором кошелька, на который покупатель должен сделать перевод и сумму для перевода в валюте кошелька покупателя (method.amount). - Торговец отображает полученную информацию покупателю.
- Покупатель совершает перевод на указанную сумму на указанный криптокошелек в течение 30 минут.
- bePaid отправляет торговцу автоматическое уведомление с финальным статусом оплаты. Торговец также может запросить статус оплаты у bePaid с помощью запроса получения статуса транзакции.
Запрос
Для приема платежа отправьте запрос на оплату со следующими дополнительными параметрами:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример запроса
{
"request": {
"amount": 3501,
"currency": "BYN",
"expired_at": "2025-11-29T05:33:38Z",
"description": "Cryptocurrency",
"test": true,
"tracking_id": "9379992",
"ip": "127.0.0.1",
"language": "en",
"return_url": "https://example.com",
"method": {
"type": "crypto_currency",
"token_standard":"Tron",
"currency": "TRX"
},
"customer": {
"external_id": "user-908743",
"gender": "male",
"birth_date": "1990-01-01",
"phone": "+375291234567",
"email": "ivan.petrov@example.com",
"address": "h.22 room 45",
"country": "BY",
"state": "Minsk Region",
"city": "Minsk",
"street": "1st Street",
"zip": "220000"
},
"additional_data": {
"customer_id_data": {
"document_type": "passport",
"document_series": "MP",
"document_number": "12345678",
"document_country": "BY",
"personal_number": "ww3356768",
"issuer": "MVD RB",
"issue_date": "2016-05-25",
"expiry_date": "2026-05-24"
},
"kyc_answers": {
"source": "fb",
"answers": {
"countries_citizenship": [
"BY"
],
"not_usa_tax_payer": true,
"using_on_behalf": false,
"agreed": true,
"first_name": "Ivan",
"last_name": "Petrov",
"middle_name": "Sergeevich",
"first_name_ru": "Иван",
"last_name_ru": "Петров",
"middle_name_ru": "Сергеевичич",
"birth_address": "BY, Minsk, 1st Street, 1",
"registration_district": "Centralny District"
}
}
}
}
}
Ответ
Отправьте покупателя на URL, указанный в параметре form.action.
Пример ответа
{
"transaction": {
"uid": "b6f14e63-f350-4bfb-9a0e-6f3dba364acf",
"type": "payment",
"status": "pending",
"amount": 3501,
"currency": "BYN",
"description": "Cryptocurrency",
"created_at": "2025-09-23T10:17:54Z",
"updated_at": "2025-09-23T10:17:55Z",
"method_type": "crypto_currency",
"receipt_url": "https://merchant.bepaid.by/customer/transactions/b6f14e63-f350-4bfb-9a0e-6f3dba364acf/fea7dc8e8c07ef759bd35e9756db73fd9c1854ec6697cca835bde43c2e0cdf2d?language=en",
"payment": {
"status": "pending",
"gateway_id": 5740,
"message": "Transaction was initialized. Customer verification pending."
},
"crypto_currency": {
"type": "crypto_currency",
"currency": "TRX",
"token_standard": "Tron"
},
"customer": {
"zip": "220000",
"city": "Minsk",
"phone": "+375291234567",
"state": "Minsk Region",
"gender": "male",
"street": "1st Street",
"address": "h.22 room 45",
"country": "BY",
"birth_date": "1990-01-01",
"external_id": "user-908743",
"email": "ivan.petrov@example.com",
"ip": "127.0.0.1"
},
"manually_corrected_at": null,
"version": 1,
"message": "Transaction was initialized. Customer verification pending.",
"tracking_id": "9379992",
"test": true,
"language": "en",
"billing_address": {
"zip": "220000",
"city": "Minsk",
"phone": "+375291234567",
"state": "Minsk Region",
"gender": "male",
"street": "1st Street",
"address": "h.22 room 45",
"country": "BY",
"birth_date": "1990-01-01",
},
"additional_data": {
"kyc_answers": {
"source": "fb",
"answers": {
"agreed": true,
"first_name": "Ivan",
"last_name": "Petrov",
"middle_name": "Sergeevich",
"last_name_ru": "Петров",
"birth_address": "BY, Minsk, Ylica, 1",
"first_name_ru": "Иван",
"middle_name_ru": "Сергеевич",
"using_on_behalf": false,
"not_usa_tax_payer": true,
"countries_citizenship": [
"BY"
],
"registration_district": "Centralny District"
}
},
"payment_method": {
"type": "alternative"
},
"customer_id_data": {
"issuer": "MVD RB",
"issue_date": "2016-05-25",
"expiry_date": "2026-05-24",
"document_type": "passport",
"document_number": "12345678",
"document_series": "MP",
"personal_number": "ww3356768",
"document_country": "BY"
}
},
"gateway": {
"iframe": true
},
"form": {
"action": "link-to-test",
"fields": [],
"method": "GET"
}
}
}
Автоматические уведомления
Автоматические уведомления высылаются в следующих случаях:
- при изменении статуса транзакции на
pending,expired,failedилиsuccessful; - при изменении статуса верификации покупателя;
- при инициализации транзакции.
| Статус транзакции | Финальный статус? | Текст сообщения, transaction.message |
Описание статуса |
pending |
нет | Transaction was initialized. Customer verification pending. | Уведомление при инициализации транзакции в следующих случаях: 1. Новый покупатель, процесс верификации инициирован. 2. Существующий пользователь, верификация не пройдена. |
pending |
нет | Transaction was initialized. Customer action is required to complete the payment. | Уведомление при завершении оплаты покупателем. |
pending |
нет | Error while sending test answers. | Ошибка отправки запроса с результатами теста. |
successful |
да | Transaction successfully processed. | Транзакция проведена успешно. |
failed |
да | зависит от ошибки | Провести транзакцию не удалось. |
expired |
да | Transaction expired. | Допустимое время завершения транзакции истекло. |
Пример уведомления: необходимы действия со стороны покупателя
{
"transaction": {
"uid": "3209b045-8f40-46a5-b65f-1b9a76e02cea",
"type": "payment",
"status": "pending",
"amount": 3502,
"currency": "BYN",
"description": "description",
"created_at": "2025-10-02T14:09:21Z",
"updated_at": "2025-10-02T14:10:08Z",
"method_type": "crypto_currency",
"receipt_url": "https://merchant.bepaid.by/customer/transactions/3209b045-8f40-46a5-b65f-1b9a76e02cea/e39c14b784468236c619b8a89ed85ea2adc5b6553f3ebb5328965a3c6944be82?language=en",
"payment": {
"status": "pending",
"gateway_id": 5712,
"ref_id": "18206e7e-dd1b-4dd4-ac43-738e64b1dd71",
"message": "Transaction was initialized. Customer action is required to complete the payment."
},
"crypto_currency": {
"type": "crypto_currency",
"amount": "80",
"currency": "TRX",
"token_standard": "Tron",
"recipient_wallet_id": "TZHsaA4bJVvPLkwkeVwo7mtB65QzyumQxu"
},
"customer": {
"zip": "220000",
"city": "Minsk",
"email": "example+193@gmail.com",
"phone": "17777777777",
"state": "Minsk Region",
"gender": "male",
"street": "Ylica 10",
"address": "1st Street",
"country": "BY",
"device_id": "12312312321fff67",
"birth_date": "1990-01-01",
"external_id": "user-12345193",
"taxpayer_id": "010200A9618",
"ip": "127.0.0.1"
},
"manually_corrected_at": null,
"version": 3,
"message": "Transaction was initialized. Customer action is required to complete the payment.",
"tracking_id": "your_uniq_number",
"test": false,
"language": "en",
"expired_at": "2025-07-01T11:03:01Z",
"billing_address": {
"zip": "220000",
"city": "Minsk",
"email": "example+193@gmail.com",
"phone": "17777777777",
"state": "Minsk Region",
"gender": "male",
"street": "Ylica 10",
"address": "1st Street",
"country": "BY",
"device_id": "12312312321fff67",
"birth_date": "1990-01-01",
"taxpayer_id": "010200A9618"
},
"additional_data": {
"kyc_answers": {
"answers": {
"agreed": true,
"source": "fb",
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"last_name_ru": "Иванов",
"birth_address": "RU, Minsk, Ylica, 1",
"first_name_ru": "Иван",
"middle_name_ru": "Иванович",
"using_on_behalf": true,
"not_usa_tax_payer": true,
"countries_citizenship": [
"RU"
],
"registration_district": "Smolevichi Distr"
}
},
"payment_method": {
"type": "alternative"
},
"customer_id_data": {
"issuer": "MVD RB",
"issue_date": "2016-05-25",
"expiry_date": "2026-05-24",
"document_type": "passport",
"document_number": "12345678",
"document_series": "MP",
"personal_number": "Идентификационный номер",
"document_country": "RU"
}
},
"smart_routing_verification": {
"status": "successful"
},
"gateway": {
"iframe": false
}
}
}
Выплата
Процесс проведения выплаты:
- Покупатель инициирует вывод средств с баланса на сайте торговца, выбирает сумму вывода в
BYNи указывает идентификатор своего криптокошелька в одной из доступных криптовалют. - Торговец проверяет, есть ли у данного покупателя успешная оплата.
- Если успешная оплата есть, торговец отправляет запрос на выплату средств, указав в запросе
customer.external_id. - bePaid также проверяет, есть ли в системе успешная оплата для указанного
customer.external_id. - Если оплата есть, bePaid присылает ответ на запрос оплаты со статусом
pending. - bePaid отправляет торговцу автоматическое уведомление с финальным статусом выплаты. Торговец также может запросить статус выплаты у bePaid с помощью запроса получения статуса транзакции.
Запрос
Отправьте запрос выплаты средств со следующими данными:
|
|||||||||||||||||||||||
Пример запроса на проведение выплаты
{
"request": {
"amount": 10000,
"currency": "BYN",
"description": "description",
"test": false,
"tracking_id": "your_uniq_number",
"notification_url": "https://your-notification.url",
"return_url": "https://your-success.url",
"method": {
"type": "crypto_currency",
"token_standard": "Tron",
"currency": "TRX",
"recipient_wallet_id": "GHFH123413hJJHHGHF"
},
"customer": {
"external_id": "user-12345"
}
}
}
Ответ
|
|||||||||||||||||||||||
Пример ответа на запрос на проведение выплаты
{
"transaction": {
"uid": "5a050f2a-a491-479f-b96c-4ca9f3c28bec",
"type": "payout",
"status": "pending",
"amount": 10000,
"currency": "BYN",
"description": "description",
"created_at": "2025-08-01T13:39:13Z",
"updated_at": "2025-08-01T13:39:14Z",
"manually_corrected_at": null,
"method_type": "crypto_currency",
"receipt_url": "https://merchant.bepaid.by/customer/transactions/5a050f2a-a491-479f-b96c-4ca9f3c28bec/9d31abf45028f04cf47f85e39728081e9706f11111111",
"payout": {
"status": "pending",
"gateway_id": 3878,
"message": "Transaction was initialized.",
"bank_code": 422
},
"crypto_currency": {
"type": "crypto_currency"
},
"customer": {
"email": null,
"ip": null
},
"version": 1,
"message": "Transaction was initialized.",
"test": true,
"billing_address": {},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"smart_routing_verification": {
"status": "successful"
}
}
}
Пример ответа на запрос статуса выплаты, статус successful
{
"transaction": {
"uid": "e92ef070-8593-47dc-ae40-111111",
"type": "payout",
"status": "successful",
"message": "Transaction successfully processed.",
"amount": 3500,
"currency": "BYN",
"description": "description",
"created_at": "2025-09-16T15:12:18Z",
"updated_at": "2025-09-16T15:12:47Z",
"manually_corrected_at": null,
"method_type": "crypto_currency",
"receipt_url": "https://merchant.bepaid.by/customer/transactions/e92ef070-8593-47dc-ae40-c884ebd5e6e2/35a126f73e642bba3506c66e863a0ba6c1bb7d93d629c2e248d6d6f6e6cee545?language=en",
"payout": {
"status": "successful",
"gateway_id": 5712,
"ref_id": "e852c660-b0c2-4856-b333-1111111",
"message": "Transaction successfully processed."
},
"crypto_currency": {
"type": "crypto_currency",
"amount": "80",
"currency": "TRX",
"token_standard": "Tron",
"recipient_wallet_id": "TYPAe4v111111111111111111"
}
...
}
}
Автоматические уведомления
Автоматические уведомления высылаются при изменении статуса транзакции на pending, expired, failed или successful.
| Статус транзакции | Финальный статус? | Текст сообщения, transaction.message |
Описание статуса |
pending |
нет | Transaction was initialized. | Запрос на проведение транзакции принят, но транзакция еще не завершена. |
successful |
да | Transaction successfully processed. | Транзакция проведена успешно. |
failed |
да | зависит от ошибки | Провести транзакцию не удалось. |
expired |
да | Transaction expired. | Допустимое время завершения транзакции истекло. |
Пример уведомления: покупатель не прошел проверку KYC
{
"transaction": {
"uid": "b91f6618-0b36-4d3a-a940-11111",
"type": "payout",
"status": "failed",
"amount": 3501,
"currency": "BYN",
"description": "description",
"created_at": "2025-09-29T12:16:10Z",
"updated_at": "2025-09-29T12:16:10Z",
"manually_corrected_at": null,
"method_type": "crypto_currency",
"receipt_url": "https://merchant.bepaid.by/customer/transactions/b91f6618-0b36-4d3a-a940-11111/11111?language=en",
"payout": {
"status": "failed",
"gateway_id": 5712,
"message": "Verified customer not found."
},
"crypto_currency": {
"type": "crypto_currency",
"currency": "TRX",
"token_standard": "Tron",
"recipient_wallet_id": "TYPAe4vUYtUAKgrRt7iUc2fLuVhRHfCiJG"
},
"customer": {
"email": null,
"ip": "127.0.0.1"
},
"version": 1,
"message": "Verified customer not found.",
"tracking_id": "your_uniq_number",
"test": false,
"language": "en",
"paid_at": "2025-09-29T12:16:10Z",
"billing_address": {
"zip": "220000",
"city": "Minsk",
"phone": "17777777777",
"state": "Minsk Region",
"gender": "male",
"street": "10-21",
"address": "1st Street",
"country": "RU",
"device_id": "12312312321fff67",
"birth_date": "1990-01-01",
"taxpayer_id": "010200A9618"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"smart_routing_verification": {
"status": "successful"
}
}
}
Список доступных криптовалют
| Название криптовалюты | Код криптовалютыmethod.currency |
Название сети криптовалютыmethod.token_standard |
| Bitcoin | BTC | Bitcoin |
| Ethereum | ETH | Ethereum |
| USD Coin | USDC | Ethereum |
| Tether | USDT | Ethereum |
| TON | TON | Ton |
| Tether | USDT | TON |
| Tronix | TRX | Tron |
| Tether | USDT_TRC | Tron |
Значения document_type
Значение параметра document_type |
Описание параметра document_type |
passport |
Паспорт |
international_passport |
Заграничный паспорт |
foreign_passport |
Паспорт иностранного гражданина |
id_card |
Идентификационная карта (ID-карта) |
driver_license |
Водительское удостоверение |
residence_permit |
Вид на жительство иностранного гражданина (обычный) |
residence_permit_refugee |
Вид на жительство беженца. (обычный) |
residence_permit_bio_refugee |
Вид на жительство беженца (биометрический). |
residence_permit_bio_stateless |
Вид на жительство лица без гражданства (биометрический) |
temporary_residence_permit |
Разрешение на временное проживание |
temporary_identity_card |
Удостоверение личности (временное удостоверение личности) |
military_identity_card |
Удостоверение личности военнослужащего |
military_id |
Военный билет |
refugee_certificate |
Удостоверение беженца |
temporary_asylum_certificate |
Свидетельство о предоставлении временного убежища |
resettler_certificate |
Удостоверение переселенца или лица, ходатайствующего о статусе |
travel_document_foreign |
Проездной документ иностранного гражданина |
migration_card |
Миграционная карта |
seafarer_passport |
Паспорт моряка / удостоверение личности моряка |
diplomatic_certificate |
Удостоверение личности дипломатического/служебного представителя |
return_certificate |
Свидетельство о возвращении на родину / справка на возвращение |
other |
Иной документ, удостоверяющий личность |