Integration GuideAPI Reference
Integration Guide

"SBP" Payment Method

Accept SBP payments in RUB through Hosted Checkout. Create an Intent, redirect the payer to the returned checkout URL, and receive payment updates by webhook.

Payment Method Definition

📓

displayedPaymentMethods

This parameter defines which payment methods are available to the payer on the checkout form.

Provide it in paymentIntent.formDetails.displayedPaymentMethods.

For SBP, use ["SBP"].


Payment Method Features

FeatureValue
CountryRussia
Processing CurrencyRUB
PaymentsYes
Payment OptionsQR code and payment link
RefundsFull and partial, through the Refund API
DisbursementsAvailable through a separate API flow

SBP must be enabled for your settlement account before you can offer it on the checkout form.


Workflow

Download in high resolution


  1. Create an Intent with useCheckoutForm set to true and ["SBP"] in paymentIntent.formDetails.displayedPaymentMethods.
  2. Redirect the payer to the URL returned in paymentIntent.additionalData.url.
  3. The checkout form opens the SBP payment option and prepares a QR code.
  4. The payer scans the QR code or follows the payment link, then confirms the payment in their banking app.
  5. The checkout form displays the payment result. The platform sends payment updates to your webhook URL, if configured.
DevicePayment Experience
DesktopThe payer scans the QR code with their phone. A payment link can also be displayed if enabled in the checkout template.
MobileThe payer can follow the payment link using the button below the QR code.

The checkout form prepares and displays the QR code. You do not need to request or display a separate SBP payment link.


Create Intent Request

Specifics

  • Use POST /processing/api/v1/intents.
  • Set useCheckoutForm to true and provide the paymentIntent object.
  • Include formDetails, the order amount in RUB, and an order description.
  • Select SBP using paymentIntent.formDetails.displayedPaymentMethods.
  • The checkout form handles the payment attempt when the payer opens the SBP option. You do not need to provide a payments array or SBP payment instrument details in this request.

Intent, Payment, and PaymentIntent

TermMeaning
IntentThe order container that groups the checkout session and its payment attempts.
PaymentAn individual payment attempt. For SBP Hosted Checkout, it is created when the checkout form prepares the SBP payment.
PaymentIntentThe order details and checkout settings supplied when creating the Intent. These settings apply to payments made within the session.

Creating the Intent does not mean the order has been paid. Confirm the payment result using payment status updates.


Request and Response Description

Request Description

The example below creates an SBP checkout session for an order of 500 RUB. Replace the order reference, description, amount, and merchant URLs with your own values. Send the request with your Authorization and settlement-account-id headers, as described in the API reference.

{
  "clientReferenceId": "1234",
  "useCheckoutForm": true,
  "paymentIntent": {
    "formDetails": {
      "displayedPaymentMethods": ["SBP"],
      "backToStoreRedirectUrl": "https://merchant.com/checkout"
    },
    "submittedAmount": {
      "value": 500.00,
      "currency": "RUB"
    },
    "description": "Order #1234",
    "webhookUrl": "https://merchant.com/webhook"
  }
}
Top-Level Request Parameters
ParameterTypeRequiredDescription
clientReferenceIdStringRequiredOrder reference in your system.
useCheckoutFormBooleanRequired for Hosted CheckoutSet to true.
paymentIntentObjectRequired for Hosted CheckoutOrder details and checkout settings.
descriptionStringOptionalIntent description. For Hosted Checkout, paymentIntent.description is used as the Intent description.
merchantObjectOptionalMerchant information.
paymentIntent
ParameterTypeRequiredDescription
formDetailsObjectRequiredHosted Checkout settings.
submittedAmountObjectRequired for this flowOrder amount and currency. This page describes an SBP payment submitted in RUB.
descriptionStringRequiredOrder description displayed on the checkout form and used for the payment. Maximum length: 10,000 characters.
webhookUrlStringOptionalURL for payment status notifications. If omitted, the default webhook URL configured for your settlement account is used. If neither URL is configured, payment webhooks are not sent.
formDetails
ParameterTypeRequiredDescription
templateStringOptionalName of a configured checkout template. If omitted, the default template is used.
displayedPaymentMethodsArray of StringsOptionalUse ["SBP"] to offer only SBP. The SBP option opens automatically. If omitted, the form offers the available checkout payment methods for your settlement account.
backToStoreRedirectUrlStringOptionalDestination for the checkout form's Back to store button. The button is shown when a URL is provided and the checkout template enables it.
submittedAmount
ParameterTypeRequiredDescription
valueNumberRequired for this flowOrder amount in RUB, for example 500.00 for 500 rubles. Must be greater than zero.
currencyStringRequired for this flowUse RUB for the flow described on this page.
merchant
ParameterTypeRequiredDescription
nameStringOptionalMerchant name.
websiteStringOptionalMerchant website.

Session Lifetime

The default checkout session lifetime is 20 minutes and can be changed in the checkout template. Use paymentIntent.additionalData.expirationDateTime from the response to determine when the session expires.

The payer may retry an unsuccessful payment while the session allows another attempt and has not expired. If the session expires without a successful payment, create a new Intent to offer a new checkout session.

An SBP QR code can have a separate expiry. The checkout session expiry does not guarantee that a particular QR code remains valid until the same time.


Webhooks

🔗

Payment status notifications are sent to paymentIntent.webhookUrl, or to the default webhook URL configured for your settlement account if the request does not provide one.

Notifications relate to individual payment attempts within the Intent. Use them to confirm the payment result. Opening the checkout form or returning to the store does not confirm a successful payment.

For webhook formats and delivery details, see Webhooks Overview.


Did this page help you?