openapi: 3.2.0 info: title: Raiffeisen Ru Qr Sender 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 qr-sender across 2 of this provider''s published API definitions: raiffeisen-ru-raif-pay-sbp-b2b-transfers-openapi.json, raiffeisen-ru-raif-pay-sbp-b2b-transfers-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: qr-sender x-displayName: Методы V1. Платежи по QR paths: /api/transfers/v1/qrs/{id}: get: tags: - qr-sender summary: Получение данных платёжной ссылки operationId: getQr security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/Id-2' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetQrResponse' '400': $ref: '#/components/responses/Error400ResponseDto' '403': $ref: '#/components/responses/Error403ResponseDto' '404': $ref: '#/components/responses/Error404ResponseDto' '500': $ref: '#/components/responses/InternalServerErrorDto' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/transfers/v1/transfers: post: tags: - qr-sender summary: Создание одиночного платежа operationId: createPayment description: 'Метод позволяет создать платёж. Если платёж содержит криптографическую подпись (через заголовки ContentDigest и Signature), он будет выполнен немедленно. В случае отсутствия подписи платёж направляется в раздел **РБО** -> **Договор в работе** и требует последующего подписания соответствующего документа в этом разделе для его исполнения.' security: - BearerAuth: [] parameters: - name: Content-Digest in: header required: false schema: $ref: '#/components/schemas/ContentDigest' - name: Signature in: header required: false schema: $ref: '#/components/schemas/Signature' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePaymentRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' '400': $ref: '#/components/responses/Error400ResponseDto' '403': $ref: '#/components/responses/Error403ResponseDto' '404': $ref: '#/components/responses/Error404ResponseDto' '500': $ref: '#/components/responses/InternalServerErrorDto' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/transfers/v1/transfers/{id}: get: tags: - qr-sender summary: Получение информации об одиночном платеже operationId: getPaymentOld security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/Id' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' '400': $ref: '#/components/responses/Error400ResponseDto' '403': $ref: '#/components/responses/Error403ResponseDto' '404': $ref: '#/components/responses/Error404ResponseDto' '500': $ref: '#/components/responses/InternalServerErrorDto' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/transfers/v1/bundles: x-exclude-for-generate-front: true post: tags: - qr-sender summary: Создание пакета платежей operationId: createPaymentBundles security: - BearerAuth: [] parameters: - name: Content-Digest in: header required: true schema: $ref: '#/components/schemas/ContentDigest' - name: Signature in: header required: true schema: $ref: '#/components/schemas/Signature' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePaymentBundleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentBundleInfoResponse' '400': $ref: '#/components/responses/Error400ResponseDto' '403': $ref: '#/components/responses/Error403ResponseDto' '404': $ref: '#/components/responses/Error404ResponseDto' '500': $ref: '#/components/responses/InternalServerErrorDto' servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production /api/transfers/v1/bundles/{id}: get: tags: - qr-sender summary: Получение информации о пакете платежей operationId: getPaymentBundleById security: - BearerAuth: [] parameters: - $ref: '#/components/parameters/BundleId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentBundleInfoResponse' '400': $ref: '#/components/responses/Error400ResponseDto' '403': $ref: '#/components/responses/Error403ResponseDto' '404': $ref: '#/components/responses/Error404ResponseDto' '500': $ref: '#/components/responses/InternalServerErrorDto' x-exclude-for-generate-front: true servers: - url: https://pay-test.raif.ru description: Sandbox - url: https://pay.raif.ru description: Production components: schemas: CreateDate: type: string format: date-time description: Дата и время создания платежа SenderDto: type: object description: Данные отправителя properties: cnum: $ref: '#/components/schemas/Cnum' legalName: $ref: '#/components/schemas/LegalName' inn: $ref: '#/components/schemas/Inn' PaymentBundleInfoResponse: required: - id - account - transfers - status type: object properties: id: $ref: '#/components/schemas/BundleId' account: $ref: '#/components/schemas/Account' status: $ref: '#/components/schemas/PaymentBundleStatus' transfers: type: array description: Массив платежей items: $ref: '#/components/schemas/PaymentResponseWithoutAccount' x-exclude-for-generate-front: true MccTitle: type: string description: Описание MCC-кода получателя example: Лимузины и такси ContentDigest: type: string description: Дайджест, подписываемый клиентом, является строкой в формате base64, в которой хранится результат хеш-функции sha256, представленный массивом байт. Подробности создания можно найти в инструкции. example: yxlZv97... x-exclude-for-generate-front: true Amount-2: type: number format: float maximum: 1000000 description: Сумма операции в рублях example: 8573.79 StatementPaymentPurpose: type: string maxLength: 150 description: 'Назначение платежа, которое увидит отправитель в выписке в поле «Основание операции».
Может содержать:
• Символы латиницы (A–Z и a–z)
• Символы кириллицы (А-Я и а-я)
• Цифры 0-9
• Спецсимволы: пробел и `!`, `"`, `#`, `$`, `%`, `''`, `(`, `)`, `*`, `+`, `,`, `-`, `.`, `/`, `:`, `;`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `^`, `_`, `{`, `|`, `}`, `~`,`№` ' example: Какое-то назначение платежа QrType: type: string description: Тип платёжной ссылки enum: - DYNAMIC - STATIC Signature: type: string description: Подпись в формате base64, созданная при использовании RBO-сертификата. Подробности создания можно найти в инструкции. example: MIAGCSqGSIb3D... x-exclude-for-generate-front: true BundleId: type: string minLength: 1 maxLength: 40 pattern: ^[A-z0-9-_.]+$ description: Уникальный идентификатор пакета example: ee64d393836241dcb557 StatementPaymentPurpose-2: type: string maxLength: 150 description: Назначение платежа в выписке отправителя example: Какое-то назначение платежа BrandName: type: string maxLength: 35 description: Торговое наименование ТСП example: ООО Торг на Б.Татарской PaymentResponseWithoutAccount: required: - id - qrId - createDate - status - receiver type: object description: Массив платежей properties: id: $ref: '#/components/schemas/Id' qrId: $ref: '#/components/schemas/QrId' createDate: $ref: '#/components/schemas/CreateDate' status: $ref: '#/components/schemas/PaymentStatus' paymentPurpose: $ref: '#/components/schemas/PaymentPurpose' statementPaymentPurpose: $ref: '#/components/schemas/StatementPaymentPurpose' isTaxable: $ref: '#/components/schemas/IsTaxable' totalTaxAmount: $ref: '#/components/schemas/TotalTaxAmount' amount: $ref: '#/components/schemas/Amount' extra: $ref: '#/components/schemas/Extra' receiver: $ref: '#/components/schemas/ReceiverDto' BankName: type: string description: Наименование банка получателя example: Райффайзенбанк PaymentBundleStatus: type: object description: Статус пакета required: - value - updateDate properties: value: type: string description: Статус enum: - SUCCESS - FAILED - IN_PROGRESS example: SUCCESS updateDate: type: string format: date-time description: Дата и время обновления статуса example: '2024-06-12T19:36:55+03:00' x-exclude-for-generate-front: true PaymentResponse: type: object description: Ответ по платежу required: - id - qrId - account - createDate - status - receiver - sender properties: id: $ref: '#/components/schemas/Id' qrId: $ref: '#/components/schemas/QrId' account: $ref: '#/components/schemas/Account' createdDate: $ref: '#/components/schemas/CreateDate' status: $ref: '#/components/schemas/PaymentStatus' paymentPurpose: $ref: '#/components/schemas/PaymentPurpose' statementPaymentPurpose: $ref: '#/components/schemas/StatementPaymentPurpose' isTaxable: $ref: '#/components/schemas/IsTaxable' totalTaxAmount: $ref: '#/components/schemas/TotalTaxAmount' amount: $ref: '#/components/schemas/Amount' extra: $ref: '#/components/schemas/Extra' receiver: $ref: '#/components/schemas/ReceiverDto' sender: $ref: '#/components/schemas/SenderDto' documentId: $ref: '#/components/schemas/DocumentId' sbpTransactionId: $ref: '#/components/schemas/SbpTransactionId' DocumentId: type: string minLength: 1 maxLength: 30 description: Идентификатор документа на подпись example: '141519241792919' TotalTaxAmount: type: number format: float maximum: 1000000 description: Сумма НДС в рублях example: 2.41 MccCodeDto: type: object description: Данные mcc-кода получателя properties: code: $ref: '#/components/schemas/MccCode' title: $ref: '#/components/schemas/MccTitle' BrandName-2: type: string maxLength: 35 description: Торговое наименование ТСП получателя example: ООО Торг на Б.Татарской LegalName-2: type: string maxLength: 512 description: Сокращённое наименование ЮЛ или ИП получателя example: ООО Торг Cnum: type: string maxLength: 6 description: CNUM клиента example: 123456 ReceiverDto: type: object description: Данные получателя properties: legalName: $ref: '#/components/schemas/LegalName' inn: $ref: '#/components/schemas/Inn' brandName: $ref: '#/components/schemas/BrandName' address: $ref: '#/components/schemas/Address' mcc: $ref: '#/components/schemas/MccCodeDto' bank: $ref: '#/components/schemas/BankDto' LegalName: type: string maxLength: 512 description: Сокращённое наименование ЮЛ или ИП example: ООО Торг Extra: type: object description: Дополнительные поля в json-формате example: additionalInfo: Тестовая операция CreatePaymentRequestWithQr: required: - id - qrId type: object description: Массив платежей properties: id: $ref: '#/components/schemas/Id' qrId: $ref: '#/components/schemas/QrId' isTaxable: $ref: '#/components/schemas/IsTaxable' totalTaxAmount: $ref: '#/components/schemas/TotalTaxAmount' amount: $ref: '#/components/schemas/Amount' paymentPurpose: $ref: '#/components/schemas/PaymentPurpose' statementPaymentPurpose: $ref: '#/components/schemas/StatementPaymentPurpose' extra: $ref: '#/components/schemas/Extra' x-exclude-for-generate-front: true Address-2: type: string maxLength: 140 description: Фактический адрес ТСП получателя example: г. Москва, ул. Б.Татарская, д.133, стр.1 CreatePaymentRequest: required: - id - account - qrId type: object description: Запрос на создание платежа properties: id: $ref: '#/components/schemas/Id' account: $ref: '#/components/schemas/Account' qrId: $ref: '#/components/schemas/QrId' isTaxable: $ref: '#/components/schemas/IsTaxable' totalTaxAmount: $ref: '#/components/schemas/TotalTaxAmount' description: Сумма НДС в рублях. Если сумма НДС указана в реквизитах платёжной ссылки, то используется значение из этих реквизитов. В противном случае заполняется плательщиком самостоятельно. Сумма НДС не должна превышать сумму операции (amount) amount: $ref: '#/components/schemas/Amount' description: Сумма операции в рублях. Если сумма операции указана в реквизитах платёжной ссылки, то используется значение из этих реквизитов. В противном случае заполняется плательщиком самостоятельно. Максимальное значение - 1000000 рублей paymentPurpose: $ref: '#/components/schemas/PaymentPurpose' 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 statementPaymentPurpose: $ref: '#/components/schemas/StatementPaymentPurpose' 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 extra: $ref: '#/components/schemas/Extra' MccCode: type: string minLength: 4 maxLength: 4 description: MCC-код получателя example: '4121' PaymentStatus: type: object description: Статус платежа allOf: [] required: - updateDate - value properties: value: $ref: '#/components/schemas/SignedPaymentStatusesEnum' x-exclude-for-generate-front: true updateDate: type: string format: date-time description: Дата и время обновления статуса example: '2024-06-12T19:36:55+03:00' failReason: type: string description: Причина отклонения. Указывается в случае отклонения платежа. IsTaxable: type: boolean description: Информация о взимании НДС. Допустимые значения:
• true – облагается НДС
• false – не облагается НДС
Если платеж облагается НДС (isTaxable = "true") обязательно должна быть заполнена сумма НДС в поле totalTaxAmount example: true QrStatus: type: object description: Статус платежной ссылки required: - value - updateDate properties: value: type: string description: Статус enum: - CREATED_BY_NON_RESIDENT - ACTIVE - EXPIRED - PAID example: ACTIVE updateDate: type: string format: date-time description: Дата и время обновления статуса example: '2024-06-12T19:36:55+03:00' Address: type: string maxLength: 140 description: Фактический адрес ТСП example: г. Москва, ул. Б.Татарская, д.133, стр.1 GetQrResponse: type: object description: Ответ по платежной ссылке required: - id - qrType - legalName - inn - brandName - address - bank - mcc - status properties: id: $ref: '#/components/schemas/Id-2' qrType: $ref: '#/components/schemas/QrType' legalName: $ref: '#/components/schemas/LegalName-2' inn: $ref: '#/components/schemas/Inn-2' brandName: $ref: '#/components/schemas/BrandName-2' address: $ref: '#/components/schemas/Address-2' bank: $ref: '#/components/schemas/BankDto' mcc: $ref: '#/components/schemas/MccCodeDto' status: $ref: '#/components/schemas/QrStatus' isTaxable: $ref: '#/components/schemas/IsTaxable' totalTaxAmount: $ref: '#/components/schemas/TotalTaxAmount' amount: $ref: '#/components/schemas/Amount-2' paymentPurpose: $ref: '#/components/schemas/PaymentPurpose' statementPaymentPurpose: $ref: '#/components/schemas/StatementPaymentPurpose-2' redirectUrl: $ref: '#/components/schemas/RedirectUrl' Id-2: type: string maxLength: 32 description: Уникальный идентификатор платёжной ссылки example: AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 SignedPaymentStatusesEnum: type: string description: Статус enum: - SUCCESS - FAILED - IN_PROGRESS example: SUCCESS Inn: type: string minLength: 10 maxLength: 12 description: ИНН ЮЛ или ИП example: '4285733785' BankId: type: string description: Идентификатор банка получателя example: '100000000007' Id: type: string pattern: ^[A-z0-9-_.]+$ description: Уникальный идентификатор операции в вашей системе, используется как номер документа в выписке example: 1a5cbc843b2742be9093 minLength: 1 maxLength: 40 Account: type: string minLength: 20 maxLength: 20 pattern: ^[0-9]+$ description: Банковский счёт ЮЛ или ИП для списания средств example: '40817810601002630020' ErrorResponseDto: type: object required: - code - message - traceId properties: code: type: string description: Код ошибки запроса. example: INTERNAL_ERROR message: type: string description: Описание ошибки example: An internal error occurred. traceId: type: string example: 84b19a21e19410b62c30b4cd40c228a1 description: Уникальный идентификатор запроса SbpTransactionId: type: string minLength: 10 maxLength: 40 description: Идентификатор транзакции NSPK, внесен в требование к экранным формам example: '40817810601002630020' QrId: type: string maxLength: 32 description: Уникальный идентификатор платёжной ссылки example: AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5 PaymentPurpose: type: string maxLength: 210 description: Назначение платежа для получателя example: Какое-то назначение платежа BankBic: type: string description: БИК банка получателя example: '044525700' Amount: type: number format: float description: Сумма платежа example: 8573.79 Inn-2: type: string minLength: 10 maxLength: 12 description: ИНН ЮЛ или ИП получателя example: '4285733785' BankDto: type: object description: Данные банка получателя required: - id properties: id: $ref: '#/components/schemas/BankId' name: $ref: '#/components/schemas/BankName' bic: $ref: '#/components/schemas/BankBic' RedirectUrl: type: string maxLength: 1024 description: Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП example: https://exampletsp.io/qwertyui CreatePaymentBundleRequest: required: - id - account - transfers type: object description: Запрос на создание пакета платежей properties: id: $ref: '#/components/schemas/BundleId' account: $ref: '#/components/schemas/Account' transfers: type: array description: Массив платежей items: $ref: '#/components/schemas/CreatePaymentRequestWithQr' x-exclude-for-generate-front: true responses: InternalServerErrorDto: description: Внутренняя ошибка сервера content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: INTERNAL_ERROR message: An internal error occurred example: 84b19a21e19410b62c30b4cd40c228a1 Error400ResponseDto: description: Неверный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: INVALID_DATA message: The request contains invalid fields or values. traceId: 84b19a21e19410b62c30b4cd40c228a Error403ResponseDto: description: Операция запрещена content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: OPERATION_FORBIDDEN message: The operation is not allowed. traceId: 84b19a21e19410b62c30b4cd40c228a Error404ResponseDto: description: Ресурс не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResponseDto' examples: default: value: code: QR_NOT_FOUND message: The specified QR code was not found. example: 84b19a21e19410b62c30b4cd40c228a1 parameters: BundleId: name: id in: path schema: type: string minLength: 1 maxLength: 40 pattern: ^[A-z0-9-_.]$ description: Уникальный идентификатор пакета example: ee64d393836241dcb557 required: true Id-2: name: id in: path required: true description: Уникальный идентификатор платёжной ссылки schema: type: string maxLength: 32 Id: name: id in: path required: true description: Уникальный идентификатор операции schema: type: string 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-transfers-openapi.json - raiffeisen-ru-raif-pay-sbp-b2b-transfers-openapi.yml