Skip to content

Faster Payments System (SBP)

Payment flow

The Faster Payments System payment flow contains the following steps:

  1. You initiate a payment request.
  2. The system submits a request to the payment method provider. The Faster Payments System generates a QR-code used to complete a payment.
  3. You get a response and redirect your customer to the received URL.
  4. Your customer gets the payment QR-code and completes the payment.
  5. You get a webhook notification about a payment status, if you send notification_url in the payment request.

This alternative payment method supports the following operations:


Payment

Request

Send a payment request with the following additional data:

object
A section of the payment method information.
type
required
string
sbp
Response

The payment response additionally contains the form section with the URL of a page with the QR-code. Redirect your customer to the URL received as a value of the form.action parameter.


Payment status query

Request

To check a status of the payment, send a transaction status query.

Response

The response contains the transaction status, a section of the payment method as well as other details related to the transaction according to the description of a transaction status query.


Refund

Request

To pay money back to the customer, send a refund request with the UID of the payment transaction.

Response

The response contains the status of the refund transaction as well as other relevant transaction details according to the description of a refund transaction.

TC Integration option

Info

This integration option only supports RUB currency.

Payment

Payment flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends the payment request to 2can.
  3. 2can returns a URL to the page to which the customer needs to be redirected.
  4. The merchant redirects the customer to the received payment page URL.
  5. The link displays the QR-code. The customer scans the QR code and completes the payment.
  6. 2can sends a webhook notification to the merchant.
  7. The merchant displays the payment status to the customer.
Request

Send a payment request with the following additional data:

object
return_url
required
string
A URL to return the customer to when the transaction is completed.
ip
required
string
The customer's IP address.
language
required
string
The language of the payment page.
object
A section of the payment method information.
type
required
string
sbp
Request example
{
    "request": {
        "amount": 100,
        "currency": "RUB",
        "description": "description",
        "test": true,
        "ip": "127.0.0.1",
        "tracking_id": "11111111",
        "language": "ru",
        "notification_url": "https://merchant.ltd/notification",
        "return_url": "https://merchant.ltd/return",
        "method": {
            "type": "sbp"
        }
    }
}
Response

Redirect your customer to the URL received as the value of the form.action parameter.

Response example
{
    "transaction": {
        "uid": "0673a56e-9ced-4746-a9cc-64472b96b209",
        "type": "payment",
        "status": "pending",
        "amount": 200,
        "currency": "RUB",
        "description": "description",
        "created_at": "2025-09-26T09:13:31Z",
        "updated_at": "2025-09-26T09:13:33Z",
        "method_type": "sbp",
        "receipt_url": "https://ecom-backoffice.2can.ru/customer/transactions/0673a56e-9ced-4746-a9cc-64472b96b209/d7cf1af87f2e432c11d8399a5a554adbd30676cfcbaa0790a0d8a76727be97b8?language=ru",
        "payment": {
            "status": "pending",
            "gateway_id": 5756,
            "ref_id": "AD1432A2BFB445D1992B7F07FA7C9177",
            "message": "Transaction was initialized.",
            "bank_code": 0
        },
        "sbp": {
            "type": "sbp"
        },
        "customer": {
            "email": null,
            "ip": "127.0.0.1"
        },
        "manually_corrected_at": null,
        "version": 1,
        "message": "Transaction was initialized.",
        "tracking_id": "11111111",
        "test": true,
        "language": "ru",
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },       
        "gateway": {
            "iframe": true
        },
        "form": {
            "action": "payment-link",
            "fields": [],
            "method": "GET"
        }
    }
}

Refund

Request

Send a standard refund request. The amount value must not exceed the amount of the parent transaction.

MBP2 Integration option

Payout flow

  1. The customer initiates the payout on the merchant's website.
  2. The merchant sends the supported banks request to 2can.
  3. 2can responds with a list of available banks along with the bank_name and bank_code parameters.
  4. The merchant sends the payout request to 2can along with the bank_code.
  5. 2can sends the response with the pending transaction status.
  6. 2can sends a webhook notification to the merchant.
  7. The merchant displays the payment status to the customer.

Info

This integration option only supports RUB currency.

Supported banks

Request

POST https://api-ecom-gateway.2can.ru/beyag/gateways/{gateway_id}/bank_list

The {gateway_id} value in the request path is the ID of the payment gateway activated for your shop for this integration. To get the gateway ID, contact the Tech Support Team or your account manager.

Response
object
array
A list of available banks. Each object in the array corresponds to a bank.
bank_code
string
Bank code.
bank_name
string
Bank name.
Response example
{
    "response": {
        "list": [
            {
                "bank_code": "188888888885",
                "bank_name": "Золотой Банк"
            },
            {
                "bank_code": "100000000017",
                "bank_name": "МТС Банк"
            }
        ]
    }
}

Payout

Request

Send a payout request with the following additional data:

object
object
A section of the payout method.
type
required
string
sbp
account_number
required
string
The payout recipient's phone number starting with 7.
bank_code
required
string
The payout recipient's bank_code returned in the response to the supported banks request.
object
A section of the payout recipient's information. If Strict FIO matching is enabled at the gateway level, the values provided in this object are validated against the corresponding values in the provider’s system at the time of the transaction. If the values do not match or are not provided, the transaction is declined with error code F.0217.
first_name
string
Payout recipient's first name.
last_name
string
Payout recipient's last name.
middle_name
string
Payout recipient's middle name.
Request example
{
  "request": {
    "amount": 100,
    "currency": "RUB",
    "description": "description",
    "test": false,
    "skip_duplicate_check": true,
    "tracking_id": "123",   
    "language": "en",    
    "return_url": "https://example.com/",
    "customer": {
      "first_name": "John",
      "middle_name": "Michael",
      "last_name": "Doe"
    },
    "method": {
      "type": "sbp",
      "bank_code": "1crt88888881",
      "account_number": "79126543434"
    }
  }
}   
Response
Response example
{
    "transaction": {
        "uid": "b4a599d8-44d6-41e9-8bac-6a1f6fb859d0",
        "type": "payout",
        "status": "pending",
        "amount": 100,
        "currency": "RUB",
        "description": "description",
        "created_at": "2026-09-03T15:10:23Z",
        "updated_at": "2026-09-03T15:10:23Z",
        "manually_corrected_at": null,
        "method_type": "sbp",
        "receipt_url": "https://ecom-backoffice.2can.ru/customer/transactions/b4a599d8-44d6-41e9-8bac-6a1f6fb859d0/0bc1462277dafcebdb6d9b90287eeba19589d1149997ee9cba17b2dc07dff987?language=en",
        "payout": {
            "status": "pending",
            "gateway_id": 7224,
            "ref_id": "806258176533406",
            "message": "В обработке. Требуется подтвердить проведение платежа",
            "bank_code": "0"
        },
        "sbp": {
            "type": "sbp",
            "bank_code": "1crt88888881",
            "account_number": "79126543434"
        },
        "customer": {
            "email": null,
            "ip": null
        },
        "version": 3,
        "message": "В обработке. Требуется подтвердить проведение платежа",
        "tracking_id": "123",
        "test": false,
        "language": "en",
        "billing_address": {
            "last_name": "Doe",
            "first_name": "John",
            "middle_name": "Michael"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },
        "smart_routing_verification": {
            "status": "skipped"
        }
    }
}