Skip to main content

Single-request payments

Card payments can be processed with a single request—the result is returned immediately in the response. In this case, webhooks from Bank 131 are not sent.

This method is suitable if you are not using the payment form widget.

We do not recommend processing payments with a single request. If you still wish to use this method, please contact your personal account manager at Bank 131.

Step 1. Create a payment with a single request

Start the payment using the session/init/payment/sync method. Pass the payment parameters.

Single-request payment example
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment/sync \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "4242424242424242",
"expiration_month": "01",
"expiration_year": "22",
"security_code": "123"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"customer": {
"reference": "lucky"
},
"payment_options": {
"return_url": "https://131.ru"
}
}'

Step 2. Wait for the payment result

The payment status is returned in the response in the status parameter of the acquiring_payments/payment_list array:

  • succeeded — the payment was successful
  • failed — the payment failed due to an error
  • pending — 3D Secure authentication is required. Redirect the payer using the link from the customer_interaction.redirect.url parameter to complete 3D Secure authentication
  • in_progress — the payment is being processed (returned if processing takes more than 40 seconds)
Successful response example
{
"status": "ok",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2025-05-27T02:03:00.000000Z",
"updated_at": "2025-05-27T02:03:00.000000Z",
"acquiring_payments": [{
"id": "pm_203",
"status": "succeeded",
"created_at": "2025-05-27T02:03:00.000000Z",
"customer": {
"reference": "lucky"
},
"payment_details": {
"type": "card",
"card": {
"brand": "visa",
"last4": "4242"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"payment_options": {
"return_url": "https://131.ru"
}
}]
}
}
info

You can also check the final status using the session/status method.

View error codes >