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:

Parameter Type Description
method 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.

PTP 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 Overpay.
  3. Overpay returns a URL to the payment page with SBP QR-code.
  4. The merchant redirects the customer to the received payment page URL.
  5. The customer scans the QR-code on the SBP page, selects the bank from the displayed list of the available banks, gets redirected to the corresponding bank application and completes the payment. Alternatively the customer scans the QR-code in their bank application and completes the payment.
  6. Overpay 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:

Parameter Type Description
request object
return_url * required
string A URL to return the customer to when the transaction is completed.
method object A section of the payment method information.
type
* required
string sbp
customer object A section of information about the customer.
first_name * required
string The customer's first name.
last_name * required
string The customer's last name.
email * required
string The customer's email address.
phone* required
string The customer's phone number with the country code and + sign.
Request example
{
  "request": {
    "amount": 100000,
    "currency": "RUB",
    "description": "description",
    "return_url": "https://merchant.ltd/return",
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "phone": "+111111111111",
      "email": "example@example.com"
    },
    "method": {
      "type": "sbp"
    }
  }
}
Response

The response will contain form.action parameter with the link to the provider's website with the QR-code for making the payment.

Response example
{
  "transaction": {
    "uid": "debf8377-3546-462e-b372-5c3a18838de5",
    "type": "payment",
    "status": "pending",
    "amount": 100000,
    "currency": "RUB",
    "description": "description",
    "created_at": "2024-04-03T19:55:38Z",
    "updated_at": "2024-04-03T19:55:39Z",
    "method_type": "sbp",
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/debf8377-3546-462e-b372-5c3a18838de5/8190f452c202e3d6e8ae1bf654bad55fae5a74143f7fed92f2be7879664ccb47",
    "payment": {
      "status": "pending",
      "gateway_id": 3878,
      "ref_id": "601318084",
      "message": "Transaction was initialized."
    },
    "sbp": {
      "type": "sbp"
    },
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "example@example.com",
      "phone": "+111111111111",
      "ip": null
    },
    "manually_corrected_at": null,
    "message": "Transaction was initialized.",
    "test": false,
    "billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "example@example.com",
      "phone": "+111111111111"
    },
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    },
    "gateway": {
      "iframe": true
    },
    "form": {
      "action": "https://qr.nspk.ru/AD100001EB6TL7KF8CCAD8DD0HLMCS5V?type=02&bank=100000000143&sum=100000&cur=RUB&crc=1479",
      "method": "GET",
      "fields": []
    }
  }
}

Payout

Payout flow

  1. The merchant sends the payout request to Overpay along with the bank_code.
  2. Overpay sends the response with the pending transaction status.
  3. Overpay sends a webhook notification to the merchant with the payout status.
Request

Send a payout request with the following additional data:

Parameter Type Description
method object A section of the payment method information.
type * required
string sbp
account_number * required
string The payout recipient's phone number with the + sign.
bank_code * required
string The bank ID of the payout recipient. Contact the Tech Support Team or your account manager to get the list of the available banks and the corresponding bank codes.
customer object A section of information about the customer.
first_name string The customer's first name.
last_name string The customer's last name.
email string The customer's email address.
phone string The customer's phone number.
Request example
{
  "request": {
    "amount": 20000,
    "currency": "RUB",
    "description": "description",
    "test": true,
    "method": {
      "type": "sbp",
      "account_number": "+123456789123",
      "bank_code": "100000000202"
    }
  }
}
Response
Response example
{
  "transaction": {
    "uid": "2757482e-4490-4c8c-a223-f554a21dc370",
    "type": "payout",
    "status": "pending",
    "amount": 20000,
    "currency": "RUB",
    "description": "description",
    "created_at": "2024-04-04T13:40:40Z",
    "updated_at": "2024-04-04T13:40:40Z",
    "manually_corrected_at": null,
    "method_type": "sbp",
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/2757482e-4490-4c8c-a223-f554a21dc370/1aa3bd868381ee7766b02261b03abd12526e30f85a194938719e5ab4c28e2b28",
    "payout": {
      "status": "pending",
      "gateway_id": 3878,
      "message": "Transaction was initialized.",
      "bank_code": 100
    },
    "sbp": {
      "type": "sbp"
    },
    "customer": {
      "email": null,
      "ip": null
    },
    "message": "Transaction was initialized.",
    "test": true,
    "billing_address": {},
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    }
  }
}

CP 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 Overpay.
  3. Overpay returns a URL to the payment page with SBP QR-code.
  4. The merchant redirects the customer to the received payment page URL. The lifespan of the payment link is 30 minutes.
  5. The customer scans the QR-code on the SBP page, selects the bank from the displayed list of the available banks, gets redirected to the corresponding bank application and completes the payment. Alternatively the customer scans the QR-code in their bank application and completes the payment.
  6. Overpay 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:

Parameter Type Description
request 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.
method object A section of the payment method information.
type
* required
string sbp
Request example
{
  "request": {
    "amount": 8111,
    "currency": "RUB",
    "description": "description",
    "ip": "127.0.0.1",
    "test": false,
    "tracking_id": "your_uniq_number",
    "return_url": "https://return-url",
    "method": {
      "type": "sbp"
    }
  }
}
Response

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

Response example
{
  "transaction": {
    "uid": "8209bb9d-3f99-43bc-a502-37f3899eab42",
    "type": "payment",
    "status": "pending",
    "amount": 8111,
    "currency": "RUB",
    "description": "description",
    "created_at": "2024-06-25T14:31:25Z",
    "updated_at": "2024-06-25T14:31:25Z",
    "method_type": "sbp",
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/8209bb9d-3f99-43bc-a502-37f3899eab42/7677cb7cad037d0fdf61791104106b1034f07a39e769145d912484ebeb4bdbb9?language=en",
    "payment": {
      "status": "pending",
      "gateway_id": 4152,
      "ref_id": "2019561",
      "message": "Transaction was initialized."
    },
    "sbp": {
      "type": "sbp"
    },
    "customer": {
      "email": null,
      "ip": "127.0.0.1"
    },
    "manually_corrected_at": null,
    "message": "Transaction was initialized.",
    "tracking_id": "your_uniq_number",
    "test": false,
    "language": "en",
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    },
    "gateway": {
      "iframe": true
    },
    "form": {
      "action": "https://qr.nspk.ru/AS100001ORTF4GAF80KPJ53K186D9A3G?type=01&bank=100000000007&crc=0C8A",
      "method": "GET",
      "fields": []
    }
  }
} 

IZ Integration option

Info

This integration option supports only RUB currency.

Payment

Payment flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends the payment request to Overpay.
  3. Overpay sends parameters for building an HTML-form for the payment.
  4. The merchant builds an HTML-form based on the parameters from the response. The lifespan of the link in the form.action parameter is 15 minutes.
  5. The merchant redirects the customer to the form for completing the payment.
  6. The customer confirms the payment.
Request

Send a payment request with the following additional data:

Parameter Type Description
request object
return_url * required
string A URL to return the customer to when the transaction is completed.
method object A section of the payment method information.
type
* required
string sbp
customer object A section of information about the customer.
email
* required
string The customer's email address.
phone
* required
string The customer's phone number without +.
Request example
{
  "request": {
    "amount": 10000,
    "currency": "RUB",
    "description": "description",
    "test": false,
    "tracking_id": "your_uniq_number",
    "return_url": "https://return-url",
    "customer": {
      "phone": "1234567890",
      "email": "example@example.com"
    },
    "method": {
      "type": "sbp"
    }
  }
}
Response

Build an HTML form based on the parameters in the form object. Redirect the customer to the form to finalize the payment.

Response example
{
    "transaction": {
        "uid": "19088621-95e0-4100-b0a8-1717c69a9600",
        "type": "payment",
        "status": "pending",
        "amount": 10000,
        "currency": "RUB",
        "description": "description",
        "created_at": "2024-07-03T12:21:16Z",
        "updated_at": "2024-07-03T12:21:16Z",
        "method_type": "sbp",
        "receipt_url": "https://backoffice.overpay.io/customer/transactions/19088621-95e0-4100-b0a8-1717c69a9600/863e4e14692a6698664f758c39177d6b2c03f8f3de6e233e1020d098a7b0428f",
        "payment": {
            "status": "pending",
            "gateway_id": 4163,
            "message": "Transaction was initialized."
        },
        "sbp": {
            "type": "sbp"
        },
        "customer": {
            "email": "example@example.com",
            "phone": "1234567890",
            "ip": null
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction was initialized.",
        "tracking_id": "your_uniq_number",
        "test": false,
        "billing_address": {
            "email": "example@example.com",
            "phone": "1234567890"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },        
        "gateway": {
            "iframe": true
        },
        "form": {
            "action": "https://payment-page",
            "method": "POST",
            "fields": [
                {
                    "name": "amount",
                    "value": "100.00",
                    "type": "hidden"
                },
                {
                    "name": "amountcurr",
                    "value": "RUB",
                    "type": "hidden"
                },
                {
                    "name": "currency",
                    "value": "EXT",
                    "type": "hidden"
                },
                {
                    "name": "number",
                    "value": "a241a368c8hu9639786382d7592e34",
                    "type": "hidden"
                },
                {
                    "name": "description",
                    "value": "www.site.com",
                    "type": "hidden"
                },
                {
                    "name": "trtype",
                    "value": "1",
                    "type": "hidden"
                },
                {
                    "name": "phone",
                    "value": "0987654321",
                    "type": "hidden"
                },
                {
                    "name": "email",
                    "value": "1@example.com",
                    "type": "hidden"
                },
                {
                    "name": "account",
                    "value": "ACC041111",
                    "type": "hidden"
                },
                {
                    "name": "signature",
                    "value": "6A886FJ609RITN5960HIYK403D5170CA3EBB555",
                    "type": "hidden"
                }
            ]
        }
    }
}