{
  "swagger": "2.0",
  "openapi": "3.0.1",
  "info": {
    "title": "WEBPAY JsonPaymentApi",
    "description": "Разработка платежного модуля осуществляется на стороне сервера подключаемого клиента и предполагает создание либо внесение изменений в исходный код скриптов дорабатываемого Web-приложения.\n\n**ВАЖНО!**\n\n**Интеграция осуществляется путем создания Host-to-Host запросов и не предназначена для работы с запросами в iframe.**",
    "contact": {
      "name": "WEBPAY",
      "url": "https://webpay.by",
      "email": "support@webpay.by"
    },
    "x-logo": {
      "url": "/json-api-doc-assets/img/webpay_blue.svg",
      "altText": "WEBPAY logo"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://securesandbox.webpay.by",
      "description": "Sandbox"
    },
    {
      "url": "https://payment.webpay.by",
      "description": "Production"
    }
  ],
  "paths": {
    "/api/v1/payment_standard": {
      "post": {
        "tags": ["standardPayment"],
        "summary": "Создание заказа",
        "description": "Запрос для получения ссылки на стандартную платежную форму",
        "operationId": "paymentReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_simplified": {
      "post": {
        "tags": ["simplifiedPayment"],
        "summary": "Создание заказа",
        "description": "Запрос для получения ссылки на платежную форму для работы с упрощенными платежами",
        "operationId": "simplifiedReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimplifiedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_recurringInitial": {
      "post": {
        "tags": ["recurrentPayment"],
        "summary": "Инициирующий платеж",
        "description": "Запрос для осуществления инициирующего платежа",
        "operationId": "recurringInitialReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InitialRecurringRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_recurring": {
      "post": {
        "tags": ["recurrentPayment"],
        "summary": "Рекуррентный (CoF) платеж",
        "description": "Запрос для осуществления рекуррентного (CoF) платежа",
        "operationId": "recurringReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecurringRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    { "$ref": "#/components/schemas/RecurringSuccessResponse" },
                    { "$ref": "#/components/schemas/RecurringErrorResponse" }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_recurringUnbind": {
      "post": {
        "tags": ["recurrentPayment"],
        "summary": "Отвязка карты от рекуррентных (CoF) платежей",
        "description": "Запрос для осуществления отвязки карты от рекуррентных (CoF) платежей",
        "operationId": "unbindingRecurringReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UnbindingRecurringRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/UnbindingRecurringSuccessResponse"
                    },
                    {
                      "$ref": "#/components/schemas/UnbindingRecurringErrorResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_instalment": {
      "post": {
        "tags": ["installmentCardPayment"],
        "summary": "Создание платежа для оплаты по картам рассрочки \"Приорбанк\" ОАО и/или ЗАО \"МТБанк\"",
        "description": "Запрос для получения ссылки на платежную форму для работы с картами рассрочки",
        "operationId": "installmentReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstallmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_promoCodes": {
      "post": {
        "tags": ["promoCodesPayment"],
        "summary": "Использование промокода для скидочной программы VISA и MASTERCARD",
        "description": "Запрос для получения ссылки на платежную форму для работы с промокодами",
        "operationId": "promoCodesReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoCodesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_Erip": {
      "post": {
        "tags": ["eripPayment"],
        "summary": "Выполнение платежей через систему АИС \"Расчет\" (ЕРИП)",
        "description": "Запрос для получения ссылки на платежную форму для работы с ЕРИП",
        "operationId": "eripReq",
        "requestBody": {
          "description": "Запрос для получения redirectUrl на платежную форму",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EripRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_payoutP2P_MTB": {
      "post": {
        "tags": ["p2p_mtb"],
        "summary": "Создание запроса на выплату",
        "operationId": "payoutP2P_MTB",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/p2pMtbRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "status":"success",
                    "response": {
                      "transactionId": "462-628ce8f409a5a",
                      "appId": "802628ce88872d35",
                      "transferResult": {
                        "fullResult": {
                          "paymentAmount": 200,
                          "commissionAmount": 0,
                          "currency": "933",
                          "dateTimeLocal": "2024-11-26T15:56:43+03:00"
                        },
                        "sender": {
                          "number": "123456******1234",
                          "rrn": "123456789012",
                          "approvalCode": "123456"
                        },
                        "recipient": {
                          "number": "654321******4321",
                          "rrn": "210987654321",
                          "approvalCode": "654321"
                        }
                      },
                      "discriminator": "ConfirmTransferRs"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Payout error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/payment_payoutP2P_Paritet": {
      "post": {
        "tags": ["p2p_paritetbank"],
        "summary": "Создание запроса на выплату",
        "operationId": "payoutP2P_paritetbank",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/p2pParitetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payout error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                },
                "example": {
                  "error": {
                    "message": "Field wsb_return_url: This value should not be null., Field wsb_return_url: This value should not be blank.",
                    "code": 400
                  }
                }
              }
            }
          }
        }
      }
    },
    "/output/mtb": {
      "post": {
        "tags": ["p2p_mtb"],
        "summary": "Получение статуса транзакции",
        "operationId": "getTransactionStatusP2P_MTB",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["GetTransactionStatus", "wsb_seed", "wsb_storeid", "appId", "wsb_signature", "wsb_order_num"],
                "properties": {
                  "GetTransactionStatus": {
                    "type": "boolean",
                    "enum": [true],
                    "description": "Название метода. Поле всегда содержит значение **true**.",
                    "example": true
                  },
                  "wsb_seed": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 64,
                    "description": "Случайная последовательность символов, участвующих в формировании электронной подписи заказа.",
                    "example": "1242649174"
                  },
                  "wsb_storeid": {
                    "type": "number",
                    "format": "",
                    "minimum": 1,
                    "example": "11111111",
                    "description": "Идентификатор  магазина в системе WEBPAY. Данный идентификатор создается при регистрации в системе WEBPAY и высылается в письме."
                  },
                  "appId": {
                    "type": "string",
                    "example": "802628ce88872d35",
                    "description": "Уникальный идентификатор платежа на стороне WEBPAY. Значение данного параметра приходит в ответе на запрос вывода средств."
                  },
                  "wsb_signature": {
                    "type": "string",
                    "example": "c088852eb2cc7adba18102f8aeceab2dd8cc6b64",
                    "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1**. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ appId\n\n+ secret_key"
                  },
                  "wsb_order_num": {
                    "type": "string",
                    "example": "eriojio348opdfop32",
                    "description": "Уникальный идентификатор заказа, присваиваемый магазином."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Возвращает статус 200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "transaction": "462-628ce8f409a5a",
                    "transaction_type": "confirmTransfer",
                    "status": "ok",
                    "response": {
                      "appId": "802628ce88872d35",
                      "discriminator": "ConfirmTransferRs",
                      "transactionId": "438j7ft23-ko3k-df43-dl34-det5fe35452w",
                      "transferResult": {
                        "fullResult": {
                          "sender": {
                            "number": "417753******7488",
                            "rrn": "202044006131",
                            "approvalCode": "2082894"
                          },
                          "currency": "933",
                          "recipient": {
                            "number": "417753******7497",
                            "rrn": "207467111048",
                            "approvalCode": "20286"
                          },
                          "dateTimeLocal": "2022-05-24T14:17:24.000",
                          "paymentAmount": 12,
                          "commissionAmount": 0
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "transactionId": "27dfcab4-e3ba-4b4a-b43f-1d63a90608a2",
                    "appId": "881398788",
                    "error": {
                      "code": "API_020",
                      "message": "Операция завершена отказом."
                    },
                    "discriminator": "CheckStatusRs"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/return?wsb_order_num={wsb_order_num}&wsb_tid={wsb_tid}": {
      "get": {
        "tags": ["paymentNotification"],
        "summary": "Возврат плательщика на сайт мерчанта (wsb_return_url)",
        "description": "Ответ системы WEBPAY после возвращения покупателя в случае успешной оплаты.",
        "operationId": "returnUrl",
        "parameters": [
          {
            "name": "wsb_order_num",
            "in": "path",
            "example": "ORDER-12345678",
            "description": "Уникальный идентификатор заказа, который был присвоен магазином для совершения оплаты плательщиком.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wsb_tid",
            "in": "path",
            "example": "834836387",
            "description": "Уникальный номер транзакции в системе WEBPAY, присваиваемый каждой успешной операции.",
            "schema": {
              "type": "integer",
              "uniqueItems": true
            }
          }
        ],
        "servers": [
          {
            "url": "https://merchant_site",
            "description": "Merchant site"
          }
        ],
        "responses": {
          "200": {
            "description": "Gateway success response"
          }
        }
      }
    },
    "/cancel?wsb_order_num={wsb_order_num}": {
      "get": {
        "tags": ["paymentNotification"],
        "summary": "Возврат плательщика на сайт мерчанта (wsb_cancel_return_url)",
        "description": "Ответ системы WEBPAY после возвращения покупателя в случае неуспешной оплаты.",
        "operationId": "cancelReturnUrl",
        "parameters": [
          {
            "name": "wsb_order_num",
            "in": "path",
            "example": "ORDER-12345678",
            "description": "Уникальный идентификатор заказа, который был присвоен магазином для совершения оплаты плательщиком.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "servers": [
          {
            "url": "https://merchant_site",
            "description": "Merchant site"
          }
        ],
        "responses": {
          "200": {
            "description": "Gateway success response"
          }
        }
      }
    },
    "/notify": {
      "post": {
        "tags": ["paymentNotification"],
        "summary": "Стандартный POST-запрос на wsb_notify_url",
        "description": "После совершения удачного платежа, система WEBPAY отсылает специально сформированный POST-запрос по адресу, указанному в поле `wsb_notify_url` Интернет-ресурса. В этом запросе содержится информация по платежу. Полученную информацию Интернет-ресурс должен проверить в соответствии с требованиями выполнения заказа и ответить на запрос кодом **200 (\"HTTP/1.0 200 OK\")**.",
        "operationId": "notifyUrlPost",
        "requestBody": {
          "description": "Запрос по адресу, указанному в поле `wsb_notify_url` Интернет-ресурса.",
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPost"
              }
            }
          },
          "required": true
        },
        "x-codeSamples": [
          {
            "lang": "application/x-www-form-urlencoded",
            "source": "{batch_timestamp=1562591640&currency_id=USD&amount=300&payment_method=cc&order_id=127386&site_order_id=16&transaction_id=858578101&payment_type=4&rrn=786755995452&wsb_signature=001a1e46c8ba6c9934dc60975ecc9f75&action=0&rc=W0001%2800%29&approval=786755&country_alpha_three_code=USA&issuer_promo_product=1}"
          }
        ],
        "servers": [
          {
            "url": "https://",
            "description": "Merchant wsb_notify_url"
          }
        ],
        "responses": {
          "200": {
            "description": "Gateway success response"
          }
        }
      }
    },
    "/api/login": {
      "post": {
        "tags": ["authentication"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Получение токена авторизации для отправки запросов по управлению операциями",
        "operationId": "billingAuthentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["merchantId", "username", "password"],
                "properties": {
                  "merchantId": {
                    "type": "integer",
                    "example": 11111111,
                    "description": "Идентификатор магазина в системе WEBPAY. Данный идентификатор создается при регистрации в системе WEBPAY и высылается в письме."
                  },
                  "username": {
                    "type": "string",
                    "example": "test_billing",
                    "description": "Логин учетной записи для входа в личный кабинет системы WEBPAY."
                  },
                  "password": {
                    "type": "string",
                    "example": "12345678",
                    "description": "Пароль от учетной записи для входа в личный кабинет системы WEBPAY."
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Возвращает токен авторизации",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 201,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "auth_token": {
                          "type": "string",
                          "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2NzM5NDY4NzIsImV4cCI6MTY3Mzk0ODA3MiwiYWNjb3VudElkIjo1Mzg4fQ.E-YNhzZsz0vPR0g-U8v2AaPhnUGIk4LBxlVskwBGMtAAP-z_C-rI7gbevJ9lOxlgK6-0fmga5SQ7nkK6mE8VI7FAv9T2I-MSN3l-U2MNmHc5bno0eG0ap0dxessv7pY_bDWdHmUequAAGS87ugwZUMXLllSW2jyoOd6fFzP10BV8rhBLIvoGMb5gNdaYX2x4FBFROwukyUyOxT8JLr7mJpDTfYOf6yjdmytXTV-7xySwLqlqhx2VsndfH-OmvdhrOHEkb2a6af3IMk6rrECRwDIzmDF9ifVi9UDyj54YsAtFIVCeGYpTYANSOpsj-0gJDYzn7omxPKnsTrVMlR4RvIFqAnsyNXDHuUws5kJSSGxj7dRz6GHW0ANK4OHSNtRqiNftDtoYxNZcGFQZQw1BBVUdSZMVxBLbZVu58zaOWSoW3wBBGYvtJVHz2wM4fu1jhjOOeihdDZdF_aKdMtYoIvkGlWBnWYiA5M_OSRKaF9Eq7HzvUYrHcBtUPzMkb1IoN5hrH91DyIcJc0gnWz0NlJASztaUphyjXeB50x1ukrFmJAvpb14qOsuU45jtRnYInyVklMPh8AMJeTBGmTL5Rv_81a2MvpcuCk-qu3ilGQO76tuq3k_xGRj9H-gl_7BTxRo5csIcl_4mMT4tn3Gwsd0VoD0Nr92A4Kwx_nASnIc",
                          "description": "Токен авторизации Bearer. Время жизни токена - 20 минут."
                        }
                      }
                    },
                    "errors": {
                      "type": "array",
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 400,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "example": null
                    },
                    "errors": {
                      "type": "array",
                      "format": "string",
                      "example": ["Invalid credentials."],
                      "description": "Описание ошибки"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/info/{transaction_number}": {
      "get": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Получение статуса транзакции по номеру транзакции",
        "description": "`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к [методу](#operation/billingAuthentication).",
        "operationId": "getTransactionStatusByTransactionNumber",
        "parameters": [
          {
            "name": "transaction_number",
            "in": "path",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "description": "Номер транзакции, по которой необходимо получить статус.",
                  "example": 174164469
                }
              }
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Возвращает статус транзакции",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "orderNum": {
                          "type": "string",
                          "example": "ORDER-5f6b",
                          "description": "Уникальный идентификатор заказа, присваиваемый магазином."
                        },
                        "transactionId": {
                          "type": "integer",
                          "example": 174164469,
                          "description": "Номер транзакции, по которой получен статус."
                        },
                        "date": {
                          "type": "string",
                          "example": "2022-12-22 12:20:36",
                          "description": "Дата и время совершения транзакции."
                        },
                        "status": {
                          "type": "string",
                          "example": "Authorized",
                          "description": "Статус транзакции. С возможными статусами можно ознакомиться [здесь](https://docs.webpay.by/paymentIntegration/cardIntegration/transactionTypes/)."
                        },
                        "amount": {
                          "type": "float",
                          "example": 33,
                          "description": "Общая сумма транзакции."
                        },
                        "currency": {
                          "type": "string",
                          "example": "BYN",
                          "description": "Идентификатор валюты транзакции."
                        },
                        "responseCode": {
                          "type": "string",
                          "example": "W0001(00)",
                          "description": "Внутренний код WEBPAY результата транзакции."
                        },
                        "responseText": {
                          "type": "string",
                          "example": "Операция завершена успешно",
                          "description": "Текстовое представление внутреннего кода WEBPAY."
                        },
                        "approvalCode": {
                          "type": "string",
                          "example": "326768",
                          "description": "Код операции процессинга."
                        },
                        "cardType": {
                          "type": "string",
                          "example": "VISA",
                          "description": "Тип платежной системы карты плательщика."
                        },
                        "cardNumber": {
                          "type": "string",
                          "example": "434179xxxxxx0051",
                          "description": "Маскированный номер карты плательщика."
                        },
                        "cardCountry": {
                          "type": "string",
                          "example": "USA",
                          "description": "Страна-эмитент карты плательщика."
                        },
                        "payerName": {
                          "type": "string",
                          "example": "IVANOV IVAN",
                          "description": "Имя держателя карты."
                        },
                        "payerEmail": {
                          "type": "string",
                          "example": "test@test.com",
                          "description": "Email плательщика."
                        },
                        "payerIp": {
                          "type": "string",
                          "example": "151.249.131.33",
                          "description": "IP адрес плательщика."
                        },
                        "paymentType": {
                          "type": "string",
                          "example": "cc",
                          "description": "Метод совершения транзакции."
                        },
                        "rrn": {
                          "type": "string",
                          "example": "466232477402",
                          "description": "RRN транзакции."
                        },
                        "comment": {
                          "type": "string",
                          "example": "",
                          "description": "Дополнительный комментарий по транзакции."
                        },
                        "children": {
                          "type": "array",
                          "format": "object",
                          "description": "Дочерние транзакции запрашиваемой транзакции. Структура будет такой же как и родительской.",
                          "example": [
                            {
                              "orderNum": "ORDER-5f6b",
                              "transactionId": 162576591,
                              "date": "2022-12-23 12:20:02",
                              "status": "Completed",
                              "amount": 33,
                              "currency": "BYN",
                              "responseCode": "00",
                              "responseText": "",
                              "approvalCode": null,
                              "cardType": null,
                              "cardNumber": null,
                              "cardCountry": null,
                              "payerName": null,
                              "payerEmail": null,
                              "payerIp": null,
                              "paymentType": "cc",
                              "comment": "",
                              "rrn": "466232477402"
                            }
                          ]
                        }
                      }
                    },
                    "errors": {
                      "type": "array",
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Неавторизованый",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 401,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "example": null
                    },
                    "errors": {
                      "type": "string",
                      "example": "Expired JWT Token",
                      "description": "Описание ошибки"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 400,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "example": null
                    },
                    "errors": {
                      "type": "array",
                      "format": "string",
                      "example": ["Transaction not found"],
                      "description": "Описание ошибки"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/info/invoice/{order_number}": {
      "get": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Получение статуса транзакции по номеру заказа",
        "description": "`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к [методу](#operation/billingAuthentication).",
        "operationId": "getTransactionStatusByOrderNumber",
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "description": "Уникальный идентификатор заказа, присваиваемый магазином, по которому необходимо получить статус транзакции.",
                  "example": "ORDER-5f6b"
                }
              }
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Возвращает статус транзакции",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "orderNum": {
                            "type": "string",
                            "example": "ORDER-5f6b",
                            "description": "Уникальный идентификатор заказа, присваиваемый магазином."
                          },
                          "transactionId": {
                            "type": "integer",
                            "example": 174164469,
                            "description": "Номер транзакции, по которой получен статус."
                          },
                          "date": {
                            "type": "string",
                            "example": "2022-12-22 12:20:36",
                            "description": "Дата и время совершения транзакции."
                          },
                          "status": {
                            "type": "string",
                            "example": "Authorized",
                            "description": "Статус транзакции. С возможными статусами можно ознакомиться [здесь](https://docs.webpay.by/paymentIntegration/cardIntegration/transactionTypes/)."
                          },
                          "amount": {
                            "type": "float",
                            "example": 33,
                            "description": "Общая сумма транзакции."
                          },
                          "currency": {
                            "type": "string",
                            "example": "BYN",
                            "description": "Идентификатор валюты транзакции."
                          },
                          "responseCode": {
                            "type": "string",
                            "example": "W0001(00)",
                            "description": "Внутренний код WEBPAY результата транзакции."
                          },
                          "responseText": {
                            "type": "string",
                            "example": "Операция завершена успешно",
                            "description": "Текстовое представление внутреннего кода WEBPAY."
                          },
                          "approvalCode": {
                            "type": "string",
                            "example": "326768",
                            "description": "Код операции процессинга."
                          },
                          "cardType": {
                            "type": "string",
                            "example": "VISA",
                            "description": "Тип платежной системы карты плательщика."
                          },
                          "cardNumber": {
                            "type": "string",
                            "example": "434179xxxxxx0051",
                            "description": "Маскированный номер карты плательщика."
                          },
                          "cardCountry": {
                            "type": "string",
                            "example": "USA",
                            "description": "Страна-эмитент карты плательщика."
                          },
                          "payerName": {
                            "type": "string",
                            "example": "IVANOV IVAN",
                            "description": "Имя держателя карты."
                          },
                          "payerEmail": {
                            "type": "string",
                            "example": "test@test.com",
                            "description": "Email плательщика."
                          },
                          "payerIp": {
                            "type": "string",
                            "example": "151.249.131.33",
                            "description": "IP адрес плательщика."
                          },
                          "paymentType": {
                            "type": "string",
                            "example": "cc",
                            "description": "Метод совершения транзакции."
                          },
                          "rrn": {
                            "type": "string",
                            "example": "466232477402",
                            "description": "RRN транзакции."
                          },
                          "comment": {
                            "type": "string",
                            "example": "",
                            "description": "Дополнительный комментарий по транзакции."
                          },
                          "children": {
                            "type": "array",
                            "format": "object",
                            "description": "Дочерние транзакции запрашиваемой транзакции. Структура будет такой же как и родительской."
                          }
                        }
                      },
                      "example": [
                        {
                          "orderNum": "ORDER-5f6b",
                          "transactionId": 174164470,
                          "date": "2022-12-23 12:20:02",
                          "status": "Completed",
                          "amount": 33,
                          "currency": "BYN",
                          "responseCode": "00",
                          "responseText": "",
                          "approvalCode": null,
                          "cardType": null,
                          "cardNumber": null,
                          "cardCountry": null,
                          "payerName": null,
                          "payerEmail": null,
                          "payerIp": null,
                          "paymentType": "cc",
                          "comment": "",
                          "rrn": "466232477402",
                          "children": []
                        },
                        {
                          "orderNum": "ORDER-5f6b",
                          "transactionId": 174164469,
                          "date": "2022-12-22 12:20:36",
                          "status": "Authorized",
                          "amount": 33,
                          "currency": "BYN",
                          "responseCode": "W0001(00)",
                          "responseText": "Операция завершена успешно",
                          "approvalCode": "326768",
                          "cardType": "VISA",
                          "cardNumber": "434179xxxxxx0051",
                          "cardCountry": "USA",
                          "payerName": "IVANOV IVAN",
                          "payerEmail": "test@test.com",
                          "payerIp": "151.249.131.33",
                          "paymentType": "cc",
                          "comment": "",
                          "rrn": "466232477402",
                          "children": [
                            {
                              "orderNum": "ORDER-5f6b",
                              "transactionId": 162576591,
                              "date": "2022-12-23 12:20:02",
                              "status": "Completed",
                              "amount": 33,
                              "currency": "BYN",
                              "responseCode": "00",
                              "responseText": "",
                              "approvalCode": null,
                              "cardType": null,
                              "cardNumber": null,
                              "cardCountry": null,
                              "payerName": null,
                              "payerEmail": null,
                              "payerIp": null,
                              "paymentType": "cc",
                              "comment": "",
                              "rrn": "466232477402"
                            }
                          ]
                        }
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Неавторизованый",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 401,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "object",
                      "example": null
                    },
                    "errors": {
                      "type": "string",
                      "example": "Expired JWT Token",
                      "description": "Описание ошибки"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 404,
                      "description": "Код ответа"
                    },
                    "data": {
                      "type": "string",
                      "example": "Invoice not found"
                    },
                    "errors": {
                      "type": "string",
                      "example": null,
                      "description": "Описание ошибки"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tokenization/get-image": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "[VTS] Получение обложки карты VISA",
        "description": "Метод для получения изображения (обложки) карты VISA по VTS-токену `(доступен только в реальной среде)`.\n\nПри обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "getVisaImage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["wpToken", "siteId"],
                "properties": {
                  "wpToken": {
                    "type": "integer",
                    "description": "Токен привязки карты к пользователю (wsb_customer_id), по которой необходимо получить обложку.",
                    "example": 174164469
                  },
                  "siteId": {
                    "type": "integer",
                    "description": "Идентификатор магазина в системе WEBPAY.",
                    "example": 12345678
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "width": { "type": "string", "example": "240" },
                        "height": { "type": "string", "example": "350" },
                        "imageUrl": { "type": "string", "example": "/test" },
                        "type": { "type": "string", "example": "PNG" }
                      }
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": { "type": "integer", "example": 400 },
                    "data": { "type": "null", "example": null },
                    "errors": {
                      "type": "array",
                      "items": { "type": "string" }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Неавторизован",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": { "type": "integer", "example": 401 },
                    "data": { "type": "null", "example": null },
                    "errors": { "type": "string", "example": "Expired JWT Token" }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoice/url": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Получение ссылки на скачивание инвойса",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "getInvoiceUrl",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["invoiceId"],
                "properties": {
                  "invoiceId": {
                    "type": "string",
                    "description": "Номер (id) счета в системе WEBPAY",
                    "example": "175039"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "invoiceUrl": {
                          "type": "string",
                          "example": "https://w-p.by/iOTM"
                        }
                      }
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "emptyField": {
                    "value": {
                      "code": 400,
                      "data": null,
                      "errors": ["invoiceId:Значение не должно быть пустым."]
                    }
                  },
                  "validationError": {
                    "value": {
                      "code": 400,
                      "data": null,
                      "errors": ["Validation error"]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v1/transactions/failed-log": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Получение списка неуспешных транзакций",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "getFailedLogTransaction",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dateFrom": {
                    "type": "string",
                    "description": "Дата начала периода в формате UnixTimestamp",
                    "example": "1717909200"
                  },
                  "dateTo": {
                    "type": "string",
                    "description": "Дата окончания периода в формате UnixTimestamp",
                    "example": "1718082000"
                  },
                  "orderNumber": {
                    "type": "string",
                    "description": "Уникальный идентификатор заказа, присваиваемый магазином, по которому необходимо получить список неуспешных транзакций",
                    "example": "2024-06-06-1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FailedTransaction"
                      }
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "requiredField": {
                    "value": {
                      "code": 400,
                      "data": null,
                      "errors": ["dateFrom:Either dateFrom or orderNumber is required"]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/api/v1/transactions/complete": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Финансовое завершение двухстадийной транзакции",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "transactionComplete",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["transactionId", "amount", "currency"],
                "properties": {
                  "transactionId": {
                    "type": "string",
                    "description": "Идентификатор транзакции",
                    "example": "618083319"
                  },
                  "amount": {
                    "type": "number",
                    "format": "float",
                    "description": "Сумма",
                    "example": 11.00
                  },
                  "currency": {
                    "type": "string",
                    "description": "Валюта",
                    "example": "BYN"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "$ref": "#/components/schemas/TransactionResponse"
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ошибка запроса",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "incorrectAmount": {
                    "value": {
                      "code": 400,
                      "data": null,
                      "errors": ["Incorrect amount or currency"]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v1/transactions/refund": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Полный или частичный возврат средств по проведенной транзакции",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "transactionRefund",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["transactionId", "amount", "currency"],
                "properties": {
                  "transactionId": {
                    "type": "string",
                    "description": "Идентификатор транзакции",
                    "example": "618083319"
                  },
                  "amount": {
                    "type": "number",
                    "format": "float",
                    "description": "Сумма возврата",
                    "example": 15.00
                  },
                  "currency": {
                    "type": "string",
                    "description": "Валюта",
                    "example": "BYN"
                  },
                  "refundReason": {
                    "type": "string",
                    "description": "Причина возврата",
                    "example": "I changed my mind"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "$ref": "#/components/schemas/RefundTransactionResponse"
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v1/transactions/cancel": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Отмена авторизационной транзакции",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "transactionCancel",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["transactionId", "amount", "currency"],
                "properties": {
                  "transactionId": {
                    "type": "string",
                    "description": "Идентификатор транзакции",
                    "example": "365853452"
                  },
                  "amount": {
                    "type": "number",
                    "format": "float",
                    "description": "Сумма",
                    "example": 22.00
                  },
                  "currency": {
                    "type": "string",
                    "description": "Валюта",
                    "example": "BYN"
                  },
                  "cancelReason": {
                    "type": "string",
                    "description": "Причина отмены",
                    "example": "I changed my mind"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "$ref": "#/components/schemas/VoidedTransactionResponse"
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/api/v1/transactions/complete-with-sou": {
      "post": {
        "tags": ["manageOperationMethods"],
        "servers": [
          {
            "url": "https://sandbox.webpay.by",
            "description": "Sandbox"
          },
          {
            "url": "https://billing.webpay.by",
            "description": "Production"
          }
        ],
        "summary": "Финансовое завершение двухстадийной транзакции с СОУ",
        "description": "При обращении к методам управления операциями необходимо указывать заголовок:\n\n`Authorization: Bearer {auth_token}`.\n\n`auth_token` должен быть получен в результате обращения к методу аутентификации.",
        "operationId": "transactionCompleteWithSou",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["transactionId", "amount", "currency", "serviceAccount", "serviceNumber"],
                "properties": {
                  "transactionId": {
                    "type": "string",
                    "description": "Идентификатор транзакции",
                    "example": "370338372"
                  },
                  "amount": {
                    "type": "number",
                    "format": "float",
                    "description": "Сумма",
                    "example": 15.00
                  },
                  "currency": {
                    "type": "string",
                    "description": "Валюта",
                    "example": "BYN"
                  },
                  "serviceAccount": {
                    "type": "string",
                    "description": "Сервисный аккаунт",
                    "example": "account"
                  },
                  "serviceNumber": {
                    "type": "string",
                    "description": "Сервисный номер",
                    "example": "number"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Успешный ответ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "$ref": "#/components/schemas/TransactionResponse"
                    },
                    "errors": {
                      "type": "null"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CommonRequiredFields": {
        "type": "object",
        "required": [
          "wsb_storeid",
          "wsb_order_num",
          "wsb_currency_id",
          "wsb_version",
          "wsb_seed",
          "wsb_signature",
          "wsb_test",
          "wsb_total",
          "wsb_customer_id",
          "wsb_operation_type",
          "wsb_recurring_token",
          "wsb_terminal",
          "wsb_discount_promo_code",
          "wsb_encrypted_data",
          "wsb_token_p2p",
          "wsb_output_via_corpocard_mtb"
        ],
        "properties": {
          "wsb_storeid": {
            "type": "number",
            "format": "",
            "minimum": 1,
            "example": "11111111",
            "description": "Идентификатор магазина в системе WEBPAY. Данный идентификатор создается при регистрации в системе WEBPAY и высылается в письме."
          },
          "wsb_order_num": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "uniqueItems": true,
            "description": "Уникальный идентификатор заказа, присваиваемый магазином. При оплате через ЕРИП значение поля **не может** начинаться на **0 (ноль)**.",
            "example": "ORDER-12345678"
          },
          "wsb_currency_id": {
            "type": "string",
            "format": "ISO 4271",
            "title": "Валюта",
            "enum": ["BYN", "USD", "EUR", "RUB"],
            "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271.",
            "example": "BYN"
          },
          "wsb_version": {
            "type": "number",
            "default": 2,
            "description": "Версия формы оплаты. Текущий номер версии: **2**.",
            "example": 2
          },
          "wsb_seed": {
            "type": "string",
            "minLength": 0,
            "maxLength": 64,
            "description": "Случайная последовательность символов, участвующих в формировании электронной подписи заказа.",
            "example": "1242649174"
          },
          "wsb_test": {
            "type": "number",
            "enum": [0, 1],
            "description": "Поле, указывающее на проведение тестовой оплаты.\n\n**1** — производить тестовую оплату;\n**0**— производить реальную оплату.\n\nДля того, чтобы была возможность в тестовой среде ввести разные карты для тестирования упрощенных платежей, рекуррентных платежей, платежей с промокодами, по картам рассрочки и для осуществления вывода денежных средств необходимо установить значение равное **0**.",
            "example": 1
          }
        }
      },
      "CommonFields": {
        "type": "object",
        "properties": {
          "wsb_store": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Название магазина, которое будет отображаться на форме оплаты. По умолчанию берется из настроек биллинг-аккаунта.",
            "example": "Название Вашего магазина"
          },
          "wsb_language_id": {
            "type": "string",
            "enum": ["russian", "english"],
            "default": "Определяется по настройкам браузера и/или системы плательщика",
            "description": "Идентификатор языка формы оплаты.",
            "example": "russian"
          },
          "wsb_redirect": {
            "type": "integer",
            "enum": [1],
            "description": "Идентификатор редиректа плательщика сразу же после осуществления платежа без вывода результата оплаты на платежной странице WEBPAY. Ознакомиться с описанием работы этого функционала можно [здесь](https://docs.webpay.by/index.html#paymentResultMerchantSide).",
            "example": 1
          },
          "wsb_return_format ": {
            "type": "string",
            "enum": ["json"],
            "description": "Формат ответа магазину после редиректа плательщика сразу же после осуществления платежа без вывода результата оплаты на платежной странице WEBPAY. Ознакомиться с описанием работы этого функционала можно [здесь](https://docs.webpay.by/index.html#paymentResultMerchantSide).",
            "example": "json"
          },
          "wsb_return_url": {
            "type": "string",
            "description": "URL адрес, на который возвращается покупатель в случае успешной оплаты.\n\nК данному URL добавляются значения Идентификатора заказа (`wsb_order_num`) и номера транзакции (`wsb_tid`) в системе WEBPAY.",
            "example": "http://yoursiteurl.com/success.php"
          },
          "wsb_cancel_return_url": {
            "type": "string",
            "description": "URL адрес, на который возвращается покупатель в случае не успешной оплаты.\n\nК данному URL добавляются значение Идентификатора заказа (`wsb_order_num`).",
            "example": "http://yoursiteurl.com/cancel.php"
          },
          "wsb_notify_url": {
            "type": "string",
            "description": "Данный URL вызывается вне зависимости от того, был ли переход по URL в поле `wsb_return_url`или нет. Основное назначение этого URL оповестить сайт об успешной оплате в случае, если пользователь не нажал кнопку \"Вернуться на сайт\" на форме оплаты. По умолчанию берется из настроек биллинг-аккаунта.\n\n**Внимание! Отправка нотификаторов возможна только на стандартные порты: 80 (http), 443 (https), 8080 (http_alt), 8443(pcsync-https).**",
            "example": "http://yoursiteurl.com/notify.php"
          },
          "wsb_customer_name": {
            "type": "string",
            "maxLength": 255,
            "description": "Наименование получателя товара/услуги.",
            "example": "Иванов Петр Петрович"
          },
          "wsb_customer_address": {
            "type": "string",
            "maxLength": 255,
            "description": "Адрес получателя товара/услуги.",
            "example": "Минск ул. Шафарнянская д.11 оф.54"
          },
          "wsb_service_date": {
            "type": "string",
            "maxLength": 255,
            "description": "Сроки предоставления товаров/услуг/работ.",
            "example": "Доставка до 1 января 2022 года"
          },
          "wsb_tax": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "description": "Поле, значением которого является сумма налога в белорусских рублях, добавляемая к общей сумме заказа.\n\nПри оплате через **ЕРИП** это поле **не учитывается** (сумма налога добавляется к сумме единицы товара).",
            "example": 10.5
          },
          "wsb_shipping_name": {
            "type": "string",
            "maxLength": 255,
            "description": "Поле определяющее наименование (способ) доставки.",
            "example": "Стоимость доставки"
          },
          "wsb_shipping_price": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "description": "Поле, значением которого является сумма доставки, добавляемая к общей сумме заказа.",
            "example": 0.98
          },
          "wsb_discount_name": {
            "type": "string",
            "maxLength": 255,
            "description": "Поле с описанием скидки.",
            "example": "Скидка на товар"
          },
          "wsb_discount_price": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "title": "Значение должно быть положительным числом без знака \"-\" минус.",
            "description": "Поле, значением которого является сумма скидки, вычитаемая из общей суммы заказа.",
            "example": 0.58
          },
          "wsb_order_tag": {
            "type": "string",
            "maxLength": 64,
            "description": "Метка заказа. Используется для отнесения заказа к определенной категории, группировки заказов или других нужд.",
            "example": "Договор №152/12-1 от 12.01.19"
          },
          "wsb_email": {
            "type": "string",
            "format": "email",
            "maxLength": 255,
            "description": "Электронный адрес покупателя.\n\nЗначение данного поля будет автоматически подставлено в соответствующее поле формы оплаты.",
            "example": "ivanov@test.by"
          },
          "wsb_phone": {
            "type": "string",
            "maxLength": 255,
            "description": "Номер телефона покупателя.",
            "example": "375291234567"
          },
          "wsb_order_contract": {
            "type": "string",
            "maxLength": 255,
            "description": "Номер договора с заказчиком услуги/плательщиком.",
            "example": "Договор №152/12-1 от 12.01.19"
          },
          "wsb_tab": {
            "type": "string",
            "enum": ["erip", "cardPayment"],
            "default": "Стандартный порядок вкладок — оплата картой, потом ЕРИП",
            "description": "Определение активной вкладки с нужным платежным инструментом (оплата картой/ЕРИП).",
            "example": "cardPayment"
          },
          "wsb_startsesstime": {
            "type": "number",
            "format": "Unix Timestamp",
            "description": "Регулирование времени отведенного на оплату со стороны Интернет-ресурса. Указывает, с какого времени производить отсчет отведенного для оплаты интервала времени (по умолчанию 20 минут). При передаче двух параметров, приоритетным считается `wsb_startsessdatetime`.\n\nНапример, транзакция начинается 22.10.2020 16:33:01, Интернет-ресурс хочет, чтобы платежная сессия действовала 7 мин., в POST запросе необходимо передать время 22.10.2020 16:20:01.",
            "example": "1603383601"
          },
          "wsb_startsessdatetime": {
            "type": "string",
            "format": "DateTime",
            "description": "Регулирование времени отведенного на оплату со стороны Интернет-ресурса. Указывает, с какого времени производить отсчет отведенного для оплаты интервала времени (по умолчанию 20 минут). При передаче двух параметров, приоритетным считается `wsb_startsessdatetime`.\n\nНапример, транзакция начинается 22.10.2020 16:33:01, Интернет-ресурс хочет, чтобы платежная сессия действовала 7 мин., в POST запросе необходимо передать время 22.10.2020 16:20:01.",
            "example": "2020-10-22T16:20:01+03:00"
          }
        }
      },
      "CommonCartFields": {
        "type": "object",
        "properties": {
          "wsb_invoice_item_name": {
            "type": "array",
            "format": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Наименование единицы товара.",
            "example": ["Товар 1", "Товар 2"]
          },
          "wsb_invoice_item_quantity": {
            "type": "array",
            "format": "integer",
            "description": "Количество единиц товара. Целое число, обозначающее количество единиц товара каждого наименования.",
            "example": [2, 1]
          },
          "wsb_invoice_item_price": {
            "type": "array",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "description": "Цена единицы товара. Число, определяющее стоимость каждой единицы товара (BYN, USD, EUR, RUB с 2 знаками после запятой или точки).",
            "example": [10, 0.5]
          }
        }
      },
      "CartTotal": {
        "type": "object",
        "properties": {
          "wsb_total": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "description": "Данное поле является вычисляемым. Значение этого поля является общей суммой оплаты заказа. Правило вычисления общей суммы:\n\n`wsb_total` =`wsb_invoice_item_quantity[0]` * `wsb_invoice_item_price[0]` + `wsb_invoice_item_quantity[1]` * `wsb_invoice_item_price[1]` +\n...\n `wsb_invoice_item_quantity[n]` * `wsb_invoice_item_price[n]` + `wsb_tax` + `wsb_shipping_price` - `wsb_discount_price`.\n\nОплата не будет произведена, если `wsb_total` и посчитанное значение товаров не будет совпадать. Покупателю будет отображена ошибка.",
            "example": 31.4
          }
        }
      },
      "3dsOption": {
        "type": "object",
        "properties": {
          "wsb_3ds_payment_option": {
            "type": "string",
            "enum": [
              "auto",
              "force_3ds",
              "force_3ds_only_auth_yes",
              "without_3ds"
            ],
            "default": "auto",
            "description": "Поле, позволяющее принудительно изменять необходимость прохождения 3D-Secure плательщиком. Управление 3D-Secure недоступно для магазинов, которые работают через банк-эквайер \"Приорбанк\" ОАО.\nДля подключения возможности работы с данным функционалом необходимо связаться с персональным менеджером WEBPAY.\n\nОписание значений:\n\n+ `auto` - процесс 3D-Secure осуществляется по умолчанию;\n\n+ `force_3ds` - принудительное проведение платежа с использованием 3D-Secure. Если карта не поддерживает 3D-Secure, транзакция не пройдёт;\n\n+ `force_3ds_only_auth_yes` - после проведения аутентификации с помощью 3D-Secure статус должен быть только Y, что гарантирует успешную аутентификацию пользователя, иначе транзакция не пройдёт;\n\n+ `without_3ds` - принудительное отключение 3D-Secure.",
            "example": "force_3ds"
          }
        }
      },
      "PaymentRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key\n\nЕсли дробная часть суммы заказа равна нулю, формат значения для расчета электронной подписи заказа `wsb_signature` зависит от формата поля `wsb_total`:\n+ если поле содержит дробную часть (например, **1.00**), используйте значение с нулями;\n+ если поле не содержит дробную часть (например, **1**), используйте значение без нулей.",
                "example": "266e9c04a24dfb5fc75775c42a831a49488f8303"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "BadRequestError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "example": "Неверно сформирована подпись заказа"
              },
              "code": {
                "type": "integer",
                "example": 400
              }
            }
          }
        }
      },
      "PaymentResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "wt": {
                "type": "string",
                "example": "a8770d78a00802f78e002b36353a6130=63546473535746484d335a7652555a5a62316c434c3239525757637657565133646c637a63465a505455493256324a4856584e31556d6f79564663765a58686e55477330526d4e71644567334d565a4653545a7354672c2c",
                "description": "Уникальный токен платежной сессии."
              },
              "redirectUrl": {
                "type": "string",
                "example": "https://securesandbox.webpay.by?wt=a8770d78a00802f78e002b36353a6130=63546473535746484d335a7652555a5a62316c434c3239525757637657565133646c637a63465a505455493256324a4856584e31556d6f79564663765a58686e55477330526d4e71644567334d565a4653545a7354672c2c",
                "description": "URL платежной страницы."
              }
            }
          }
        }
      },
      "SimplifiedRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_customer_id": {
                "type": "string",
                "maxLength": 64,
                "description": "Уникальный номер зарегистрированного Покупателя на стороне Поставщика услуг. Поле не чувствительно к регистру.",
                "example": "1234567"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_customer_id\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key",
                "example": "7bba5020b4033e9086e5f4240a24163dc0d4562b"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "InitialRecurringRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_customer_id": {
                "type": "string",
                "maxLength": 64,
                "description": "Уникальный идентификатор пользователя в Магазине. Поле не чувствительно к регистру.",
                "example": "aA1217Zz"
              },
              "wsb_operation_type": {
                "type": "string",
                "enum": ["recurring_bind"],
                "description": "Обозначает тип запроса.\n\n`recurring_bind` — привязать карту к аккаунту.",
                "example": "recurring_bind"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_customer_id\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ wsb_operation_type\n\n+ secret_key",
                "example": "ebefd130602a41f95238b5bd5cd1f3f803456093"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "RecurringRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_customer_id": {
                "type": "string",
                "maxLength": 64,
                "description": "Уникальный идентификатор пользователя в Магазине, который был использован при инициирующей оплате.",
                "example": "aA1217Zz"
              },
              "wsb_operation_type": {
                "type": "string",
                "enum": ["recurring_pay"],
                "description": "Обозначает тип запроса.\n\n`recurring_pay` — осуществить рекуррентный (CoF) платеж.",
                "example": "recurring_pay"
              },
              "wsb_recurring_token": {
                "type": "string",
                "uniqueItems": true,
                "maxLength": 255,
                "description": "Уникальный токен привязки карты к идентификатору пользователя в Магазине (`wsb_customer_id`). Значение данного поля соответствует значению поля `recurring_token`, переданного в нотификаторе после привязки карты.",
                "example": "834836387"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_customer_id\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ wsb_operation_type\n\n+ wsb_recurring_token\n\n+ secret_key",
                "example": "d1a5110dc27d38a5fed50f98def59029ed5e1564"
              }
            }
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "RecurringSuccessResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "batch_timestamp": {
                "type": "number",
                "format": "Unix Timestamp",
                "description": "Время совершения транзакции.",
                "example": "1622492694"
              },
              "currency_id": {
                "type": "string",
                "format": "ISO 4271",
                "title": "Валюта",
                "enum": ["BYN", "USD", "EUR", "RUB"],
                "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271.",
                "example": "BYN"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "pattern": "^\\d+\\.\\d{2}$",
                "description": "Сумма транзакции.",
                "example": "31.4"
              },
              "customer_id": {
                "type": "string",
                "description": "Идентификатор пользователя в системе Магазина.",
                "example": "aA1217Zz"
              },
              "payment_method": {
                "type": "string",
                "enum": ["cc"],
                "description": "Метод совершения транзакции. Возможные значения:\n\n+ сс — банковская карточка.",
                "example": "cc"
              },
              "site_order_id": {
                "type": "string",
                "description": "Номер (имя) заказа, присвоенный Магазином.",
                "example": "ORDER-12345678"
              },
              "operation_type": {
                "type": "string",
                "enum": ["recurring_pay"],
                "description": "Обозначает тип запроса.\n\n`recurring_pay` — осуществить рекуррентный (CoF) платеж.",
                "example": "recurring_pay"
              },
              "order_id": {
                "type": "string",
                "description": "Номер заказа в системе WEBPAY.",
                "example": "307139115"
              },
              "terminal": {
                "type": "string",
                "description": "Номер терминала по которому прошла транзакция.",
                "example": "99995551"
              },
              "transaction_id": {
                "type": "string",
                "description": "Номер транзакции.",
                "example": "834836387"
              },
              "recurring_token": {
                "type": "string",
                "description": "Токен привязки.",
                "example": "834836387"
              },
              "payment_type": {
                "type": "integer",
                "description": "Тип транзакции. Подробнее можно ознакомиться в разделе [Типы транзакций](https://docs.webpay.by/paymentIntegration/cardIntegration/transactionTypes/).",
                "example": 10
              },
              "rrn": {
                "type": "string",
                "description": "Номер транзакции в системе VISA/MASTERCARD.",
                "example": "257885184293"
              },
              "rc": {
                "type": "string",
                "description": "Внутренний код WEBPAY результата операции.",
                "example": "W0001(00)"
              },
              "rc_text": {
                "type": "string",
                "description": "Текстовое представление внутреннего кода WEBPAY.",
                "example": "Successfully completed"
              },
              "action": {
                "type": "integer",
                "description": "Код платежа процессинга.",
                "example": 0
              },
              "approval": {
                "type": "string",
                "description": "Код операции процессинга.",
                "example": "257885"
              },
              "card": {
                "type": "string",
                "description": "Маскированный номер карты, по которой осуществлены платеж и привязка.",
                "example": "434179xxxxxx0051"
              }
            }
          }
        }
      },
      "RecurringErrorResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "batch_timestamp": {
                "type": "number",
                "format": "Unix Timestamp",
                "description": "Время совершения транзакции.",
                "example": "1623146236"
              },
              "currency_id": {
                "type": "string",
                "format": "ISO 4271",
                "title": "Валюта",
                "enum": ["BYN", "USD", "EUR", "RUB"],
                "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271.",
                "example": "BYN"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "pattern": "^\\d+\\.\\d{2}$",
                "description": "Сумма транзакции.",
                "example": "31.4"
              },
              "customer_id": {
                "type": "string",
                "description": "Идентификатор пользователя в системе Магазина.",
                "example": "aA1217Zz"
              },
              "payment_method": {
                "type": "string",
                "enum": ["cc"],
                "description": "Метод совершения транзакции. Возможные значения:\n\n+ сс — банковская карточка.",
                "example": "cc"
              },
              "site_order_id": {
                "type": "string",
                "description": "Номер (имя) заказа, присвоенный Магазином.",
                "example": "ORDER-12345678"
              },
              "operation_type": {
                "type": "string",
                "enum": ["recurring_pay"],
                "description": "Обозначает тип запроса.\n\n`recurring_pay` — осуществить рекуррентный (CoF) платеж.",
                "example": "recurring_pay"
              },
              "action": {
                "type": "integer",
                "description": "Код платежа процессинга.",
                "example": 4
              },
              "rc": {
                "type": "string",
                "description": "Внутренний код WEBPAY результата операции.",
                "example": "W0267(76)"
              },
              "rc_text": {
                "type": "string",
                "description": "Текстовое представление внутреннего кода WEBPAY.",
                "example": "Общая сумма по заказу рассчитана неверно"
              }
            }
          }
        }
      },
      "UnbindingRecurringRequest": {
        "type": "object",
        "required": [
          "wsb_version",
          "wsb_seed",
          "wsb_storeid",
          "wsb_customer_id",
          "wsb_operation_type",
          "wsb_recurring_token",
          "wsb_signature"
        ],
        "properties": {
          "wsb_version": {
            "type": "number",
            "default": 2,
            "description": "Версия формы оплаты. Текущий номер версии: **2**.",
            "example": 2
          },
          "wsb_seed": {
            "type": "string",
            "minLength": 0,
            "maxLength": 64,
            "description": "Случайная последовательность символов, участвующих в формировании электронной подписи заказа.",
            "example": "1242649174"
          },
          "wsb_storeid": {
            "type": "number",
            "format": "",
            "minimum": 1,
            "example": "11111111",
            "description": "Идентификатор магазина в системе WEBPAY. Данный идентификатор создается при регистрации в системе WEBPAY и высылается в письме."
          },
          "wsb_customer_id": {
            "type": "string",
            "maxLength": 64,
            "description": "Уникальный идентификатор пользователя в Магазине, который был использован при инициирующей оплате.",
            "example": "aA1217Zz"
          },
          "wsb_operation_type": {
            "type": "string",
            "enum": ["recurring_unbind"],
            "description": "Обозначает тип запроса.\n\n`recurring_unbind` — отвязать карту от аккаунта.",
            "example": "recurring_unbind"
          },
          "wsb_recurring_token": {
            "type": "string",
            "uniqueItems": true,
            "maxLength": 255,
            "description": "Уникальный токен привязки карты к идентификатору пользователя в Магазине (`wsb_customer_id`). Значение данного поля соответствует значению поля `recurring_token`, переданного в нотификаторе после привязки карты.",
            "example": "834836387"
          },
          "wsb_signature": {
            "type": "string",
            "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_customer_id\n\n+ wsb_operation_type\n\n+ wsb_recurring_token\n\n+ secret_key",
            "example": "d1a5110dc27d38a5fed50f98def59029ed5e1564"
          }
        }
      },
      "UnbindingRecurringSuccessResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "batch_timestamp": {
                "type": "number",
                "format": "Unix Timestamp",
                "description": "Время совершения транзакции.",
                "example": "1622492694"
              },
              "customer_id": {
                "type": "string",
                "description": "Идентификатор пользователя в системе Магазина.",
                "example": "aA1217Zz"
              },
              "operation_type": {
                "type": "string",
                "enum": ["recurring_unbind"],
                "description": "Обозначает тип запроса.\n\n`recurring_unbind` — осуществить отвязку.",
                "example": "recurring_unbind"
              },
              "recurring_token": {
                "type": "string",
                "description": "Токен привязки.",
                "example": "834836387"
              },
              "rc": {
                "type": "string",
                "description": "Внутренний код WEBPAY результата операции.",
                "example": "0"
              },
              "rc_text": {
                "type": "string",
                "description": "Текстовое представление внутреннего кода WEBPAY.",
                "example": "Operation success"
              }
            }
          }
        }
      },
      "UnbindingRecurringErrorResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "batch_timestamp": {
                "type": "number",
                "format": "Unix Timestamp",
                "description": "Время совершения транзакции.",
                "example": "1622492694"
              },
              "customer_id": {
                "type": "string",
                "description": "Идентификатор пользователя в системе Магазина.",
                "example": "aA1217Zz"
              },
              "operation_type": {
                "type": "string",
                "enum": ["recurring_unbind"],
                "description": "Обозначает тип запроса.\n\n`recurring_unbind` — осуществить отвязку.",
                "example": "recurring_unbind"
              },
              "recurring_token": {
                "type": "string",
                "description": "Токен привязки.",
                "example": "834836387"
              },
              "rc": {
                "type": "string",
                "description": "Внутренний код WEBPAY результата операции.",
                "example": "1018"
              },
              "rc_text": {
                "type": "string",
                "description": "Текстовое представление внутреннего кода WEBPAY.",
                "example": "Operation failed"
              }
            }
          }
        }
      },
      "InstallmentRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_terminal": {
                "type": "string",
                "minLength": 8,
                "maxLength": 8,
                "description": "Номер терминала в соответствии с типом рассрочки. Данное значение передается банком-эквайером Магазину при заключении договора.",
                "example": "99988871"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ wsb_terminal\n\n+ secret_key",
                "example": "266e9c04a24dfb5fc75775c42a831a49488f8303"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "PromoCodesRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_discount_promo_code": {
                "type": "string",
                "enum": ["visa", "mastercard", "gold", "platinum", "infinite"],
                "description": "`visa`, `mastercard` - значения возможных промокодов для карт VISA/MASTERCARD;\n\n `gold`, `platinum`, `infinite` - значения возможных промокодов для премиальных карт VISA.",
                "example": "gold"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key",
                "example": "266e9c04a24dfb5fc75775c42a831a49488f8303"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "EripRequest": {
        "required": [
          "wsb_invoice_item_name",
          "wsb_invoice_item_quantity",
          "wsb_invoice_item_price"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key",
                "example": "266e9c04a24dfb5fc75775c42a831a49488f8303"
              },
              "wsb_due_date": {
                "type": "number",
                "format": "Unix Timestamp",
                "description": "Метка времени, до которой счет будет доступны для оплаты.",
                "example": 1622194277
              }
            }
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "p2pMtbRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonRequiredFields"
          },
          {
            "$ref": "#/components/schemas/CartTotal"
          },
          {
            "type": "object",
            "properties": {
              "wsb_test": {
                "example": 0
              },
              "wsb_token_p2p": {
                "type": "string",
                "uniqueItems": true,
                "maxLength": 255,
                "description": "Значение данного поля соответствует значению поля `transaction_id`, переданного в нотификаторе после осуществленной операции ввода и привязки карты.",
                "example": "164941648452655"
              },
              "wsb_output_via_corpocard_mtb": {
                "type": "boolean",
                "enum": [true],
                "description": "Поле всегда содержит значение **true** и указывает на осуществление вывода денежных средств.",
                "example": true
              },
              "wsb_customer_id": {
                "type": "string",
                "maxLength": 64,
                "description": "Уникальный идентификатор пользователя в Магазине. Поле не чувствительно к регистру.",
                "example": "97564136"
              },
              "wsb_signature": {
                "type": "string",
                "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_customer_id\n\n+ wsb_order_num\n\n+ wsb_test\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key",
                "example": "ded78225b032ab3cbf4c47273837af20b193d500"
              }
            }
          },
          {
            "$ref": "#/components/schemas/3dsOption"
          },
          {
            "$ref": "#/components/schemas/CommonCartFields"
          },
          {
            "$ref": "#/components/schemas/CommonFields"
          }
        ]
      },
      "p2pParitetRequest": {
        "type": "object",
        "required": [
          "wsb_storeid",
          "wsb_order_num",
          "wsb_currency_id",
          "wsb_seed",
          "wsb_return_url",
          "wsb_signature",
          "wsb_total",
          "wsb_payout_type",
          "wsb_sender_surname",
          "wsb_sender_first_name",
          "wsb_sender_address",
          "wsb_recipient_surname",
          "wsb_recipient_first_name"
        ],
        "properties": {
          "wsb_storeid": {
            "type": "number",
            "format": "",
            "minimum": 1,
            "example": "11111111",
            "description": "Идентификатор магазина в системе WEBPAY. Данный идентификатор создается при регистрации в системе WEBPAY и высылается в письме"
          },
          "wsb_order_num": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "uniqueItems": true,
            "description": "Уникальный идентификатор заказа, присваиваемый магазином",
            "example": "ORDER-12345678"
          },
          "wsb_currency_id": {
            "type": "string",
            "format": "ISO 4271",
            "title": "Валюта",
            "enum": ["BYN", "USD", "EUR", "RUB"],
            "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271",
            "example": "BYN"
          },
          "wsb_seed": {
            "type": "string",
            "minLength": 0,
            "maxLength": 64,
            "description": "Случайная последовательность символов, участвующих в формировании электронной подписи заказа",
            "example": "1242649174"
          },
          "wsb_return_url": {
            "type": "string",
            "description": "URL адрес, на который возвращается покупатель в случае успешной оплаты.\n\nК данному URL добавляются значения Идентификатора заказа (`wsb_order_num`) и номера транзакции (`wsb_tid`) в системе WEBPAY",
            "example": "http://yoursiteurl.com/success.php"
          },
          "wsb_total": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+[.,]?\\d{0,2}$",
            "description": "Общая сумма вывода",
            "example": 1.00
          },
          "wsb_payout_type": {
            "type": "string",
            "enum": ["oct"],
            "description": "Тип выплаты. OCT тип транзакции, используется для отправки средств на карту получателя",
            "example": "oct"
          },
          "wsb_sender_surname": {
            "type": "string",
            "minLength": 1,
            "maxLength": 35,
            "description": "Отправитель — фамилия",
            "example": "IVANOV"
          },
          "wsb_sender_first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 35,
            "description": "Отправитель — имя",
            "example": "IVAN"
          },
          "wsb_sender_address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 35,
            "description": "Отправитель — адрес (улица, дом)",
            "example": "Shafarnyanskaya 11"
          },
          "wsb_recipient_surname": {
            "type": "string",
            "minLength": 1,
            "maxLength": 35,
            "description": "Получатель — фамилия",
            "example": "PETROV"
          },
          "wsb_recipient_first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 35,
            "description": "Получатель — имя",
            "example": "PETR"
          },
          "wsb_signature": {
            "type": "string",
            "description": "Контрольное значение (электронная подпись) заказа — результат выполнения функции **SHA1** (для версии 2, см. поле `wsb_version`) либо **MD5**, если версия протокола не указана. Данное значение является hex-последовательностью.\n\nЭлектронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.\n\nЭлектронная подпись формируется путем конкатенации значений следующих полей, порядок объединения не должен быть нарушен.\n\n Для формирования электронной подписи необходимо [установить значение поля \"Секретный ключ\"](https://docs.webpay.by/index.html#setSecretKey) в настройках Вашего биллинг-аккаунта.\n\n+ wsb_seed\n\n+ wsb_storeid\n\n+ wsb_order_num\n\n+ wsb_currency_id\n\n+ wsb_total\n\n+ secret_key",
            "example": "897865b94fd25adff1d3c457f0cb83cb"
          },
          "wsb_cancel_return_url": {
            "type": "string",
            "description": "URL адрес, на который возвращается покупатель в случае не успешной оплаты.\n\nК данному URL добавляются значение Идентификатора заказа (`wsb_order_num`)",
            "example": "http://yoursiteurl.com/cancel.php"
          },
          "wsb_notify_url": {
            "type": "string",
            "description": "Данный URL вызывается вне зависимости от того, был ли переход по URL в поле `wsb_return_url`или нет. Основное назначение этого URL оповестить сайт об успешной оплате в случае, если пользователь не нажал кнопку \"Вернуться на сайт\" на форме оплаты. По умолчанию берется из настроек биллинг-аккаунта.\n\n**Внимание! Отправка нотификаторов возможна только на стандартные порты: 80 (http), 443 (https), 8080 (http_alt), 8443(pcsync-https)**",
            "example": "http://yoursiteurl.com/notify.php"
          },
          "wsb_email": {
            "type": "string",
            "format": "email",
            "maxLength": 255,
            "description": "Электронный адрес покупателя.\n\nЗначение данного поля будет автоматически подставлено в соответствующее поле формы оплаты",
            "example": "ivanov@test.by"
          }
        }
      },
      "NotificatorInitialRecurrent": {
        "type": "object",
        "properties": {
          "batch_timestamp": {
            "type": "number",
            "format": "Unix Timestamp",
            "description": "Время совершения транзакции.",
            "example": ""
          },
          "currency_id": {
            "type": "string",
            "format": "ISO 4271",
            "title": "Валюта",
            "enum": ["BYN", "USD", "EUR", "RUB"],
            "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271.",
            "example": "BYN"
          },
          "amount": {
            "type": "number",
            "format": "float",
            "pattern": "^\\d+\\.\\d{2}$",
            "description": "Сумма транзакции.",
            "example": ""
          },
          "payment_method": {
            "type": "string",
            "enum": ["cc"],
            "description": "Метод совершения транзакции. Возможные значения:\n\n+ сс — банковская карточка.",
            "example": "cc"
          },
          "order_id": {
            "type": "string",
            "description": "Номер заказа в системе WEBPAY.",
            "example": ""
          },
          "site_order_id": {
            "type": "string",
            "description": "Номер (имя) заказа, присвоенный Магазином.",
            "example": ""
          },
          "transaction_id": {
            "type": "string",
            "description": "Номер транзакции.",
            "example": ""
          },
          "payment_type": {
            "type": "string",
            "description": "Тип транзакции. Подробнее можно ознакомиться в разделе [Типы транзакций](https://docs.webpay.by/paymentIntegration/cardIntegration/transactionTypes/)."
          },
          "rrn": {
            "type": "string",
            "description": "Номер транзакции в системе VISA/MASTERCARD."
          },
          "wsb_signature": {
            "type": "string",
            "description": "Электронная подпись. Значения следующих полей должны быть объединены в одну строку и зашифрованы в MD5, порядок объединения не должен быть нарушен:\n\n+ batch_timestamp\n\n+ currency_id\n\n+ amount\n\n+ payment_method\n\n+ order_id\n\n+ site_order_id\n\n+ transaction_id\n\n+ payment_type\n\n+ rrn\n\n+ card\n\n+ customer_id\n\n+ operation_type\n\n+ recurring_token\n\n+ offer_exp_date\n\n+ secret_key.",
            "example": ""
          }
        }
      },
      "NotificationPost": {
        "type": "object",
        "properties": {
          "batch_timestamp": {
            "type": "string",
            "format": "Unix Timestamp",
            "description": "Время совершения транзакции.",
            "example": ""
          },
          "currency_id": {
            "type": "string",
            "format": "ISO 4271",
            "title": "Валюта",
            "enum": ["BYN", "USD", "EUR", "RUB"],
            "description": "Идентификатор валюты. Буквенный трехзначный код валюты согласно ISO 4271.",
            "example": "BYN"
          },
          "amount": {
            "type": "string",
            "pattern": "^\\d+\\.\\d{2}$",
            "description": "Сумма транзакции.",
            "example": ""
          },
          "payment_method": {
            "type": "string",
            "enum": ["cc", "erip", "apple", "mastercard-scof-token", "p2p", "samsung"],
            "description": "Метод совершения транзакции. Возможные значения:\n\n+ сс — банковская карточка;\n\n+ erip — ЕРИП;\n\n+ apple — оплата Apple Pay;\n\n+ mastercard-scof-token — токенизация карты через Secure Card on File Mastercard Checkout Solutions;\n\n+ p2p — оплата p2p;\n\n+ samsung — оплата Samsung Pay.",
            "example": "cc"
          },
          "order_id": {
            "type": "string",
            "description": "Номер заказа в системе WEBPAY.",
            "example": ""
          },
          "site_order_id": {
            "type": "string",
            "description": "Номер (имя) заказа, присвоенный Магазином.",
            "example": ""
          },
          "transaction_id": {
            "type": "string",
            "description": "Номер транзакции.",
            "example": ""
          },
          "payment_type": {
            "type": "string",
            "description": "Тип транзакции. Подробнее можно ознакомиться в разделе [Типы транзакций](https://docs.webpay.by/paymentIntegration/cardIntegration/transactionTypes/)."
          },
          "rrn": {
            "type": "string",
            "description": "Номер транзакции в системе VISA/MASTERCARD."
          },
          "wsb_signature": {
            "type": "string",
            "description": "Электронная подпись. Значения следующих полей должны быть объединены в одну строку и зашифрованы в MD5, порядок объединения не должен быть нарушен::\n\n+ batch_timestamp\n\n+ currency_id\n\n+ amount\n\n+ payment_method\n\n+ order_id\n\n+ site_order_id\n\n+ transaction_id\n\n+ payment_type\n\n+ rrn\n\n+ card - добавляется в подпись, в зависимости от выбранного сценария работы\n\n+ secret_key",
            "example": ""
          },
          "action": {
            "type": "string",
            "description": "Код платежа процессинга.",
            "example": ""
          },
          "rc": {
            "type": "string",
            "description": "Внутренний код WEBPAY результата операции.",
            "example": ""
          },
          "approval": {
            "type": "string",
            "description": "Код операции процессинга.",
            "example": ""
          },
          "country_alpha_three_code": {
            "type": "string",
            "description": "Код страны банка-эмитента в ISO 3166-1 alpha-3. Для включения данного поля в нотификатор необходимо обратиться в [support@webpay.by](mailto:support@webpay.by).",
            "example": ""
          },
          "card": {
            "type": "string",
            "description": "Номер банковской платежной карты плательщика в формате `123456xxxxxx7890`, с которой осуществлялась оплата.\n\nПоле включено в нотификатор при использовании сценариев, когда необходима карта в ответе, например, при работе с рекуррентными платежами, мерчантами PCI DSS и т.д.\n\nЕсли используется стандартная интеграция, но по каким-то причинам необходимо получать номер карты, то для включения данного поля в нотификатор необходимо обратиться в [support@webpay.by](mailto:support@webpay.by).",
            "example": "123456xxxxxx7890"
          },
          "issuer_promo_product": {
            "type": "string",
            "minimum": 1,
            "maximum": 65535,
            "description": "Идентификатор для определения с какой карты или группы карт осуществлялась оплата плательщиком. Подходит для проведения акций при оплате определенными картами, например, выпущенными каким-то определенным банком-эмитентом.\n\nВ случае необходимости подключения данного функционала необходимо обратиться в техническую поддержку по адресу [support@webpay.by](mailto:support@webpay.by).",
            "example": "1"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "example": 400
          },
          "data": {
            "type": "null",
            "example": null
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FailedTransaction": {
        "type": "object",
        "properties": {
          "orderNum": {
            "type": "string",
            "example": "2024-06-06-1"
          },
          "transactionId": {
            "type": "string",
            "example": "F87846"
          },
          "date": {
            "type": "string",
            "example": "2024-06-10 14:18:43"
          },
          "status": {
            "type": "string",
            "example": "Failed"
          },
          "amount": {
            "type": "integer",
            "example": 1
          },
          "currency": {
            "type": "string",
            "example": "BYN"
          },
          "responseCode": {
            "type": "string",
            "example": "W1116(166)"
          },
          "responseText": {
            "type": "string",
            "example": "Ошибка"
          },
          "approvalCode": {
            "type": "null"
          },
          "cardType": {
            "type": "string",
            "example": "VISA"
          },
          "cardNumber": {
            "type": "string",
            "example": "434179xxxxxx0051"
          },
          "cardCountry": {
            "type": "string",
            "example": "USA"
          },
          "payerName": {
            "type": "string",
            "example": "IVAN IVANOV"
          },
          "payerEmail": {
            "type": "string",
            "example": "ivanov@test.by"
          },
          "payerIp": {
            "type": "string",
            "example": "10.5.0.2"
          },
          "paymentType": {
            "type": "null"
          },
          "comment": {
            "type": "string",
            "example": ""
          },
          "children": {
            "type": "array",
            "items": {}
          }
        }
      },
      "TransactionResponse": {
        "type": "object",
        "properties": {
          "orderNum": {
            "type": "string",
            "example": "2024-09-25-1"
          },
          "transactionId": {
            "type": "integer",
            "example": 800019805
          },
          "date": {
            "type": "string",
            "example": "2024-09-25 13:56:03"
          },
          "status": {
            "type": "string",
            "example": "Completed"
          },
          "amount": {
            "type": "integer",
            "example": 11
          },
          "currency": {
            "type": "string",
            "example": "BYN"
          },
          "responseCode": {
            "type": "string",
            "example": "00"
          },
          "responseText": {
            "type": "string",
            "example": ""
          },
          "approvalCode": {
            "type": "null"
          },
          "cardType": {
            "type": "null"
          },
          "cardNumber": {
            "type": "null"
          },
          "cardCountry": {
            "type": "null"
          },
          "payerName": {
            "type": "null"
          },
          "payerEmail": {
            "type": "null"
          },
          "payerIp": {
            "type": "null"
          },
          "paymentType": {
            "type": "string",
            "example": "cc"
          },
          "comment": {
            "type": "string",
            "example": ""
          },
          "children": {
            "type": "array",
            "items": {}
          }
        }
      },
      "VoidedTransactionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionResponse"
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "example": "Voided"
              }
            }
          }
        ]
      },
      "RefundTransactionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionResponse"
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "example": "Refunded"
              }
            }
          }
        ]
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Ошибка запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Неавторизован",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "integer",
                  "example": 401
                },
                "data": {
                  "type": "null",
                  "example": null
                },
                "errors": {
                  "type": "string",
                  "example": "Invalid JWT Token"
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "Доступ запрещен",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "integer",
                  "example": 403
                },
                "data": {
                  "type": "null",
                  "example": null
                },
                "errors": {
                  "type": "string",
                  "example": "Access denied"
                }
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "Сущность не найдена",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "integer",
                  "example": 400
                },
                "data": {
                  "type": "null",
                  "example": null
                },
                "errors": {
                  "type": "string",
                  "example": "Record not found"
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "standardPayment",
      "description": "### Принцип формирования и оплаты заказа\n1. Формирование заказа. Создание POST-запроса для получения платежного redirectUrl. В качестве полей должны быть указаны и заполнены поля, необходимые для совершения оплаты.\n2. Осуществление перехода на платежную страницу системы WEBPAY, для ввода реквизитов платежной карточки (переход осуществляется на redirectUrl).\n3. Ввод данных платежной карточки.\n4. Оплата заказа.\n5. Возврат на html-страницу модуля оплаты (системой WEBPAY будет отправлен нотификатор).\n6. Проверка параметров платежа.\n7. Оказание услуги (доставка товара).",
      "x-displayName": "Стандартный платеж"
    },
    {
      "name": "simplifiedPayment",
      "description": "**Упрощенный платеж** — это метод оплаты с использованием банковской карточки, у которого, для набора параметров Учетная запись и Платежная карта Покупателя в рамках Поставщика услуг, нет необходимости вводить все платежные реквизиты. Полностью заполнить все данные необходимо только при выполнении первоначального платежа для инициирования привязки услуги к карте. Прохождение авторизации тут является существенным, поскольку позволяет ассоциировать с Покупателем некий уникальный номер.\nПривязка карты осуществляется на стороне программного комплекса WEBPAY. Данные покупателя — маска номера карты, имя как на карте, срок действия карты, email и телефон — хранятся в привязке к уникальному номеру Покупателя. Новая карта может быть привязана Покупателем в один клик после любого успешного платежа в пользу Поставщика услуг.\nПривязанная к карте услуга \"Упрощенный платеж\", при следующем приобретении товаров, позволит избежать лишнего ввода информации. Достаточно будет выбрать карту для оплаты из списка и ввести лишь CVV/CVC.",
      "x-displayName": "Упрощенный платеж"
    },
    {
      "name": "recurrentPayment",
      "description": "### Описание процесса работы\nВ системе WEBPAY существует два способа осуществления оплаты без участия Держателя карты:\n1. Рекуррентные платежи — это платежи с определенной периодичностью, осуществляемые без участия Держателя карты, по требованию Магазина: при наступлении определенных событий либо на регулярной основе. В качестве требования Магазина выступает специально сформированный запрос, отправляемый на ресурс платежного сервиса.\n2. Credential on File (CoF) — это платежи, осуществляемые по привязанной карте, в которых не соблюдается периодичность списаний. Инициатором таких списаний может выступать:\n    + Магазин,\n    + Держатель карты.\n\nДо проведения рекуррентных (CoF) платежей необходимо осуществить инициирующий платеж, служащий контрактом, с участием Держателя карты и с вводом всех данных карты по стандартному сценарию. Дальнейшее осуществление рекуррентных (CoF) платежей происходит без участия Держателя карты и без передачи CVV/CVC. Инициирующий платёж поддерживает 3D-Secure (3DS). Рекуррентные (CoF) платежи не имеют возможности обеспечить поддержку 3DS.\nСумма рекуррентного (CoF) платежа может не совпадать с суммой инициирующего платежа. Настройки типа транзакции осуществляются на стороне WEBPAY в зависимости от бизнес-процесса Магазина.\n\n### Сценарий использования рекуррентных (Credential on File) платежей\nДержатель карты осуществляет переход с ресурса Магазина на ресурс платежного сервиса WEBPAY, после чего Держателю карты предлагается ввести реквизиты банковской платежной карты и дополнительные параметры. Далее осуществляется стандартный сценарий проведения платежа, включая, при необходимости, прохождение 3DS.\n\nВ случае успешного завершения платежа сервис привязывает карту к Держателю карты Магазина.\n\nПо завершении платежа возможен переход на ресурс Магазина на один из URL, указанных Магазином (для случаев успешного (параметр `wsb_return_url`) и неудачного (параметр `wsb_cancel_return_url`) завершения платежа). Дополнительно отправляется нотификатор на еще один URL (параметр `wsb_notify_url`). Нотификатор с сообщением о результате инициирующего платежа содержит токен рекуррентной операции, идентификатор пользователя, маскированный номер карты и срок действия подписки на механизм рекуррентных (CoF) платежей.\n\nПри успешном инициирующем платеже Магазин может проводить рекуррентные (CoF) платежи.",
      "x-displayName": "Рекуррентный платеж"
    },
    {
      "name": "installmentCardPayment",
      "description": "Товары, оплачиваемые по картам рассрочки \"Приорбанк\" ОАО или ЗАО \"МТБанк\" (Халва), попадают под определенный тип рассрочки. У поставщика услуг может быть несколько типов рассрочки (1 месяц, 3 месяца и т.п.). Каждому из типов рассрочки соответствует номер терминала, заведенный в \"Приорбанк\" ОАО или ЗАО \"МТБанк\" (Халва) для поставщика услуг. Указание, какой именно тип рассрочки необходимо использовать для переданного заказа, происходит на стороне поставщика услуг.\n\n### Особенности работы с картами рассрочки \"Приорбанк\" ОАО\n\nПри отправке запроса будет начат сценарий платежа, при котором для оплаты разрешено ввести только карту рассрочки \"Приорбанк\" ОАО. При работе только с одним типом рассрочки поле `wsb_terminal` можно не передавать.\n\n### Особенности работы с картами рассрочки ЗАО \"МТБанк\" (Халва)\n\nПри отправке запроса будет начат сценарий платежа, при котором для оплаты разрешено ввести только карту рассрочки ЗАО \"МТБанк\" (Халва либо ИКС карта, к которой привязана карта рассрочки Халва). При работе только с одним типом рассрочки поле `wsb_terminal` можно не передавать. Система WEBPAY определит вводимую плательщиком карту и на ее основании оплата будет произведена по соответствующему терминалу.\n\nЕсли у клиента подключена возможность на прием оплат по картам рассрочки ЗАО \"МТБанк\" (Халва), то отобразиться страница с блоком информации для оплаты.",
      "x-displayName": "Платежи по картам рассрочки"
    },
    {
      "name": "promoCodesPayment",
      "description": "### Описание скидочной программы VISA/MASTERCARD\n\nМеханизм предназначен для совершения платежей по заказам поставщика услуг, который участвует в скидочной программе платежной системы VISA/MASTERCARD. Данная программа предусматривает предоставление скидки по заказу, если оплата будет совершена с использованием любой карты VISA/MASTERCARD. Также предусмотрена возможность участия в скидочных программах VISA при оплате премиальными типами карт. Плательщик на стороне поставщика услуг выражает свое желание об оплате заказа с использованием одной из премиальных карт. Компания WEBPAY контролирует, чтобы оплата была произведена указанным типом карты.\n\n ### Описание механизма работы с промокодом VISA и MASTERCARD\n\nПлательщик на стороне поставщика услуг выражает свое желание об оплате заказа с использованием любой карты платежной системы VISA/MASTERCARD либо премиальной картой VISA. Компания WEBPAY контролирует, чтобы оплата была произведена указанной платежной системой либо указанным типом премиальной карты VISA.\nВ соответствии с выбранным типом платежной системы поставщик услуг определяет значение скидки и промокода.\nЕсли значение промокода передано и поставщик услуг участвует в скидочной программе VISA или MASTERCARD, то система WEBPAY проверяет карту плательщика на соответствие промокоду. Если найдено расхождение, то происходит запрет на проведение платежа.",
      "x-displayName": "Платежи с промокодами"
    },
    {
      "name": "eripPayment",
      "x-displayName": "Платежи ЕРИП"
    },
    {
      "name": "p2p_mtb",
      "description": "### Общее описание\n\nДля ввода и вывода денежных средств на Вашем сайте допускается использование плательщиком карт платежных систем MASTERCARD, VISA, БЕЛКАРТ. Типы карт, на которые может осуществляться вывод денежных средств, определяется банком-эквайером.\n\n> **Все операции вывода денежных средств осуществляются с обязательной привязкой к операции ввода.**\n\nДля осуществления операции ввода и привязки карты необходимо сформировать один из следующих типов запросов:\n * [Упрощенный платеж](https://docs.webpay.by/payment-json.html#tag/simplifiedPayment);\n * [Рекуррентный платеж](https://docs.webpay.by/payment-json.html#tag/recurrentPayment).\n\nВ ответе будет передан `transaction_id` для осуществления в дальнейшем по нему вывода.",
      "x-displayName": "P2P выплаты (МТБанк)"
    },
    {
      "name": "p2p_paritetbank",
      "description": "### Общее описание\n\nДля вывода денежных средств на Вашем сайте допускается использование плательщиком карт платежных систем MASTERCARD, VISA, БЕЛКАРТ, эмитированных любым белорусским банком, а также карт платежной системы МИР. Карты, эмитированные иностранными банками, недоступны для выплат согласно правилам платежных систем.",
      "x-displayName": "P2P - OCT выплаты (Паритетбанк)"
    },
    {
      "name": "paymentNotification",
      "description": "После успешной оплаты заказа покупатель может нажать кнопку **\"Вернуться на сайт\"**, в этом случае форма оплаты перенаправит его по URL-адресу, указанному в поле `wsb_return_url`.\n\nПри ошибке оплаты и нажатии кнопки **\"Назад\"** покупатель будет перенаправлен на URL-адрес, указанный в поле `wsb_cancel_return_url`.\n\nЕсли указанные выше адреса не были переданы в систему WEBPAY, то на платежной странице не будут отображены кнопки **\"Вернуться на сайт\"** и **\"Назад\"**.\n\nТакже система WEBPAY известит Интернет-ресурс о проведенной операции (по умолчанию только по успешным операциям) по адресу `wsb_notify_url` (если он указан в поле формы) либо на **\"URL для уведомлений\"**, значение которого можно установить в настройках биллинг-аккаунта в разделе меню **\"Настройки\" → \"Компания\"**.\n\nВ случае если адрес для получения нотификатора будет указан и в поле формы (`wsb_notify_url`), и в настройках биллинг-аккаунта, то будет использован адрес из запроса, указанный в поле `wsb_notify_url`.\n\nИнтернет-ресурс, в случае оповещения, должен ответить кодом **200** (\"HTTP/1.0 200 OK\"). Через 30 дней, если Интернет-ресурс так и не смог принять уведомление, отсылка запросов прекращается.\n\nПри разработке необходимо учесть, что может прийти как и извещение о платеже (`wsb_notify_url`), так и покупатель может вернуться на страницу Интернет-ресурса, указанную в поле (`wsb_return_url`).\n\nОтправка нотификаторов от системы WEBPAY осуществляется с адреса: **178.163.225.84**.",
      "x-displayName": "Нотификатор об оплате"
    },
    {
      "name": "Возврат плательщика на сайт мерчанта (wsb_return_url)"
    },
    {
      "name": "Возврат плательщика на сайт мерчанта (wsb_cancel_return_url)"
    },
    {
      "name": "Стандартный POST-запрос на wsb_notify_url"
    },
    {
      "name": "authentication",
      "description": "Перед началом работы с методами по управлению операциями необходимо осуществить аутентификацию в системе и получить `auth_token`.\n\n**ВАЖНО!!!**\n\n Время жизни токена - 20 минут.\n\n Все запросы по управлению операциями направляются по следующим адресам:\n\n - https://sandbox.webpay.by - для запросов к тестовой среде;\n\n - https://billing.webpay.by - для запросов к реальной среде.",
      "x-displayName": "Аутентификация"
    },
    {
      "name": "manageOperationMethods",
      "description": "При обращении к методам управления операциями в заголовке следует указывать `Authorization: Bearer {auth_token}`. `auth_token` должен быть получен в результате обращения к [методу](#operation/billingAuthentication). \n\n**ВАЖНО!!!**\n\n Все запросы по управлению операциями направляются по следующим адресам:\n\n - https://sandbox.webpay.by - для запросов к тестовой среде;\n\n - https://billing.webpay.by - для запросов к реальной среде.",
      "x-displayName": "Методы"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Виды платежей",
      "tags": [
        "standardPayment",
        "simplifiedPayment",
        "recurrentPayment",
        "installmentCardPayment",
        "promoCodesPayment",
        "eripPayment"
      ]
    },
    {
      "name": "Платежные модули выплат",
      "tags": ["p2p_mtb", "p2p_paritetbank"]
    },
    {
      "name": "Нотификаторы",
      "tags": ["paymentNotification"]
    },
    {
      "name": "Управление операциями",
      "tags": ["authentication", "manageOperationMethods"]
    }
  ]
}
