Personal data verification of cardholders
The system lets you send personal data parameters in the transaction requests if it is required to verify the customer's personal data in the system of the issuing bank with the customer's personal data in the merchant's system.
When activating verification service for the shop, one of the 2 modes is selected:
- Strict mode: if a verification error occurs, the transaction is rejected. The transaction is assigned the F.0996 code, and the verification status will have one of the following error codes: F.0100, F.0101, F.0102;
- Soft mode: some verification errors do not affect the transaction result, but the
vpd_verificationobject will still contain the information about the verification error: S.0001 or S.0002
The verification service mode is selected depending on the requirements of the Republic of Belarus legislation applicable to the merchant’s field of activity.
See more about personal data verification error codes here.
Info
To increase the likelihood of successful verification for non-residents of Belarus, it is recommended to provide the most complete customer name details: first name, last name and middle name in both Latin transcription and Cyrillic.
Widget integration
To integrate with the payment widget or the payment page, initiate the widget or create a payment token with the additional parameters specified in the table:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example
Payment token request example
{
"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_unique_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description",
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
},
"customer": {
"external_id": "user-12345",
"birth_date": "1990-01-01"
}
}
}
Payment token request example
{
"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_unique_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description",
"additional_data": {
"customer_id_data": {
"document_type": "passport",
"document_number": "12345678",
"document_country": "GB"
},
"kyc_answers": {
"answers": {
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich",
"first_name_ru": "Иван",
"last_name_ru": "Иванов",
"middle_name_ru": "Иванович"
}
}
}
},
"customer": {
"external_id": "user-12345"
}
}
}
Card payments
Authorization / Payment
Request
Send an authorization request or a payment request with the following additional parameters:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Request examples for authorization/payment
Info
Example for residents of Belarus
{
"request": {
"amount": 100,
"currency": "BYN",
"description": "Test transaction",
"tracking_id": "your_unique_number",
"language": "ru",
"test": true,
"credit_card": {
"number": "4200000000000000",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2027"
},
"customer": {
"external_id": "user-12345",
"birth_date": "1990-01-01"
},
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
}
}
Example for non-residents of Belarus
{
"request": {
"amount": 100,
"currency": "BYN",
"description": "Test transaction",
"tracking_id": "your_unique_number",
"language": "ru",
"test": true,
"credit_card": {
"number": "4200000000000000",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2027"
},
"customer": {
"external_id": "user-12345"
},
"additional_data": {
"customer_id_data": {
"document_type": "{Document type, passport}",
"document_number": "{Document number, 1234567}",
"document_country": "{Country that issued the document, GB}"
},
"kyc_answers": {
"answers": {
"phone": "+375291234567",
"first_name": "Ivan",
"last_name": "Petrov",
"middle_name": "Ivanovich",
"first_name_ru": "Иван",
"last_name_ru": "Петров",
"middle_name_ru": "Иванович"
}
}
}
}
}
Response
The response will include vpd_verification object with the personal data verification results.
|
|||||||||||||||||||||||||||
Payout
Request
Send a payout request with the following additional data:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Example
Payout request example
{
"request": {
"amount": 100,
"currency": "BYN",
"description": "Test transaction",
"tracking_id": "tracking_id_000",
"recipient": {
"birth_date": "1990-01-01",
"phone": "+375291234567",
"email": "ivan.petrov@example.com"
},
"recipient_billing_address": {
"first_name": "John",
"last_name": "Doe",
"country": "US",
"city": "Denver",
"state": "CO",
"zip": "96002",
"address": "1st Street",
"phone": "+375444444444"
},
"recipient_credit_card": {
"number": "5555555555554444",
"holder": "John Doe",
"exp_month": "12",
"exp_year": "2027"
},
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
}
}
Payout request example
{
"request": {
"amount": 100,
"currency": "BYN",
"description": "Test transaction",
"tracking_id": "tracking_id_000",
"recipient": {
"phone": "+375291234567",
"email": "ivan.petrov@example.com"
},
"recipient_billing_address": {
"first_name": "John",
"last_name": "Doe",
"country": "US",
"city": "Denver",
"state": "CO",
"zip": "96002",
"address": "1st Street",
"phone": "+375444444444"
},
"recipient_credit_card": {
"number": "5555555555554444",
"holder": "John Doe",
"exp_month": "12",
"exp_year": "2027"
},
"additional_data": {
"customer_id_data": {
"document_type": "{Document type, passport}",
"document_number": "{Document number, 1234567}",
"document_country": "{Country that issued the document, GB}"
},
"kyc_answers": {
"answers": {
"phone": "1234567890",
"first_name": "Ivan",
"last_name": "Petrov",
"middle_name": "Ivanovich",
"first_name_ru": "Иван",
"last_name_ru": "Петров",
"middle_name_ru": "Иванович"
}
}
}
}
}
Response
The response will include an additional object vpd_verification with the personal data verification results.
Successful verification
{
"transaction": {
"uid": "26d6f343-b36e-4306-b6a3-013e2b969ec2",
"status": "successful",
"amount": 100,
"currency": "BYN",
"description": "Test transaction",
"type": "payout",
"payment_method_type": "credit_card",
"tracking_id": "your_unique_number",
"message": "Transaction is successful.",
"test": true,
"created_at": "2025-09-10T13:52:04.428Z",
"updated_at": "2025-09-10T13:52:07.029Z",
"paid_at": "2025-09-10T13:52:06.945Z",
"expired_at": null,
"recurring_type": null,
"closed_at": null,
"settled_at": null,
"manually_corrected_at": null,
"language": "en",
"credit_card": {
"holder": "John Doe",
"stamp": "d1c853d9d6623ad497d6df0f90b92d19ae8393913b17198ac6006bdc2700485a",
"brand": "visa",
"last_4": "0000",
"first_1": "4",
"bin": "420000",
"bin_8": "42000000",
"issuer_country": "US",
"issuer_name": "VISA Demo Bank",
"product": "F",
"exp_month": 5,
"exp_year": 2027,
"token_provider": null,
"token": null
},
"receipt_url": "https://merchant.bepaid.by/customer/transactions/26d6f343-b36e-4306-b6a3-013e2b969ec2/065724d397951ad8fcd066cdb7edd678b78f50fc8866c64cdb198993eb554dcb?language=en",
"status_code": null,
"gateway": {
"iframe": true
},
"mute_notifications": null,
"version": 4,
"psp_settled_at": null,
"registry_id": null,
"three_ds_expired_at": null,
"id": "26d6f343-b36e-4306-b6a3-013e2b969ec2",
"additional_data": {
"customer_id_data": {
"document_type": "passport",
"document_number": "1234567",
"document_country": "GB"
},
"kyc_answers": {
"answers": {
"phone": "1234567890",
"first_name": "Ivan",
"last_name": "Petrov",
"middle_name": "Sergeevich",
"first_name_ru": "Иван",
"last_name_ru": "Петров",
"middle_name_ru": "Сергеевич"
}
}
},
"redirect_url": "https://gateway.bepaid.by/process/26d6f343-b36e-4306-b6a3-013e2b969ec2",
"code": "S.0000",
"friendly_message": "The transaction is successfully processed.",
"vpd_verification": {
"status": "verified"
},
"smart_routing_verification": {
"status": "successful"
},
"payment": {
"auth_code": "654321",
"bank_code": "05",
"rrn": "999",
"ref_id": "777888",
"message": "Payment was approved",
"amount": 100,
"currency": "BYN",
"billing_descriptor": "test descriptor",
"gateway_id": 2505,
"status": "successful"
},
"avs_cvc_verification": {
"avs_verification": {
"result_code": "1"
},
"cvc_verification": {
"result_code": "1"
}
},
"customer": {
"ip": null,
"email": "ivan.petrov@example.com",
"device_id": null,
"birth_date": "1990-01-01",
"external_id": "user-12345"
},
"billing_address": {
"first_name": null,
"last_name": null,
"address": "1st Street",
"country": "US",
"city": "Denver",
"zip": "96002",
"state": "CO",
"phone": null
}
}
}
Possible values for the document_type parameter
document_type parameter value |
Description of the document_type parameter value |
passport |
Passport |
international_passport |
International passport |
foreign_passport |
Foreign citizen’s passport |
id_card |
Identity card (ID card) |
driver_license |
Driver's license |
residence_permit |
Residence permit for a foreign citizen (regular) |
residence_permit_refugee |
Refugee residence permit. (regular) |
residence_permit_bio_refugee |
Refugee residence permit (biometric). |
residence_permit_bio_stateless |
Stateless person’s residence permit (biometric) |
temporary_residence_permit |
Temporary residence permit |
temporary_identity_card |
Temporary identity card |
military_identity_card |
Military service ID card |
military_id |
Military ID |
refugee_certificate |
Refugee certificate |
temporary_asylum_certificate |
Temporary asylum certificate |
resettler_certificate |
Resettler certificate or applicant for status |
travel_document_foreign |
Travel document of a foreign citizen |
migration_card |
Migration card |
seafarer_passport |
Seafarer’s passport / seafarer’s identity card |
diplomatic_certificate |
Diplomatic identity card |
return_certificate |
Return certificate |
other |
Other identity document |
Testing
To test the verification, send one of the requests on this page and add parameter request.test set to true. For successful verification, use the parameter values from the table below:
| Parameter (in brackets – for payouts) | Residents of Belarus | Non-residents of Belarus |
credit_card.number (recipient_credit_card.number) |
9112395040140378 | 9112395040140378 |
credit_card.exp_month (recipient_credit_card.exp_month) |
any | any |
credit_card.exp_year (recipient_credit_card.exp_year) |
later than 2026 | later than 2026 |
additional_data.customer_id_data.personal_number |
3120590A001PB5 | - |
customer.birth_date (recipient.birth_date) |
1990-01-01 | - |
additional_data.customer_id_data.document_number |
- | AA1234567 |
additional_data.customer_id_data.document_type |
- | passport |
additional_data.customer_id_data.document_country |
- | PL |
additional_data.kyc_answers.answers.first_name |
- | Ivan |
additional_data.kyc_answers.answers.last_name |
- | Ivanov |
Request
Example
Payment request example
{
"request": {
"amount": "100",
"currency": "BYN",
"test": true,
"description": "Test transaction",
"language": "ru",
"notification_url": "https://notification-url",
"credit_card": {
"number": "9112395040140378",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2026"
},
"customer": {
"external_id": "user-12345",
"birth_date": "1990-01-01"
},
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
}
}
Payment request example
{
"request": {
"amount": "100",
"currency": "BYN",
"test": true,
"description": "Test transaction",
"language": "ru",
"notification_url": "https://notification-url",
"credit_card": {
"number": "9112395040140378",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2026"
},
"customer": {
"external_id": "user-12345"
},
"additional_data": {
"customer_id_data": {
"document_number": "AA1234567",
"document_type": "passport",
"document_country": "PL"
},
"kyc_answers": {
"answers": {
"first_name": "Ivan",
"last_name": "Ivanov"
}
}
}
}
}
Response
If verification results in an error, processing code F.0996 will be sent in the transaction.code parameter and the parameter vpd_verification.code will include one of the validation errors by the personal data verification service.
1. Successful verification
Use the parameters from the table for the request.
Response fragment: successful verification
{
"transaction": {
"uid": "26d6f343-b36e-4306-b6a3-013e2b969ec2",
"status": "successful",
...
"message": "Transaction is successful.",
"test": true,
"code": "S.0000",
"friendly_message": "The transaction is successfully processed.",
"vpd_verification": {
"status": "verified"
},
"smart_routing_verification": {
"status": "successful"
}
}
}
2. Verification status rejected: the submitted customer data does not match the data in the issuer's system (for both strict and soft modes)
To get this result:
- for residents of Belarus, send the
birth_datevalue different from the one provided in the table; - for non-residents of Belarus, send the
document_numbervalue different from the one provided in the table.
Request fragment: wrong value of the birth_date parameter
{
"request": {
"credit_card": {
"number": "9112395040140378"
},
"customer": {
"birth_date": "1991-02-02"
},
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
}
}
Response fragment: verification status is rejected, the submitted customer data does not match the data in the issuer's system
{
"transaction": {
"uid": "ab8dd5da-3e28-4f28-8cf7-ac714f8fd2cb",
"code": "F.0996",
"friendly_message": "The transaction was not verified.",
"message": "The transaction was not verified by the verification service VPD.",
"status": "failed",
"vpd_verification": {
"status": "rejected",
"code": "F.0100",
"message": "Customer verification failed.",
"friendly_message": "Customer verification failed.",
"provider_response": {
"is_clientcard": 1,
"is_bdcorrect": 0
}
}
}
}
3. Parameters validation error (for both strict and soft modes)
To get the validation error:
- for residents of Belarus, send the request without the required parameter
personal_number; - for non-residents of Belarus, send the request without the required parameter
document_country.
Request fragment: the required parameter personal_number is not specified
{
"request": {
"credit_card": {
"number": "9112380131987184"
},
"customer": {
"birth_date": "1991-01-01"
},
"additional_data": {
"customer_id_data": {
"personal_number": ""
}
}
}
}
Response fragment: verification status is rejected, one of the required parameters is missing
{
"uid": "b3c81448-91ef-4d72-af47-c923f796a2fb",
"code": "F.0996",
"friendly_message": "Транзакция не была подтверждена сервисом верификации VPD.",
"status": "failed",
...
"message": "Транзакция не была подтверждена.",
...
"vpd_verification": {
"status": "rejected",
"code": "F.0102",
"message": "Invalid request parameters. Check the transaction parameters or contact the payment service provider for details.",
"friendly_message": "Invalid request parameters. Contact the merchant for details.",
"provider_response": {
"is_clientcard": 1,
"is_bdcorrect": 0
},
"service_code": "vpd_rejected"
},
...
}
4. rejected verification status: the personal data verification service (VPD) was not defined for the submitted card BIN (strict mode)
To reproduce this error, use the number of any card issued in Belarus, except for 9112395040140378. For example, 9112380131987184.
Request fragment: wrong card number
{
"request": {
"amount": "100",
"currency": "BYN",
"test": true,
"description": "Test transaction",
"language": "ru",
"notification_url": "https://notification-url",
"credit_card": {
"number": "9112380131987184",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2026"
},
"customer": {
"external_id": "user-12345",
"birth_date": "1990-01-01"
},
"additional_data": {
"customer_id_data": {
"personal_number": "30101990AB123CD4"
}
}
}
}
Response fragment: verification status is rejected, the personal data verification service (VPD) was not defined for the submitted card BIN
{
"transaction": {
"uid": "ab8dd5da-3e28-4f28-8cf7-ac714f8fd2cb",
"code": "F.0996",
"friendly_message": "The transaction was not verified.",
"message": "The transaction was not verified by the verification service VPD.",
"status": "failed",
"vpd_verification": {
"status": "rejected",
"code": "F.0101",
"message": "Customer verification failed. The verification service VPD for transmitted data is not defined.",
"friendly_message": "Customer verification failed."
}
}
}
5. successful transaction status and skipped verification status (soft mode)
To reproduce this error, use the number of any card issued in Belarus, except for 9112395040140378. For example, 9112380131987184. Also soft mode of verification service must be set up for the shop.
Request example for receiving S.0001 verification error
{
"request": {
"amount": 100,
"description": "description",
"currency": "BYN",
"test": true,
"credit_card": {
"number": "9112380131987184",
"exp_month": "03",
"exp_year": "2027"
},
"customer": {
"birth_date": "1991-01-01"
},
"additional_data": {
"customer_id_data": {
"personal_number": ""
}
}
}
}
Response example with S.0001 verification code, the personal data verification service (VPD) was not defined for the submitted card BIN, soft mode of verification service is set up for the shop
{
"transaction": {
"uid": "8644fe00-35f0-4e35-a148-5d8405e722d6",
"status": "successful",
"amount": 100,
"currency": "BYN",
"description": "description",
"type": "payment",
"payment_method_type": "credit_card",
"tracking_id": null,
"message": "Transaction is successful.",
"test": true,
"created_at": "2026-01-21T14:11:38.309Z",
"updated_at": "2026-01-21T14:11:40.879Z",
"paid_at": "2026-01-21T14:11:40.815Z",
"expired_at": null,
"recurring_type": "d_moto",
"closed_at": null,
"settled_at": null,
"manually_corrected_at": null,
"language": "en",
"credit_card": {
"holder": null,
"stamp": "a34d9860a75986a749b685d8c91f0697d0699fd9d4c7afaaf265c9846ff6ad27",
"brand": "belkart",
"last_4": "7184",
"first_1": "9",
"bin": "911238",
"bin_8": "91123801",
"issuer_country": "BY",
"issuer_name": "BELARUSBANK",
"product": "BELKART",
"exp_month": 3,
"exp_year": 2027,
"token_provider": null,
"token": null
},
"receipt_url": "https://merchant.bepaid.by/customer/transactions/8644fe00-35f0-4e35-a148-5d8405e722d6/2cccbd19079bd02335e03c87c6b6bd20a53a8069cbae3d37e790593a49d6de34?language=en",
"status_code": null,
"gateway": {
"iframe": true
},
"mute_notifications": null,
"version": 3,
"psp_settled_at": null,
"registry_id": null,
"three_ds_expired_at": null,
"id": "8644fe00-35f0-4e35-a148-5d8405e722d6",
"additional_data": {
"customer_id_data": {
"personal_number": ""
}
},
"vpd_verification": {
"status": "skipped",
"code": "S.0001",
"message": "Customer verification skipped: verification service provider was not found.",
"friendly_message": "Customer verification skipped: verification service provider was not found."
},
"redirect_url": "https://gateway.bepaid.by/process/8644fe00-35f0-4e35-a148-5d8405e722d6",
"code": "S.0000",
"friendly_message": "The transaction is successfully processed.",
"payment": {
"auth_code": "654321",
"bank_code": "05",
"rrn": "999",
"ref_id": "777888",
"message": "Payment was approved",
"amount": 100,
"currency": "BYN",
"billing_descriptor": "TEST GATEWAY BILLING DESCRIPTOR",
"gateway_id": 3549,
"status": "successful"
},
"avs_cvc_verification": {
"avs_verification": {
"result_code": "1"
},
"cvc_verification": {
"result_code": "1"
}
},
"customer": {
"ip": null,
"email": null,
"device_id": null,
"birth_date": "1991-01-01",
"external_id": null
},
"billing_address": {
"first_name": null,
"last_name": null,
"middle_name": null,
"address": null,
"country": null,
"city": null,
"zip": null,
"state": null,
"phone": null
}
}
}
ERIP payments
Merchants in the gambling industry are now required to provide additional customer information during ERIP payments.
For residents of Belarus, the following parameters must be sent:
- Country that issued the customer's personal identification document:
additional_data.customer_id_data.document_country. - Identification number specified in the ID document:
additional_data.customer_id_data.personal_number.
Request examples for residents of Belarus:
Payment token request example
{
"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_unique_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description",
"additional_data": {
"customer_id_data": {
"document_country": "BY",
"personal_number": "0000000A000PB0"
}
}
}
}
}
ERIP payment request example
{
"request": {
"amount": 1000,
"currency": "BYN",
"description": "Payment for Order#123",
"email": "ivanpetrov@example.com",
"ip": "127.0.0.1",
"order_id": 123456789012,
"tracking_id": "AB8923",
"notification_url": "http://merchant.example.com",
"customer": {
"first_name": "Ivan",
"middle_name": "Ivanovich",
"last_name": "Petrov"
},
"payment_method": {
"type": "erip",
"account_number": "123",
"service_no": "99999999"
},
"additional_data": {
"customer_id_data": {
"document_country": "BY",
"personal_number": "0000000A000PB0"
}
}
}
}
For non-residents of Belarus, the following parameters must be sent:
- Country that issued the customer's personal identification document:
additional_data.customer_id_data.document_country. - The customer's date of birth:
customer.birth_date.
Request examples for non-residents of Belarus:
Payment token request example
{
"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_unique_number",
"currency": "BYN",
"amount": 10000,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description",
"additional_data": {
"customer_id_data": {
"document_country": "RU"
}
}
},
"customer": {
"birth_date": "1990-01-01"
}
}
}
ERIP payment request example
{
"request": {
"amount": 1000,
"currency": "BYN",
"description": "Payment for Order#123",
"email": "ivanpetrov@example.com",
"ip": "127.0.0.1",
"order_id": 123456789012,
"tracking_id": "AB8923",
"notification_url": "http://merchant.example.com",
"customer": {
"first_name": "Ivan",
"middle_name": "Ivanovich",
"last_name": "Petrov",
"birth_date": "1990-01-01"
},
"payment_method": {
"type": "erip",
"account_number": "123",
"service_no": "99999999"
},
"additional_data": {
"customer_id_data": {
"document_country": "RU"
}
}
}
}