openapi: 3.2.0 info: title: Raiffeisen Ru Reusable Payment Link API version: '0.1' contact: email: ecom@raiffeisen.ru name: Support e-mail x-team-id: 932 x-short-team-name: FPS B2B x-logo: url: images/raifflogo.png backgroundColor: '#FFFFFF' altText: Raiff logo description: 'Operations tagged reusable-payment-link across 2 of this provider''s published API definitions: raiffeisen-ru-raif-pay-sbp-b2b-openapi.json, raiffeisen-ru-raif-pay-sbp-b2b-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production tags: - name: reusable-payment-link x-displayName: Многоразовые платежные ссылки description: Схема сценария работы с многоразовым Qr со стороны Получателя. Он удобен, когда транзакции носят повторяющийся характер или требуется обеспечить удобство для плательщика, позволяя использовать одну и ту же ссылку для оплаты раз за разом. paths: /api/v1/b2b/reusable-payment-links: post: tags: - reusable-payment-link operationId: createReusablePaymentLink summary: Создание многоразовой платежной ссылки security: - BearerAuth: [] parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReusablePaymentLinkRequest' examples: without_restriction: $ref: '#/components/examples/ReusablePaymentLinkRequestDtoWithoutRestriction' with_restriction: $ref: '#/components/examples/ReusablePaymentLinkRequestDtoWithRestriction' responses: '200': description: Успешное создание многоразового QR-кода content: application/json: schema: $ref: '#/components/schemas/ReusablePaymentLinkResponse' examples: without_restriction: $ref: '#/components/examples/ReusablePaymentLinkResponseDtoWithoutRestrictions' with_restriction: $ref: '#/components/examples/ReusablePaymentLinkResponseDtoWithRestrictions' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/v1/b2b/reusable-payment-links/{id}: get: tags: - reusable-payment-link operationId: getReusablePaymentLink summary: Получение информации о многоразовой платежной ссылки security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/Id' responses: '200': description: Успешное получение информации о многоразовом QR-коде content: application/json: schema: $ref: '#/components/schemas/ReusablePaymentLinkResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' delete: tags: - reusable-payment-link operationId: deleteReusablePaymentLink summary: Отмена многоразовой платежной ссылки security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/Id' responses: '204': description: No Content '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/v1/b2b/reusable-payment-link/transactions: get: tags: - reusable-payment-link operationId: getReusablePaymentLinkTransactions summary: Получение списка операций по многоразовым платежным ссылкам (не более 30 дней) security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/FromDate' - $ref: '#/components/parameters/ToDate' - $ref: '#/components/parameters/Ids' - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size-2' responses: '200': description: Успешное получение списка операций content: application/json: schema: $ref: '#/components/schemas/ReusablePaymentLinkTransactions' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production webhooks: IncomingReusablePaymentLinkPayment: post: summary: Уведомление о входящем платеже по многоразовой платежной ссылке operationId: sendIncomingPaymentReusablePaylink tags: - reusable-payment-link responses: '200': description: Вернуть статус 200, чтобы указать, что данные были успешно получены. requestBody: content: application/json: schema: $ref: '#/components/schemas/IncomingPaymentReusablePaymentLink' examples: incoming_payment_for_reusable_payment_link: $ref: '#/components/examples/IncomingPaymentForReusablePaymentLinkCallbackDto' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production components: schemas: ImageUrl: type: string description: URL с изображением зарегистрированного QR-кода в СБП example: https://pay.raif.ru/api/b2b/sbp/v1/qrs/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5/image Qr: type: object description: Информация о платёжной ссылке по заказу required: - id - name - type - payload - imageUrl properties: id: allOf: - $ref: '#/components/schemas/PaymentLinkId' name: allOf: - $ref: '#/components/schemas/PaymentLinkName' type: allOf: - $ref: '#/components/schemas/QrType' payload: allOf: - $ref: '#/components/schemas/Payload' imageUrl: allOf: - $ref: '#/components/schemas/ImageUrl' Payment-2: description: Информация об успешном платеже type: - object - 'null' required: - id - sbpTransactionId - status - amount - sender properties: id: allOf: - $ref: '#/components/schemas/PaymentId' sbpTransactionId: allOf: - $ref: '#/components/schemas/SbpTransactionId' status: allOf: - $ref: '#/components/schemas/PaymentStatus' amount: allOf: - $ref: '#/components/schemas/Amount' totalTaxAmount: allOf: - $ref: '#/components/schemas/TotalTaxAmount' senderPaymentPurpose: allOf: - $ref: '#/components/schemas/SenderPaymentPurpose' receiverPaymentPurpose: allOf: - $ref: '#/components/schemas/ReceiverPaymentPurpose' extra: allOf: - $ref: '#/components/schemas/Extra' sender: allOf: - $ref: '#/components/schemas/PaymentSender' PaymentSender: type: object description: Информация о плательщике required: - legalName - inn - account - bank properties: legalName: $ref: '#/components/schemas/LegalName' inn: $ref: '#/components/schemas/Inn' account: allOf: - $ref: '#/components/schemas/Account' description: Банковский счёт ЮЛ или ИП, с которого списаны средства bank: allOf: - $ref: '#/components/schemas/BankInfo' description: Информация о банке плательщика QrType: type: string enum: - DYNAMIC - STATIC description: Тип платёжной ссылки Restrictions: type: object description: Ограничения к заказу properties: senderInn: type: string minLength: 10 maxLength: 12 description: ИНН ЮЛ или ИП, которое может оплатить заказ example: '123456789012' ReusablePaymentLinkResponse: type: object required: - id - account - creationDate - expirationDate - isTaxable - status - redirectUrl - qr properties: id: allOf: - $ref: '#/components/schemas/Id' account: allOf: - $ref: '#/components/schemas/Account' creationDate: allOf: - $ref: '#/components/schemas/CreationDate' expirationDate: allOf: - $ref: '#/components/schemas/ExpirationDate' amount: allOf: - $ref: '#/components/schemas/Amount' isTaxable: allOf: - $ref: '#/components/schemas/IsTaxable' totalTaxAmount: allOf: - $ref: '#/components/schemas/TotalTaxAmount' status: allOf: - $ref: '#/components/schemas/ReusableStatus' senderPaymentPurpose: allOf: - $ref: '#/components/schemas/SenderPaymentPurpose' receiverPaymentPurpose: allOf: - $ref: '#/components/schemas/ReceiverPaymentPurpose' redirectUrl: allOf: - $ref: '#/components/schemas/RedirectUrl' qr: allOf: - $ref: '#/components/schemas/Qr' restrictions: allOf: - $ref: '#/components/schemas/Restrictions' extra: allOf: - $ref: '#/components/schemas/Extra' ExpirationDate: type: string format: date-time description: Срок жизни example: '2024-08-12T20:35:55+03:00' ReusableStatus: type: string description: 'Статус заказа:
• ACTIVE – активен, можно проводить оплату
• EXPIRED - срок действия истёк, нельзя провести оплату
• CANCELLED - отменен, нельзя провести оплату ' enum: - ACTIVE - EXPIRED - CANCELLED example: ACTIVE PaymentLinkName: type: string description: Наименование платёжной ссылки example: QR на оплату 14.10.2024 в 15:12 BankName: type: string description: Наименование банка example: Райффайзенбанк TotalTaxAmount: type: number format: float maximum: 1000000 description: Сумма НДС в рублях example: 2.41 ReceiverPaymentPurpose: type: string maxLength: 150 description: 'Назначение платежа, которое увидит получатель в выписке в поле «Основание операции» вместе с инн плательщика.
Например, "ИНН плательщика: 231150869432. Какое-то ваше назначение"
Если поле не заполнено, то поле «Основание операции» заполнится по шаблону, в который будет передан идентификатор заказа, наименование плательщика и инн плательщика.
Например, «Перевод по идентификатору nM43NFfqiaAh04QdSmCoI5u4S2YrWU2ikHJ. Плательщик: ООО Ромашка, ИНН: 231150869432. Осуществлен через СБП B2В».
Может содержать:
• Символы латиницы (A–Z и a–z)
• Символы кириллицы (А-Я и а-я)
• Цифры 0-9
• Спецсимволы: пробел и `!`, `"`, `#`, `$`, `%`, `''`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `^`, `_`, `{`, `|`, `}`, `~`,`№` ' example: Какое-то назначение платежа PaymentId: type: string description: Идентификатор платежа example: '123456789012345678' LegalName: type: string maxLength: 512 description: Сокращённое наименование ЮЛ или ИП Плательщика example: ООО Ромашка Extra: type: object description: Дополнительные поля additionalProperties: type: string example: additionalInfo: testing operation PaymentStatus: type: object description: Статус входящего платежа required: - value - date properties: value: type: string description: Статус платежа, возможен только "SUCCESS" enum: - SUCCESS example: SUCCESS date: type: string format: date-time description: Время проведения платежа example: '2024-06-12T19:36:55+03:00' ReusablePaymentLinkTransactions: type: object properties: content: type: array items: type: object required: - reusablePaymentLink - payment properties: reusablePaymentLink: type: object description: Данные о многоразовой платежной ссылки required: - id - qr properties: id: allOf: - $ref: '#/components/schemas/Id' qr: required: - id - name - type type: object description: Информация о QR-коде properties: id: allOf: - $ref: '#/components/schemas/PaymentLinkId' name: allOf: - $ref: '#/components/schemas/PaymentLinkName' type: allOf: - $ref: '#/components/schemas/Type' extra: allOf: - $ref: '#/components/schemas/Extra' payment: allOf: - $ref: '#/components/schemas/Payment-2' totalPages: type: integer description: Количество страниц. format: int32 example: 0 totalElements: type: integer description: Общее количество записей. format: int64 example: 34 last: type: boolean description: Наличие следующей страницы. example: true IsTaxable: type: boolean description: Информация о взимании НДС example: true SenderPaymentPurpose: type: string maxLength: 210 description: 'Назначение платежа, которое увидит плательщик при оплате. Поле обязательное.
Может содержать:
• Символы латиницы (A–Z и a–z)
• Символы кириллицы (А-Я и а-я)
• Цифры 0-9
• Спецсимволы: пробел и `!`, `"`, `#`, `$`, `%`, `''`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `^`, `_`, `{`, `|`, `}`, `~`,`№` ' example: Какое-то назначение платежа Payload: type: string maxLength: 999 description: Функциональная ссылка example: https://b2b.cbrpay.ru/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 PaymentLinkId: type: string maxLength: 32 description: Уникальный идентификатор платёжной ссылки example: AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 BankId: type: string description: Идентификатор банка example: '100000000007' RedirectUrl: type: string maxLength: 1024 description: Ссылка для автоматического возврата плательщика из приложения банка в приложение или на сайт ТСП example: https://exampletsp.io/qwertyui BankInfo: type: object description: Информация о банке required: - id - name - bic properties: id: $ref: '#/components/schemas/BankId' name: $ref: '#/components/schemas/BankName' bic: $ref: '#/components/schemas/BankBic' Account: type: string minLength: 20 maxLength: 20 description: Банковский счёт ЮЛ или ИП для зачисления средств example: '40817810601002630020' SbpTransactionId: type: string minLength: 32 maxLength: 32 description: Уникальный идентификатор операции на уровне всей системы СБП example: PMSHT0BYVSYE7LDXMCXJSGIUHJLQWZXY Id: type: string description: Идентификатор многоразовой платежной ссылки maximum: 40 example: 123e4567-e89b-12d3-a456-426655440000 ErrorResponseDto: type: object properties: code: type: string description: Код ошибки запроса. message: type: string description: Описание ошибки BankBic: type: string description: БИК банка example: '044525700' Amount: type: number format: float maximum: 1000000 description: Сумма операции в рублях example: 8573.79 ReusablePaymentLinkRequest: type: object required: - account - isTaxable properties: id: allOf: - $ref: '#/components/schemas/Id' name: allOf: - $ref: '#/components/schemas/PaymentLinkName' account: allOf: - $ref: '#/components/schemas/Account' amount: allOf: - $ref: '#/components/schemas/Amount' isTaxable: allOf: - $ref: '#/components/schemas/IsTaxable' totalTaxAmount: allOf: - $ref: '#/components/schemas/TotalTaxAmount' senderPaymentPurpose: allOf: - $ref: '#/components/schemas/SenderPaymentPurpose' description: 'Назначение платежа, которое увидит плательщик при оплате. Можно не заполнять, тогда укажет плательщик
Может содержать:
• Символы латинского алфавита (A–Z и a–z) с десятичными кодами из диапазонов [065-090] и [097-122] в кодировке UTF-8;
• Символы русского алфавита (А-Я и а-я) с десятичными кодами из диапазона [1040-1103] в кодировке UTF-8;
• Цифры 0-9 с десятичными кодами из диапазона [048-057] в кодировке UTF-8;
• Специальные символы с десятичными кодами из диапазонов [032-047], [058-064], [091-096], [123-126] в кодировке UTF-8; - Символ «№» под номером 8470 в кодировке UTF-8 ' receiverPaymentPurpose: allOf: - $ref: '#/components/schemas/ReceiverPaymentPurpose' description: 'Назначение платежа, которое увидит получатель в выписке в поле «Основание операции» вместе с инн плательщика
Например, "ИНН плательщика: 231150869432. Какое-то назначение платежа"
Если поле не заполнено, то поле «Основание операции» заполнится по шаблону, в который будет передан идентификатор многоразовой платежной ссылки, наименование плательщика и инн плательщика.
Например, «Перевод по идентификатору 123e4567-e89b-12d3-a456-426655440000. Плательщик: ООО Ромашка, ИНН: 231150869432. Осуществлен через СБП B2В».
Может содержать:
• Символы латинского алфавита (A–Z и a–z) с десятичными кодами из диапазонов [065-090] и [097-122] в кодировке UTF-8;
• Символы русского алфавита (А-Я и а-я) с десятичными кодами из диапазона [1040-1103] в кодировке UTF-8;
• Цифры 0-9 с десятичными кодами из диапазона [048-057] в кодировке UTF-8;
• Специальные символы с десятичными кодами из диапазонов [032-047], [058-064], [091-096], [123-126] в кодировке UTF-8;
• Символ «№» под номером 8470 в кодировке UTF-8 ' expirationDate: allOf: - $ref: '#/components/schemas/ExpirationDate' description: 'Срок жизни многоразовой платежной ссылки
Может содержать точную дату и время или количество минут. Передача срока в минутах удобна для торговых точек, которые не привязываются к точному времени или часовому поясу
Параметр не может быть меньше текущей даты и времени
После истечения срока действия многоразовой платежной ссылки оплату по ней провести нельзя
При передачи количества минут указываете в таком виде (например, + 60 минут): "expirationDate": "+60m" ' redirectUrl: allOf: - $ref: '#/components/schemas/RedirectUrl' restrictions: allOf: - $ref: '#/components/schemas/Restrictions' extra: allOf: - $ref: '#/components/schemas/Extra' CreationDate: type: string format: date-time description: Дата создания example: '2024-06-12T19:35:55+03:00' Inn: type: string minLength: 10 maxLength: 12 description: ИНН ЮЛ или ИП Плательщика example: '123456789012' IncomingPaymentReusablePaymentLink: type: object required: - event - data properties: event: type: string description: Тип события example: B2B_REUSABLE_PAYMENT enum: - B2B_REUSABLE_PAYMENT data: type: object required: - reusablePaymentLink - payment properties: reusablePaymentLink: type: object description: Данные о многоразовой платежной ссылки required: - id - qr properties: id: allOf: - $ref: '#/components/schemas/Id' qr: required: - id - name - type type: object description: Информация о QR-коде properties: id: allOf: - $ref: '#/components/schemas/PaymentLinkId' name: allOf: - $ref: '#/components/schemas/PaymentLinkName' type: allOf: - $ref: '#/components/schemas/Type' extra: allOf: - $ref: '#/components/schemas/Extra' payment: allOf: - $ref: '#/components/schemas/Payment-2' Type: type: string enum: - STATIC description: Тип платёжной ссылки example: STATIC examples: ReusablePaymentLinkRequestDtoWithRestriction: summary: Многоразовая платежная ссылка c ограничениями description: Запрос на создание многоразовой платежной ссылки с указанием ограничений **Присутствует блок restrictions** value: id: 123e4567-e89b-12d3-a456-426655440000 name: QR на оплату 25.09.2024 в 15:12 account: '40817810601002630000' isTaxable: false expirationDate: '2024-08-12T20:35:55+03:00' senderPaymentPurpose: Какое-то назначение платежа receiverPaymentPurpose: Какое-то назначение платежа redirectUrl: https://example.ru extra: additionalInfo: testing operation restrictions: senderInn: '1234567890' maxAmount: 150.01 ReusablePaymentLinkResponseDtoWithoutRestrictions: summary: Многоразовая платежная ссылка без ограничений description: Ответ на создание многоразовой платежной ссылки без указания ограничений **Отсутствует блок restrictions** value: id: 123e4567-e89b-12d3-a456-426655440000 account: '40817810601002630000' amount: 7.45 isTaxable: true totalTaxAmount: 1.25 creationDate: '2024-06-12T19:35:55+03:00' expirationDate: '2024-08-12T20:35:55+03:00' status: ACTIVE senderPaymentPurpose: Какое-то назначение платежа receiverPaymentPurpose: Какое-то назначение платежа redirectUrl: https://exampletsp.io/qwertyui extra: additionalInfo: testing operation qr: id: AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 name: QR на оплату 25.09.2024 в 15:12 type: STATIC payload: https://b2b.cbrpay.ru/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 imageUrl: https://pay.raif.ru/api/b2b/sbp/v1/qrs/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5/image ReusablePaymentLinkResponseDtoWithRestrictions: summary: Многоразовая платежная ссылка с ограничениями description: Ответ на создание многоразовой платежной ссылки с указанием ограничений **Присутствует блок restrictions** value: id: 123e4567-e89b-12d3-a456-426655440000 account: '40817810601002630000' isTaxable: false creationDate: '2024-06-12T19:35:55+03:00' expirationDate: '2024-08-12T20:35:55+03:00' status: ACTIVE senderPaymentPurpose: Какое-то назначение платежа receiverPaymentPurpose: Какое-то назначение платежа redirectUrl: https://exampletsp.io/qwertyui extra: additionalInfo: testing operation restrictions: senderInn: '1234567890' maxAmount: 150.01 qr: id: AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 name: QR на оплату 25.09.2024 в 15:12 type: STATIC payload: https://b2b.cbrpay.ru/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 imageUrl: https://pay.raif.ru/api/b2b/sbp/v1/qrs/AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5/image ReusablePaymentLinkRequestDtoWithoutRestriction: summary: Многоразовая платежная ссылка без ограничений description: Запрос на создание многоразовой платежной ссылки без указания ограничений **Отсутствует блок restrictions** value: id: 123e4567-e89b-12d3-a456-426655440000 name: QR на оплату 25.09.2024 в 15:12 account: '40817810601002630000' amount: 7.45 isTaxable: true totalTaxAmount: 1.25 expirationDate: '2024-08-12T20:35:55+03:00' senderPaymentPurpose: Какое-то назначение платежа receiverPaymentPurpose: Какое-то назначение платежа redirectUrl: https://example.ru extra: additionalInfo: testing operation IncomingPaymentForReusablePaymentLinkCallbackDto: value: event: B2B_REUSABLE_PAYMENT data: reusablePaymentLink: id: 123e4567-e89b-12d3-a456-426655440000 qr: id: PMSHT0BYVSYE7LDXMCXJSGIUHJLQWZXY name: Какое-то название созданного qr кода type: STATIC extra: clientId: number payment: id: PMSHT0BYVSYE7LDXMCXJSGIUHJLQWZXY sbpTransactionId: KJDSFIOCNASDLKASJDIUHANCKNA1FSCS status: value: SUCCESS date: '2024-06-12T19:36:55+03:00' amount: 8573.79 totalTaxAmount: 2.41 receiverPaymentPurpose: Какое-то назначение платежа senderPaymentPurpose: Какое-то назначение платежа extra: clientId: number sender: legalName: ООО Ромашка inn: 123456789012 bank: id: 100000000007 name: Райффайзенбанк bic: 44525700 parameters: Ids: name: ids description: Идентификаторы многоразовых платежных ссылок in: query schema: type: array items: type: string maxItems: 5 example: - 123e4567-e89b-12d3-a456-426655440000 FromDate: name: from in: query required: true schema: type: string format: date-time description: Дата начала выборки example: '2025-06-15T04:31:17.604Z' ToDate: name: to in: query required: true schema: type: string format: date-time description: Дата окончания выборки example: '2025-06-19T04:31:17.604Z' Page: name: page in: query description: Номер страницы schema: type: integer default: 1 format: int32 Size-2: name: size in: query description: Количество отображаемых операций schema: type: integer default: 20 format: int32 Id: description: Идентификатор многоразовой платежной ссылки in: path required: true name: id schema: type: string responses: Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: FORBIDDEN message: Доступ запрещен InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: SYSTEM_ERROR message: Возникла системная ошибка BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: INVALID_DATA message: Некорректные данные NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: ORDER_NOT_FOUND message: По данному идентификатору Заказ не найден securitySchemes: BearerAuth: type: http description: '[Bearer secretKey](#tag/authorization) example: eyJ0eXA*** ' scheme: bearer bearerFormat: JWT x-internal: false x-refined-from: - raiffeisen-ru-raif-pay-sbp-b2b-openapi.json - raiffeisen-ru-raif-pay-sbp-b2b-openapi.yml