Skip to content

SBP Payout

Method for creating a payout via SBP from a Sber corporate card (Sber Business Card).

The payout is created with status processing; the response includes a redirect_url for confirming the operation in Sber. After confirmation, the payout status is updated via the payout confirmation method.

URL

Method: POST

  • Production: https://api.pay.kvell.group/v1/orders/payout/sbp/sber
  • Stage: https://api.pay.stage.kvell.group/v1/orders/payout/sbp/sber

Request parameters

Name
Data type Required Description
amount integer Yes Amount in kopecks
phone string Yes Recipient's phone number. Digits only.
fio string Yes Recipient's full name
bank_id string Yes Bank name obtained from the list of banks
transaction string Yes Unique transaction number on the merchant's side
description string Yes Transaction description. Maximum 110 characters.
session_id string Yes Sber authorized session identifier
business_card_id string Yes Identifier of the Sber corporate card the payout is made from
fio_check boolean No Flag indicating that the passed full name must be checked against the one returned by NSPK
request_id string No Parameter obtained when calling the payout feasibility check method
user_crypto_type string No Sber user crypto profile: SMS or Token. Default is SMS.
payout_draft_id integer No ID of the payout draft. The draft is confirmed together with the payout.
customer string No Customer's email / phone number
extra_data json No Additional data
fiscal_data json No Receipt fiscalization under 54-FZ

Example request

{
  "amount": 10000,
  "phone": "79991234567",
  "fio": "Иванов Иван Иванович",
  "bank_id": "100100000014",
  "transaction": "f4462ba6-37c5-4455-b0b2-53b179f7a25c",
  "description": "Выплата по договору №123",
  "request_id": "123",
  "session_id": "11111111-1111-1111-1111-111111111111",
  "business_card_id": "business-card-id",
  "user_crypto_type": "SMS",
  "customer": "user@example.com"
}

Request headers

Name Data type Required Description
X-Api-Key string Yes Unique shop identifier
X-Signature string Yes Signature

Building the signature

An electronic signature must be used when building the request. The RSA/SHA256 algorithm is used. This value must be passed in the X-Signature HTTP request header. The signature generation algorithm is the same as for a card payout.

Attention

Signature validation is performed against the actual request body. Sign exactly the JSON that you send to the API (without reordering fields, additional transformations, or re-serialization between steps).

Request response

Example response

{
  "order": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "processing",
    "transaction": "f4462ba6-37c5-4455-b0b2-53b179f7a25c",
    "amount": 10000,
    "commission": 0,
    "description": "Выплата по договору №123",
    "additional_data": {
      "auth_code": null,
      "rrn": null
    },
    "error_code": null,
    "error_message": null,
    "created_at": "2026-07-29T10:00:00"
  },
  "transaction": null,
  "status": "processing",
  "redirect_url": "https://sber.example/#/sbp-transfer-creator/external-id"
}
{
  "errors": [
    {
      "code": 20098,
      "message": "session_id: Field required"
    }
  ]
}
  • The transaction must be left in processing and the payout must not be recreated with a new transaction number.
  • The procedure is described in the Handling errors and timeouts section.

Response parameters

Name Data type Description
order json Payout object
id string Payment ID in the system
status string Transaction status
transaction string Unique transaction number on the merchant's side
amount integer Amount in kopecks
commission integer Commission in kopecks
description string Transaction description
additional_data json Additional data (authorization code, RRN)
error_code string Error code (if any)
error_message string Error message (if any)
created_at string Transaction creation date
transaction string Not used in this method, comes with value null
status string Transaction status
redirect_url string Link for confirming the operation in Sber

Return redirect

The redirect_url link must be opened to confirm the operation in the SberBusiness interface. So that the user returns to the merchant's page after signing, append the backUrl parameter with the return address, URL-encoded, to the end of the received link:

{redirect_url}?backUrl=https%3A%2F%2Fmerchant.example.com%2Fpayout-result

If backUrl is not specified, the user won't be able to return to the merchant's platform after signing. More details — in the General section.

List of statuses

Name Description
new New transaction
processing Transaction is being processed
canceled Transaction rejected
completed Transaction completed

Error codes

Code Description
20001 Invalid api-key
20002 Invalid signature
20003 Payout profile is not linked to the shop
20005 Error from the PSP service
20007 Transaction was already performed
20015 Insufficient funds
20019 Shop payout limit exceeded
20038 Invalid draft number
20040 Payout draft not found
20041 The resulting description field exceeds the allowed length
20042 Payout and payout draft data do not match
20098 Request field validation error