Faster Payments System (SBP)
Payment flow
The Faster Payments System payment flow contains the following steps:
- You initiate a payment request.
- The system submits a request to the payment method provider. The Faster Payments System generates a QR-code used to complete a payment.
- You get a response and redirect your customer to the received URL.
- Your customer gets the payment QR-code and completes the payment.
- You get a webhook notification about a payment status, if you send
notification_urlin the payment request.
This alternative payment method supports the following operations:
Payment
Request
Send a payment request with the following additional data:
|
|||||||
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
- The customer initiates the payment on the merchant's website.
- The merchant sends the payment request to 2can.
- 2can returns a URL to the page to which the customer needs to be redirected.
- The merchant redirects the customer to the received payment page URL.
- The link displays the QR-code. The customer scans the QR code and completes the payment.
- 2can sends a webhook notification to the merchant.
- The merchant displays the payment status to the customer.
Request
Send a payment request with the following additional data:
|
|||||||||||||||||
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.