openapi: 3.2.0 info: title: Raiffeisen Ru Subscription API version: '1.0' contact: email: ecom@raiffeisen.ru name: Support e-mail x-team-id: 178 x-short-team-name: PAPAS x-description-i18n: eng: "You can give your comments about current documentation in repository: https://github.com/Raiffeisen-DGTL/ecom-API/blob/master/sbp_en.yaml\n\n# Connect to SBP\n\nTo receive SBP payments, submit application on [site](https://www.rbo.raiffeisen.ru/sign-form/).\n\nRaiffeisenbank will complete the registration.\nAfter the process is completed, you will be notified by email.\n\n## SBP participants\n\n### Buyer\n* selects the services / goods in the partner software and the item “Payment via SBP” (optional)\n* scans the QR code provided by the partner and confirms the payment in the application of their bank\n* receives the result of payment and paid services / goods\n\n### Partner\n* requests the formation of a QR code for the selected goods / services (basket)\n* displays a QR code to the client for scanning and making payment\n* processes notifications of the results of SBP operations\n* requests payment data (optional)\n* ensures the delivery of goods / services to the buyer upon payment\n\n### Raiffeisenbank\n* provides an interface for requesting a QR code from a partner\n* provides money transfer to the partner's account upon settlements in SBP\n* defines the format of the notification of the fact of the SBP payment\n* provides an interface for receiving payment data\n\n## Support 54-FZ\n\nIn accordance with the Federal Law NO. 54-FZ of May 22, 2003 \"On the use of cash registers in implementation of settlements in the Russian Federation\",\nfor taxation purposes a fiscal receipt is required for making settlements for goods sold, work performed or services rendered, as well as transfer of the receipts to tax authorities.\n\nRaiffeisenbank provides generation of fiscal receipts and their transfer to tax authorities by integration via [API](https://pay.raif.ru/doc/fiscal.html).\n\n# General schemas of work\n\n## Working with a form\nTo accept payments online on the website or in the mobile application, you can use [QR code opening protocol in the form](https://pay.raif.ru/doc/ecom_en.html).\n\n\n\n## White label SBP API\n\nThe figure below shows the schema of information exchange with a partner when making a payment using a QR code.\n\n\n\n## Subscription schema\n\nYou can offer the client to link the SBP payment to the loyalty program or to an account in your service. To do this, you can generate a QR code and display it to the client or redirect it via a special link that is located in the response to the request to create a QR code for a subscription.\n\nAfter that, using the unique subscription identifier, you can apply for debiting funds from the client for your goods and services without the client's acceptance.\n\n\n\n## Payment and subscription schema\n\nThere is also a schema in which one request receives a QR code to receive payment and subscription.\n\nIn this case, the client makes a payment, after which a window is displayed with a proposal to activate the subscription.\n\nThe customer can pay but unsubscribe. Also, the client can make a payment from a bank application that does not support subscriptions.\n\n\n\n## Working with QRVariable\n\nThe diagram below depicts usage scenario for QRVariable. It is a new QR code type that is differentiated from QRStatic and QRDynamic.\n\n\n\n## Subscription with recurring charges\nSubscriptions support automatic recurring charges made by bank on regular basis. As of now, only monthly charges are supported.\nIn case of unsuccessful payment another attempt is made on the same day. If the second attempt fails, charge will be repeated the next day and so on. Failed attempts do not cause subscription cancellation.

\nAutomatic recurring charges can be made for both of subscription scenarios listed above. To enable the feature, additional fields must be passed either in [QR creation method](#operation/post-sbp-v2-qrs) or in [subscription creation method](#operation/post-sbp-v1-subscriptions).

\nPayment notifications might be received by [callbacks](#tag/Callback). In this case subscriptionId will be passed in the [body message](#operation/сallbackPay). Subscription can be deactivated via [cancellation method](#operation/delete-sbp-v1-subscriptions-subscriptionId).\n\n# Ready solutions\nYou can use our SDK for faster integration:\n* [Java](https://github.com/Raiffeisen-DGTL/sbp-sdk-java)\n[Our other solutions](https://pay.raif.ru/doc/solutions.html).\n# API description\nThe interaction is carried out using the HTTP protocol using the GET/POST/DELETE methods (the description of each request clearly indicates the required method and address).\n\nPOST requests use JSON arguments, GET/DELETE requests work with query strings.\n\nThe API always returns a response in JSON format, regardless of the type of request.\n\nThe response of any method contains a message code (code). If a logical error occurs during the processing of any request, the API will additionally return a description of the error (message).\n\n## Authorization\nRequests like:\n* receiving information on a QR code\n* receipt of payment information\n* processing a return on payment\n* receiving information on return\n\nare authorized using the API secret key (secretKey). The authorization parameter is specified in the Authorization header, the value of which is formed as \"Bearer secretKey\".\n\nYou can view your sbpMerchantId and generate keys in your [personal account](https://www.rbo.raiffeisen.ru/acquiring/mcp#/) in the \"Accept payments\" tab\n\n
\n\nTo generate test data, please contact the Bank's support team by sending an email to ecom@raiffeisen.ru\n\nThe secret key must be stored in a trusted environment, since refunds can be made using it.

\nIt is our recommendation to create a single merchant for all trading locations owned by your company. If so, there will be no need to:\n- store a dictionary linking merchants with your trading locations\n- store a large amount of secret keys and set them up at each trading location individually\n- create additional merchants if new trading locations are opened by the company\n- make refunds strictly at the same store where items were purchased\n- make complicated reports based on various merchants\n- link QR codes with corresponding merchants (in case of using QRVariable)\n# Mobile version and application\nWe recommend using our [payment form](https://pay.raif.ru/doc/ecom_en.html), for working in the mobile version of the site or mobile application.\n\nIf you plan to use your form, then you need to implement a bank selection widget, for this you need to get its scheme for each bank:\n- [bank schemes for payment QR](https://qr.nspk.ru/proxyapp/c2bmembers.json )\n- [bank schemes for subscription QR codes](https://sub.nspk.ru/proxyapp/c2bmembers.json )\n\nAnd substitute it in the url from the payload parameter, instead of https.\n\nFor the correct choice of the bank's app, we recommend using the SDK from the NSPK:\n\nIOS , Android , Web - https://sbp.nspk.ru/business_online/#widget-business\n\nOr you can use our SDK:\nAndroid - https://github.com/Raiffeisen-DGTL/sbp-sdk-android\nIOS - https://github.com/Raiffeisen-DGTL/payform-sdk-ios\n\n### Recommendations for working with deeplink in mobile applications\n\nFor correct deeplink handling in WebView, we recommend the following implementation:\n\n1. **Configure WebView:**\n ```kotlin\n webView.settings.javaScriptEnabled = true\n webView.settings.setSupportMultipleWindows = false\n ```\n\n2. **Create a custom WebViewClient:**\n ```kotlin\n webView.webViewClient = object : WebViewClient() {\n override fun shouldOverrideUrlLoading(\n view: WebView,\n request: WebResourceRequest\n ): Boolean {\n val url = request.url.toString()\n\n return if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n false\n } else {\n try {\n val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))\n if (intent.resolveActivity(view.context.packageManager) != null) {\n view.context.startActivity(intent)\n true\n } else {\n // resolveActivity may return null on API 30+ due to package visibility\n // try launching directly as fallback\n view.context.startActivity(intent)\n true\n }\n } catch (e: ActivityNotFoundException) {\n // No app available to handle this scheme\n false\n } catch (e: Exception) {\n e.printStackTrace()\n false\n }\n }\n }\n }\n ```\n\n3. **How it works:**\n - `http://` and `https://` links → load inside WebView\n - Other schemes (deeplinks) → open in installed apps via Intent\n\nThis approach ensures correct deeplink handling and keeps web pages within your app.\n\n# NFC and SBPay\nTo work with SBP via NFC, it is necessary to implement interaction via [\"QRVariable\"](#section/General-schemas-of-work/Working-with-QRVariable).\n\nYou need to generate a QR code with the QRVariable type for each cash register.\nFrom the response to the QR generation request, you need to get a link from the payload parameter, in the link to the beginning of the domain you need to add \"web.\" and the resulting link needs to be write into an NFC tag.\n\nExample:\n\nIn payload you got https://qr.nspk.ru/AS100004BAL7227F9BNP6KNE007J9B3K,\n\nthe NFC tag will need to be write https://web.qr.nspk.ru/AS100004BAL7227F9BNP6KNE007J9B3K\n\n# Testing\n\nFor a full payment testing cycle, Raiffeisenbank provides the opportunity to use a demo application for scanning QRC on behalf of the buyer at:\nhttps://pay.raif.ru/pay/rfuture/\n\nThe specified address can be opened in the browser of any device with a camera. No additional software / plugins need to be installed. Then click on the SBP icon (if necessary, allow the browser access to the camera) and bring the QR code image to it.\nIf the camera doesn't open, check the url, it has to have https.\n" x-logo: url: images/raifflogo.png backgroundColor: '#FFFFFF' altText: Raiff logo description: 'Operations tagged Subscription across 2 of this provider''s published API definitions: raiffeisen-ru-raif-pay-sbp-openapi.json, raiffeisen-ru-raif-pay-sbp-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://pay.raif.ru/api description: Production - url: https://pay-test.raif.ru/api description: Sandbox tags: - name: Subscription x-displayName: Подписки x-x-displayName-i18n: eng: Subscription description: Для включения подписок необходима дополнительная настройка. x-description-i18n: eng: "To enable the subscription, additional configuration is required. To do so, fill out a [digital application in RBO](https://www.rbo.raiffeisen.ru/sign-form/subscription).\n\nYou can view the user flow using our demo page - https://pay.raif.ru/pay/configurator/#/subscription\n\nThere are two possible scenarios for implementation:\n * subscription\n [Diagram](#section/General-schemas-of-work/Subscription-schema).\n\n * Payment and subscription\n [Diagram](#section/General-schemas-of-work/Payment-and-subscription-schema).\n\n## Widgets\n\n\nTo place the widget on your website, you need to:\n * сopy the widget code (iframe)\n * edit the HTML code of your page\n * paste the widget code in the appropriate place on the page\n * save the HTML code of the page and refresh it on the site\n\n### Widget Parameters\nParameter | Description | Value\n---------|----------|---------\nsrc* | URL of the integrated page | Described below\nwidth* | Widget width
Can be set by the client, but the maximum size should not exceed 728 pixels | from 280 to 728 pixels\nheight* | Widget height
Fixed value | 280 pixels\nstyle* | Style for correct widget frame appearance | \"border: 0; border-radius: 16px\"\nallowtransparency* | Transparent widget background | true\nscrolling* | Scrollbars. Not used | no\nframeborder* | Three-dimensional border. Not displayed | 0\n\n### URL of the integrated page Parameters\nParameter | Description | Value\n---------|----------|---------\nHOST* | HOST | * https://pay.raif.ru (production host)
* https://pay-test.raif.ru (test host)\npublicId* | Identifier used to open the payment form and is not confidential |\nsubscriptionPurpose* | Subscription purpose (displayed on the widget) |\nlogo | Client logo URL (displayed on the widget) |\nwidgetType* | Widget type | * CHARITY
* PAYMENT\nbuttonColor* | Button color | Provide in hex format without the # symbol
For example, for the color #774098, use buttonColor=774098\ntextButtonColor* | Text color inside the button | Provide in hex format without the # symbol\noffer | Client offer link
If the parameter is not provided, the widget will display only the [link to the payment terms and subscription connection](https://www.raiffeisen.ru/static/common/SME-Documents/Widget_terms.pdf) | * If the parameter is not provided, the text will be:
\"Оплачивая, вы соглашаетесь с [условиями](https://www.raiffeisen.ru/static/common/SME-Documents/Widget_terms.pdf)\"

* If the parameter is provided, the text will be:
\"Оплачивая, вы соглашаетесь с [условиями](https://www.raiffeisen.ru/static/common/SME-Documents/Widget_terms.pdf) и [офертой](https://bfkh.ru/oferta_bfkh.pdf)\"\n\nIframe example for the widget on the test environment:\n
<iframe src=\"https://pay-test.raif.ru/widgets/?publicId=000001780049001-80049001&subscriptionPurpose=%D0%91%D0%BB%D0%B0%D0%B3%D0%BE%D1%82%D0%B2%D0%BE%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%BF%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&logo=https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTqiwtWhVXbOj0gImTuuRHXuDre7gr-MEdQOpsJU9pNy2TRhYDyIuqkPIzZ_0RSyDE2G-M&usqp=CAU&widgetType=CHARITY&buttonColor=774098&textButtonColor=FFFFFF&offer=https://bfkh.ru/oferta_bfkh.pdf\" width=\"630\" height=\"280\" style=\"border: 0; border-radius: 16px\" allowtransparency=\"true\" scrolling=\"no\" frameborder=\"0\"></iframe>
\nReplace the test host in the iframe with the production host, and include your company’s information in the URL parameters of the embedded page. Then, integrate it into your website.\n" paths: /sbp/v1/subscriptions: post: summary: Создание QR для подписки x-summary-i18n: eng: Create QR for subscription operationId: createSubscription responses: '200': $ref: '#/components/responses/CreateSubscriptionResponse' description: Метод позволяет зарегистрировать QR для последующей привязки счета клиента в выбранном банке. Для мобильного интерфейса используется диплинк, который возвращается в `payload`. Создание подписки выполняется без авторизации, что позволяет использовать метод на сайте и в мобильном приложении x-description-i18n: eng: Method allows to create subscription QR code. Use qr.payload for mobile version site or app. requestBody: $ref: '#/components/requestBodies/CreateSubscriptionRequest' tags: - Subscription servers: - url: https://pay.raif.ru/api description: Production - url: https://pay-test.raif.ru/api description: Sandbox /sbp/v1/subscriptions/{subscriptionId}: parameters: - $ref: '#/components/parameters/subscriptionId' get: summary: Получение информации по подписке x-summary-i18n: eng: Get information of subscription tags: - Subscription responses: '200': $ref: '#/components/responses/CreateSubscriptionResponse' operationId: getSubscription description: Метод позволяет получить данные по ранее созданной подписке x-description-i18n: eng: This method allows you to get data for a previously created subscription security: - secretKey: [] delete: summary: Отмена подписки x-summary-i18n: eng: Cancel subscription tags: - Subscription operationId: cancelSubscription description: Метод позволяет отменить подписку. Если подписка включает регулярные автоматические списания, то они также будут отменены. x-description-i18n: eng: This method allows to cancel a subscription. In case of recurring charges, they will be cancelled as well. responses: '200': description: OK '400': $ref: '#/components/responses/GeneralErrorResponse' security: - secretKey: [] servers: - url: https://pay.raif.ru/api description: Production - url: https://pay-test.raif.ru/api description: Sandbox /sbp/v1/subscriptions/{subscriptionId}/orders: parameters: - $ref: '#/components/parameters/subscriptionId' post: summary: Запрос на совершение платежа по подписке x-summary-i18n: eng: Request for payment about subscription operationId: createSubscriptionPayment responses: '200': $ref: '#/components/responses/SubscriptionPaymentStatusResponse' '400': description: Для данной подписки не разрешено списание по запросу content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' examples: Example 1: value: code: ERROR.SUBSCRIPTION_CHARGE_NOT_ALLOWED message: Для данной подписки не разрешено списание по запросу '404': description: Подписка с указанным id не доступна для оплаты content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' examples: Example 1: value: code: ERROR.AVAILABLE_SUBSCRIPTION_NOT_FOUND message: Подписка с ID d63e03a7-a283-4ba2-a95f-7a0f1fdb6b21 недоступна для оплаты description: 'Метод позволяет создать заказ и инициировать списание со счета клиента в рамках созданной подписки. Метод предназначен для списания средств по подписке, у которой не настроено автоматическое списание `autoCharge`. При успешном списании будет направлено стандартное уведомление об оплате. Для возврата средств по подписке используется метод [[Оформление возврата по платежу]](#tag/QR/operation/createRefundOld).' x-description-i18n: eng: Method for create payment about subscription.
For refund of subscription payment use - [Refund](#operation/post-payments-v2-orders-orderId-refunds-refundId) requestBody: $ref: '#/components/requestBodies/CreateSubscriptionPaymentRequest' tags: - Subscription security: - secretKey: [] servers: - url: https://pay.raif.ru/api description: Production - url: https://pay-test.raif.ru/api description: Sandbox /sbp/v1/subscriptions/{subscriptionId}/orders/{orderId}: parameters: - $ref: '#/components/parameters/subscriptionId' - $ref: '#/components/parameters/orderId' get: summary: Проверка статуса платежа по подписке x-summary-i18n: eng: Check payment status with subscription tags: - Subscription responses: '200': $ref: '#/components/responses/SubscriptionPaymentStatusResponse' operationId: getSubscriptionPaymentStatus description: Метод позволяет получить данные по платежу, сделанному по подписке x-description-i18n: eng: The method allows you to get data on the payment made by subscription security: - secretKey: [] servers: - url: https://pay.raif.ru/api description: Production - url: https://pay-test.raif.ru/api description: Sandbox components: schemas: SubscriptionAutoCharge: type: object description: Данные автоматического списания по подписке. Объект передается, если по подписке необходимо взимать деньги на регуряной основе. Используется как альтернатива [методу списания по запросу](#operation/post-sbp-v1-subscriptions-subscriptionId-orders) x-description-i18n: eng: Automatic recurring charges. Required if subscription has to be paid on regular basis. Used as alternative to the [method of payment on request](#operation/post-sbp-v1-subscriptions-subscriptionId-orders) properties: frequency: type: string enum: - MONTHLY description: Периодичность списания по подписке
Если параметр передан, то банк будет автоматически проводить ежемесячное списание средств с клиента. x-description-i18n: eng: Frequency of recurring charges. If passed, the bank will automatically charge customer once a month. As of now, only monthly frequency is supported firstChargeDate: type: string description: 'Дата первого списания по подписке
Списание в указанную дату произойдет автоматически, далее – с заданной периодичностью начиная с этой даты. Переданное значение должно быть не меньше 7 дней от текущей даты. Например, при создании подписки 1 января firstChargeDate может быть 8 января или позже.
Если параметр не передан, то при `frequency` равен `MONTHLY` первое списание по подписке произойдет через месяц после привязки счета клиентом.' x-description-i18n: eng: 'Date of first subscription charge
The debit will be automatically debited on the specified date. Then, it will be debited at the specified frequency starting from that date. The value passed must be at least 7 days old. For example, if you create a subscription on January 1st, firstChargeDate could be January 8th or later. If the parameter is not passed, then if `frequency` is equal to `MONTHLY`, the first subscription charge will occur one month after the client links the account.' example: '2024-01-25' format: date amount: type: number description: Сумма ежемесячного списания в рублях. Для копеек доступно два знака после точки. x-description-i18n: eng: Amount of automatic recurring charges in rubles example: 103.32 exclusiveMinimum: 1 required: - frequency - amount PaymentStatus: type: string minLength: 1 enum: - SUCCESS - DECLINED - NO_INFO - IN_PROGRESS description: Статус платежа. Возможные значения:
• SUCCESS – платеж прошел успешно
• DECLINED – платеж отклонен
• NO_INFO – не найдена информация о платеже
• IN_PROGRESS – платеж в процессе обработки x-description-i18n: eng: Payment status AdditionalInfo: type: string description: "Дополнительная информация.
\nМожет быть доступна для пользователя в зависимости от банка, назначение платежа плательщика.\nПопадает в реестр в колонку \"Комментарий\".\nНе может быть пустым или содержать только пробелы. Может содержать:
\n • Символы латиницы (A–Z и a–z)
\n • Символы кириллицы (А-Я и а-я)
\n • Цифры 0-9
\n • Спецсимволы: пробел и `!`, `\"`, `#`, `$`, `%`, `'`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\\`, `]`, `^`, `_`, `{`, `|`, `}`, `~`,`№`
" x-description-i18n: eng: 'Additional information to be filled out at the request of the partner when generating the QR code. Cannot be empty or contain only spaces. May contain:
• Latin letters (A–Z and a–z)
• Cyrillic letters (А–Я and а–я)
• Digits 0-9
• Special characters: space and `!`, `"`, `#`, `$`, `%`, `''`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `^`, `_`, `{`, `|`, `}`, `~`,`№`
' maxLength: 140 pattern: ^(?=.*\S)[A-Za-zА-Яа-яЁё0-9 !"#$%''()*+,\-./:;=>?@\[\\\]\^_`{\|}~№]+$ example: Дополнительная информация CreatedSubscription: title: CreatedSubscription type: object properties: id: type: string pattern: ^[A-Za-z0-9-_.]+$ description: Идентификатор подписки minLength: 1 bank: type: string description: Идентификатор банка в котором осуществленна подписка. Будет заполнен в случае успешной подписки. createDate: type: string format: date-time description: Время формирования заявки minLength: 1 status: type: string enum: - INACTIVE - SUBSCRIBED - UNSUBSCRIBED - CANCELLED description: Статус подписки minLength: 1 qr: type: object description: Данные по QR-подписки properties: id: type: string description: Идентификатор QR-кода minLength: 1 payload: type: string description: Данные для самостоятельной генерации изображения зарегистрированного QR-кода в СБП. При открытии с мобильного устройства, запускает банковское приложение клиента или список выбора банка minLength: 1 url: type: string description: URL с изображением зарегистрированного QR-кода в СБП minLength: 1 CreatedSubscriptionPayment: title: CreatedSubscriptionPayment type: object properties: order: $ref: '#/components/schemas/OrderId' amount: type: number description: Сумма в рублях. Для копеек доступно два знака после точки. exclusiveMinimum: 0 currency: type: string minLength: 1 enum: - RUB paymentDetails: $ref: '#/components/schemas/PaymentDetails' additionalInfo: $ref: '#/components/schemas/AdditionalInfo' paymentStatus: $ref: '#/components/schemas/PaymentStatus' qrId: type: string description: Идентификатор QR-кода minLength: 1 sbpMerchantId: type: string description: Идентификатор зарегистрированного партнёра в СБП minLength: 1 splits: $ref: '#/components/schemas/Split' PaymentDetails: title: PaymentDetails type: string description: 'Назначение платежа. Отображается в выписке. Может содержать:
- Символы латиницы (A–Z и a–z) - Символы кириллицы (А-Я и а-я) - Цифры 0-9 - Спецсимволы: пробел и `!`, `"`, `#`, `$`, `%`, `''`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `^`, `_`, `{`, `|`, `}`, `~` - Спецсимвол `№`' pattern: ^(?=.*\S)[A-Za-zА-Яа-яЁё0-9 !"#$%''()*+,\-./:;=>?@\[\\\]\^_`{\|}~№]+$ OrderId: title: OrderId type: string pattern: ^[A-Za-z0-9-_.]+$ description: Идентификатор заказа. Рекомендуем использовать длинный формат без возможности перебора, например, использовать формат [UUID v4](https://ru.wikipedia.org/wiki/UUID) GeneralErrorResponse: type: object title: error properties: code: type: string description: Код ошибки x-description-i18n: eng: Error code message: type: string description: Описание ошибки x-description-i18n: eng: Error description Split: title: Split type: array description: 'Набор параметров для сплитования платежа.
Сплитование позволяет ТСП передавать параметры распределения суммы платежа или возврата между контрагентами.
Сумма всех объектов сплита должна быть равна сумме операции.
При взаиморасчетах суммы платежей, указанные в сплите, увеличивают суммы к перечислению контрагентам, а суммы возвратов — уменьшают их.
Сплитование доступно только при агрегированной схеме взаиморасчетов. Чтобы настроить агрегированную схему, обратитесь в техническую поддержку банка: ecom@raiffeisen.ru. Подробнее см. в разделе [Схема взаиморасчетов](#tag/SettlementSchemes).' x-description-i18n: eng: 'Set of parameters for payment splitting.
Payment splitting allows the merchant to pass parameters for distributing a payment or refund amount among counterparties.
The total amount of all split objects must be equal to the operation amount.
In settlements, payment amounts specified in the split increase the amounts to be transferred to counterparties, while refund amounts decrease them.
Payment splitting is available only with the aggregated settlement scheme. To set up the aggregated scheme, contact bank technical support: ecom@raiffeisen.ru. See [Settlement schemes](#tag/SettlementSchemes).' items: type: object properties: accountId: type: string description: "\t\nstring\nИдентификтор реквизитов, которые были получены от поддержки." x-description-i18n: eng: ID of the bank account details obtained from support amount: type: number description: Сумма зачисления x-description-i18n: eng: Crediting amount format: float exclusiveMinimum: 0 required: - accountId - amount Extra: title: Extra type: object additionalProperties: type: string description: Дополнительные поля для свободного заполнения по принципу key-value
В extra рекомендуется передавать параметры `apiClient` и `apiClientVersion`. Данная информация позволит Банку определять клиентское ПО, исправлять ошибки и улучшать сервис RedirectUrl: title: RedirectUrl type: string description: 'Ссылка, по котрой плательщик будет перенаправлен из приложения Банка в приложение или на сайт мерчанта в случае успешной оплаты по СБП
* Допускается использование схемы `http` или `https`, за которой следует `://` и последовательность символов без пробелов. * Допускается использование схемы, начинающейся с буквы латинского алфавита и содержащей цифры, за которыми следует `://` и непробельная последовательность символов. ' pattern: ^[A-Za-z][A-Za-z0-9]*://\S+$ parameters: subscriptionId: name: subscriptionId in: path required: true schema: type: string description: Идентификатор подписки orderId: name: orderId in: path required: true schema: type: string description: Идентификатор заказа requestBodies: CreateSubscriptionPaymentRequest: content: application/json: schema: type: object properties: account: type: number description: Счет для зачисления. Параметр используется, если необходимо разносить платежи на разные счета. Не используется в тестовой среде x-description-i18n: eng: Account for crediting. Don't use for test. additionalInfo: $ref: '#/components/schemas/AdditionalInfo' amount: type: number description: Сумма в рублях. Для копеек доступно два знака после точки. x-description-i18n: eng: Amount currency: type: string description: Валюта платежа. x-description-i18n: eng: Currency enum: - RUB order: type: string description: Уникальный идентификатор заказа в системе партнёра. Рекомендуем использовать длинный формат без возможности перебора, например, использовать формат [UUID v4](https://ru.wikipedia.org/wiki/UUID) x-description-i18n: eng: Unique identifier of the order in the partner system. We recommend using a long format, for example, using the [UUID v4 format](https://ru.wikipedia.org/wiki/UUID) maxLength: 40 pattern: ^[A-Za-z0-9-_.]+$ paymentDetails: $ref: '#/components/schemas/PaymentDetails' splits: $ref: '#/components/schemas/Split' required: - additionalInfo - amount - currency examples: Оплата по подписке: value: account: 40700000000000000000 additionalInfo: Доп. информация amount: 1110 currency: RUB order: 1-22-333 paymentDetails: Назначение платежа Оплата по подписке со сплитованием: value: account: 40700000000000000000 additionalInfo: Доп. информация amount: 1110 currency: RUB order: 1-22-333 paymentDetails: Назначение платежа splits: - accountId: ea6f870f-debd-48cc-a83f-b87e7cee8582 amount: 10.23 - accountId: 484afd1e-eefa-4a98-881d-af166860f06c amount: 1009.77 CreateSubscriptionRequest: required: true content: application/json: schema: type: object properties: id: type: string description: Идентификатор подписки на стороне партнера. Рекомендуем использовать длинный формат без возможности перебора, например, использовать формат [UUID v4](https://ru.wikipedia.org/wiki/UUID) x-description-i18n: eng: Subscription id. We recommend using a long format, for example, using the [UUID v4 format](https://ru.wikipedia.org/wiki/UUID) maxLength: 40 pattern: ^[A-Za-z0-9-_.]+$ subscriptionPurpose: type: string description: 'Описание подписки
Может содержать:
* Символы латиницы (A-Z и a-z) * Символы кириллицы (А-Я и а-я) * Цифры 0-9 * Спецсимволы: `(`, `)`, `!`, `@`, `[`, `]`, `#`, `+`, `=`, `-`, `|`, `.`, `,`' x-description-i18n: eng: Subscription info about client maxLength: 140 pattern: ^[A-Za-zА-Яа-я0-9 ()!@\[\]#+=_\|.,-]+$ sbpMerchantId: type: string description: Идентификатор зарегистрированного партнёра в СБП x-description-i18n: eng: ID of registered merchant in SBP maxLength: 12 redirectUrl: $ref: '#/components/schemas/RedirectUrl' autoCharge: $ref: '#/components/schemas/SubscriptionAutoCharge' extra: $ref: '#/components/schemas/Extra' required: - subscriptionPurpose - sbpMerchantId examples: QR для подписки со списанием по запросу: value: id: '120059' subscriptionPurpose: Подписка на услуги redirectUrl: https://bfkh.ru/ sbpMerchantId: MA0000000552 QR для подписки с автоматическим списанием: value: id: '120059' subscriptionPurpose: Подписка на услуги redirectUrl: https://bfkh.ru/ sbpMerchantId: MA0000000552 autoCharge: frequency: MONTHLY firstChargeDate: '2023-12-31' amount: 299.99 extra: customParameter: additional subscription data responses: SubscriptionPaymentStatusResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/CreatedSubscriptionPayment' examples: '200': value: additionalInfo: Доп. информация paymentDetails: Назначение платежа amount: 1110 currency: RUB order: 282a60f8-dd75-4286-bde0-af321dd081b3 paymentStatus: IN_PROGRESS qrId: AD100051KNSNR64I98CRUJUASC9M72QT sbpMerchantId: MA0000000552 splits: - accountId: ea6f870f-debd-48cc-a83f-b87e7cee8582 amount: 10.23 - accountId: 484afd1e-eefa-4a98-881d-af166860f06c amount: 1009.77 CreateSubscriptionResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/CreatedSubscription' examples: 200 (INACTIVE): value: id: '120059' createDate: '2020-01-31T09:14:38.107227+03:00' status: INACTIVE qr: id: AD100004BAL7227F9BNP6KNE007J9B3K payload: https://sub.nspk.ru/AS3D33FC7B034DEEA8A365142E1DE737 url: https://pay-test.raif.ru/api/sbp/v1/qr/AS3D33FC7B034DEEA8A365142E1DE737/image 200 (SUBSCRIBED): value: id: '120059' bank: someBank createDate: '2020-01-31T09:14:38.107227+03:00' status: SUBSCRIBED qr: id: AD100004BAL7227F9BNP6KNE007J9B3K payload: https://sub.nspk.ru/AS3D33FC7B034DEEA8A365142E1DE737 url: https://pay-test.raif.ru/api/sbp/v1/qr/AS3D33FC7B034DEEA8A365142E1DE737/image GeneralErrorResponse: description: Bad Request content: application/json: schema: properties: code: type: string description: Код ошибки value: type: string description: Поясняющее сообщение об ошибке examples: Невалидный номер заказа: value: code: ERROR.INVALID_REQUEST message: Недопустимый идентификатор заказа Заказ уже был оплачен: value: code: ERROR.ORDER_NUMBER_ALREADY_REGISTERED message: QR-код с номером заказа 1-22-333 партнера MA0000000552 и успешными платежами уже зарегистрирован Невалидная дата истечения QR: value: code: ERROR.QR_EXPIRATION_DATE_NOT_VALID message: Неверная дата истечения QR-кода securitySchemes: secretKey: type: http scheme: bearer description: 'Указывается в заголовке `Authorization` в формате `Bearer `. Подробная информация содержится в разделе [Авторизация](#section/Avtorizaciya)' x-refined-from: - raiffeisen-ru-raif-pay-sbp-openapi.json - raiffeisen-ru-raif-pay-sbp-openapi.yml