{
  "swagger": "2.0",
  "info": {
    "description": "",
    "version": "",
    "title": ""
  },
  "host": "",
  "basePath": "",
  "tags": [
    {
      "name": "Бонусный сервер",
      "description": "Показать/скрыть методы"
    }
  ],
  "paths": {
    "/rest/v1/accounts": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список счетов с бонусного сервера, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAccountsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "withCards",
            "in": "query",
            "description": "Указывать привязанные карты",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "number_starting",
            "in": "query",
            "description": "Искать счета, начинающиеся с...",
            "required": false,
            "type": "string"
          },
          {
            "name": "withBalance",
            "in": "query",
            "description": "Указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AccountExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Добавить счет на сервер",
        "operationId": "addAccountsUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "account",
            "description": "Добавляемый счет",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Account"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/accounts/bypage": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список счетов с бонусного сервера, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAccountsByPageUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "withCards",
            "in": "query",
            "description": "Указывать привязанные карты",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "number_starting",
            "in": "query",
            "description": "Искать счета, начинающиеся с...",
            "required": false,
            "type": "string"
          },
          {
            "name": "withBalance",
            "in": "query",
            "description": "Указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Page«AccountExtended»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/accounts/{number}": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить счет по его номеру",
        "operationId": "getAccountUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "Номер счета",
            "required": false,
            "type": "string"
          },
          {
            "name": "withCards",
            "in": "query",
            "description": "Указывать привязанные карты",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withoutBalance",
            "in": "query",
            "description": "Не указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AccountExtended"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAssetsUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Фильтр по номеру карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "accountNumber",
            "in": "query",
            "description": "Фильтр по номеру счета",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Фильтр по типу операций",
            "required": false,
            "type": "string",
            "enum": [
              "PAY",
              "BACK",
              "ADD",
              "SUB",
              "FIRED"
            ]
          },
          {
            "name": "withTransaction",
            "in": "query",
            "description": "Указывать транзакции",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "sortByTimeDescending",
            "in": "query",
            "description": "Сортировать по времени в порядке убывания времени",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeAscending",
            "in": "query",
            "description": "Сортировать по времени в порядке возрастания времени",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AssetExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Провести операцию",
        "operationId": "addAssetsUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "nonConfirm",
            "in": "query",
            "description": "Только зарезервировать средства (для закрытия транзакции нужно будет послать команду commit или rollback)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "cancelOthers",
            "in": "query",
            "description": "Аннулировать для счета все предыдущие транзакции",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "forceCancelOthers",
            "in": "query",
            "description": "Аннулировать для счета все предыдущие транзакции, игнорируя статус карты",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "in": "body",
            "name": "asset",
            "description": "asset",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Asset"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/back": {
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Провести операцию",
        "operationId": "backBonusByGroupsUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "nonConfirm",
            "in": "query",
            "description": "Только зарезервировать средства (для закрытия транзакции нужно будет послать команду commit или rollback)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "parentSessionId",
            "in": "query",
            "description": "SessionId операции оплаты(для возврата по чеку)",
            "required": false,
            "type": "string"
          },
          {
            "name": "fullReturn",
            "in": "query",
            "description": "Признак полного возврата по чеку продажи",
            "required": false,
            "type": "boolean"
          },
          {
            "in": "body",
            "name": "asset",
            "description": "asset",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Asset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/bypage": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAssetsByPageUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Фильтр по номеру карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "accountNumber",
            "in": "query",
            "description": "Фильтр по номеру счета",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Фильтр по типу операций",
            "required": false,
            "type": "string",
            "enum": [
              "PAY",
              "BACK",
              "ADD",
              "SUB",
              "FIRED"
            ]
          },
          {
            "name": "withTransaction",
            "in": "query",
            "description": "Указывать транзакции",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "sortByTimeDescending",
            "in": "query",
            "description": "Сортировать по времени в порядке убывания времени",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeAscending",
            "in": "query",
            "description": "Сортировать по времени в порядке возрастания времени",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Page«AssetExtended»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/bypage/date-range": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций с временными границами, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAssetsByPageUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Фильтр по номеру карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "accountNumber",
            "in": "query",
            "description": "Фильтр по номеру счета",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Фильтр по типу операций",
            "required": false,
            "type": "string",
            "enum": [
              "PAY",
              "BACK",
              "ADD",
              "SUB",
              "FIRED"
            ]
          },
          {
            "name": "withTransaction",
            "in": "query",
            "description": "Указывать транзакции",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "sortByTimeDescending",
            "in": "query",
            "description": "Сортировать по времени в порядке убывания времени",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeAscending",
            "in": "query",
            "description": "Сортировать по времени в порядке возрастания времени",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Начальная граница для учета начислений/списаний",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Конечная граница для учета начислений/списаний",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Page«AssetExtended»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/date-range": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций с временными границами, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAssetsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Фильтр по номеру карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Начальная граница для учета начислений/списаний",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Конечная граница для учета начислений/списаний",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Смещение записей",
            "required": false,
            "type": "integer",
            "default": 0,
            "format": "int32"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Количество записей",
            "required": false,
            "type": "integer",
            "default": 500,
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AssetExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/with-fired": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций вместе с сгоревшими начислениями",
        "operationId": "getAssetWithFiredUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Фильтр по номеру карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "accountNumber",
            "in": "query",
            "description": "Фильтр по номеру счета",
            "required": false,
            "type": "string"
          },
          {
            "name": "withTransaction",
            "in": "query",
            "description": "Указывать транзакции(начислений/списаний)",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeDescending",
            "in": "query",
            "description": "Сортировать по времени в порядке убывания",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeAscending",
            "in": "query",
            "description": "Сортировать по времени в порядке возрастания",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "Начальная граница для учета начислений/списаний/сгораний",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "Конечная граница для учета начислений/списаний/сгораний",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AssetExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/{parentSessionId}/revertEarn": {
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Произвести операцию, обратную начислению, по sessionId",
        "operationId": "revertEarnAssetUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "parentSessionId",
            "in": "path",
            "description": "Идентификатор родительской операции, для которой будет создана обратная",
            "required": false,
            "type": "string"
          },
          {
            "in": "body",
            "name": "revertAsset",
            "description": "Параметры для добавляемой обратной операции",
            "required": false,
            "schema": {
              "$ref": "#/definitions/RevertAsset"
            }
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/{sessionId}": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить операции по идентификатору операции (их может быть несколько, если производилась оплата)",
        "operationId": "getAssetUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "Идентификатор операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "withoutTransaction",
            "in": "query",
            "description": "Не указывать транзакции",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AssetExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/{sessionId}/cancel": {
      "put": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Отменить операцию",
        "operationId": "cancelAssetUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "Идентификатор операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/{sessionId}/commit": {
      "put": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Закрыть операцию потдверждением ее воздействия.",
        "operationId": "commitAssetUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "Идентификатор операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/assets/{sessionId}/rollback": {
      "put": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Закрыть операцию отменой ее воздействия.",
        "operationId": "rollbackAssetUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "description": "Идентификатор операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionReason",
            "in": "query",
            "description": "Установить причину проведения операции",
            "required": false,
            "type": "string"
          },
          {
            "name": "transactionSource",
            "in": "query",
            "description": "Установить источник проведения операции",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/card/account/move": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Привязать карту и все транзакции к другому аккаунту",
        "operationId": "moveTheCardToTheAccountUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "query",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "accountNumber",
            "in": "query",
            "description": "Номер счета",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          },
          {
            "ROLE_TERMINAL": []
          }
        ]
      }
    },
    "/rest/v1/card/related_cards": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить короткую информацию по счетам",
        "operationId": "getShortRelatedCardsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumbers",
            "in": "query",
            "description": "Номера карт",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Card"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          },
          {
            "ROLE_TERMINAL": []
          }
        ]
      }
    },
    "/rest/v1/cards": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список карт с бонусного сервера, без параметров пейджинации - максимально 500 записей",
        "operationId": "getCardsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "forNumbers",
            "in": "query",
            "description": "Получить информацию только для тех номеров карт, которые указаны в параметре через запятую, не более 100 номеров",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "number_starting",
            "in": "query",
            "description": "Искать карты, начинающиеся с...",
            "required": false,
            "type": "string"
          },
          {
            "name": "withBalance",
            "in": "query",
            "description": "Указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CardExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Добавить карту на сервер",
        "operationId": "addCardUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "card",
            "description": "Добавляемая карта",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Card"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/cards/bypage": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список карт с бонусного сервера, без параметров пейджинации - максимально 500 записей",
        "operationId": "getCardsByPageUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "forNumbers",
            "in": "query",
            "description": "Получить информацию только для тех номеров карт, которые указаны в параметре через запятую, не более 100 номеров",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "number_starting",
            "in": "query",
            "description": "Искать карты, начинающиеся с...",
            "required": false,
            "type": "string"
          },
          {
            "name": "withBalance",
            "in": "query",
            "description": "Указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Page«CardExtended»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/cards/{number}": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить карту по ее номеру",
        "operationId": "getCardUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "withoutBalance",
            "in": "query",
            "description": "Не указывать баланс",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "withAcceptedBalance",
            "in": "query",
            "description": "Указывать информацию о начислениях по срокам действия, выводится только с балансом",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/CardExtended"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "put": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Поменять карту (привязку к счету или статус)",
        "operationId": "updateCardUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          },
          {
            "in": "body",
            "name": "card",
            "description": "Добавляемая карта",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Card"
            }
          },
          {
            "name": "forceBindAccount",
            "in": "query",
            "description": "Привязать счет, даже если к карте уже привязан другой счет",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/cards/{number}/assets": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список операций для карты по ее номеру, без параметров пейджинации - максимально 500 записей",
        "operationId": "getAssetsForCardUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          },
          {
            "name": "withTransaction",
            "in": "query",
            "description": "Указывать транзакции",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "onlyForCard",
            "in": "query",
            "description": "Показать транзакции, проведенные только по карте",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Номер страницы данных, которые нужно отобразить",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Количество записей в каждой странице",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "sortByTimeDescending",
            "in": "query",
            "description": "Сортировать по времени в порядке убывания времени",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "sortByTimeAscending",
            "in": "query",
            "description": "Сортировать по времени в порядке возрастания времени",
            "required": false,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AssetExtended"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/expiringBonuses": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить список сущностей с информацией об истекающих бонусах, необходимые для сервиса рассылок",
        "operationId": "getAccountingExpiringBonusEntriesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "daysBefore",
            "in": "query",
            "description": "Дней до сгорания",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AccountingExpiringBonusEntry"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/pincode": {
      "post": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Привязать пинкод к карте",
        "operationId": "savePincodeUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "pincode",
            "description": "pincode",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Pincode"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "put": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Изменить пинкод для карты",
        "operationId": "updatePincodeUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "pincode",
            "description": "pincode",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Pincode"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/pincode/{cardNumber}": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить пинкод по номеру карты",
        "operationId": "getPincodeByCardNumberUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "path",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Удалить пинкод по номеру карты",
        "operationId": "deletePincodeByCardNumberUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "cardNumber",
            "in": "path",
            "description": "Номер карты",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ROLE_TERMINAL": []
          },
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/settings": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Показать настройки Accounting-сервера.",
        "operationId": "getSettingsUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/AccountingSettings"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "ROLE_ADMIN": []
          }
        ]
      }
    },
    "/rest/v1/version": {
      "get": {
        "tags": [
          "Бонусный сервер"
        ],
        "summary": "Получить информацию о версии сервиса",
        "operationId": "versionUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Version"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    }
  },
  "definitions": {
    "AcceptedBalance": {
      "type": "object",
      "properties": {
        "acceptId": {
          "type": "string",
          "description": "Идентификатор, по которому устанавливались временные ограничения действия бонусов",
          "allowEmptyValue": false
        },
        "acceptWeight": {
          "type": "integer",
          "format": "int32",
          "description": "Число, указывающее порядок применения начислений данной транзакции - операции с большим числом будут иметь приоритет при операциях списывания",
          "allowEmptyValue": false
        },
        "balance": {
          "type": "integer",
          "format": "int64",
          "description": "Доступные средства по данной группе начислений",
          "allowEmptyValue": false
        },
        "balanceInactive": {
          "type": "integer",
          "format": "int64",
          "description": "Неактивированные средства по данной группе начислений",
          "allowEmptyValue": false
        },
        "timeBeginAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeEndAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        }
      },
      "title": "AcceptedBalance",
      "description": "Информация о балансе разделенная по времени применения и сгорания"
    },
    "Account": {
      "type": "object",
      "properties": {
        "accountId": {
          "type": "string"
        },
        "number": {
          "type": "string"
        }
      },
      "title": "Account",
      "description": "Информация о счете"
    },
    "AccountExtended": {
      "type": "object",
      "properties": {
        "acceptedBalances": {
          "type": "array",
          "description": "Список доступных начилений, сгруппированных по времени их действия",
          "allowEmptyValue": false,
          "items": {
            "$ref": "#/definitions/AcceptedBalance"
          }
        },
        "balance": {
          "type": "integer",
          "format": "int64",
          "description": "Текущий баланс счета",
          "allowEmptyValue": false
        },
        "balanceInactive": {
          "type": "integer",
          "format": "int64",
          "description": "Неактивированный баланс счета",
          "allowEmptyValue": false
        },
        "cards": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CardExtended"
          }
        },
        "number": {
          "type": "string"
        }
      },
      "title": "AccountExtended",
      "description": "Информация о счете"
    },
    "AccountingExpiringBonusEntry": {
      "type": "object",
      "properties": {
        "amountBurn": {
          "type": "integer",
          "format": "int64"
        },
        "assetIds": {
          "type": "string"
        },
        "dateBeg": {
          "type": "string",
          "format": "date-time"
        },
        "dateEnd": {
          "type": "string",
          "format": "date-time"
        },
        "idCard": {
          "type": "string"
        }
      },
      "title": "AccountingExpiringBonusEntry"
    },
    "AccountingSettings": {
      "type": "object",
      "properties": {
        "acceptAssetGroupChangedCron": {
          "type": "string"
        },
        "acceptAssetGroupChangedPath": {
          "type": "string"
        },
        "acceptCreateAccountByCard": {
          "type": "boolean"
        },
        "acceptOverdraftBack": {
          "type": "boolean"
        },
        "acceptOverdraftPay": {
          "type": "boolean"
        },
        "accountingChangeBalanceEventEnabled": {
          "type": "boolean"
        },
        "accountingChangeBalanceEventMongodbDatabase": {
          "type": "string"
        },
        "accountingChangeBalanceEventMongodbUri": {
          "type": "string"
        },
        "accountingChangeBalanceEventProtocolVersion": {
          "type": "string"
        },
        "accountingChangeBalanceEventSendBalance": {
          "type": "boolean"
        },
        "accountingRestAuditBodyMaxLength": {
          "type": "integer",
          "format": "int32"
        },
        "accountingRestAuditEnabled": {
          "type": "boolean"
        },
        "accountingRestAuditFilterMethods": {
          "type": "string"
        },
        "accountingRestAuditFilterPrefixPaths": {
          "type": "string"
        },
        "autoCloseTransactionCron": {
          "type": "string"
        },
        "autoCloseTransactionScriptPath": {
          "type": "string"
        },
        "autoCloseTransactionTime": {
          "type": "integer",
          "format": "int32"
        },
        "backAssetGroupId": {
          "type": "string"
        },
        "backAssetLifeTime": {
          "type": "integer",
          "format": "int32"
        },
        "backAssetLifeWeight": {
          "type": "integer",
          "format": "int32"
        },
        "balanceMapReduceScriptPath": {
          "type": "string"
        },
        "bonusesFiredBeforeDateMonthBegin": {
          "type": "integer",
          "format": "int32"
        },
        "bonusesFiredOnDateMonthBegin": {
          "type": "integer",
          "format": "int32"
        },
        "checkPincode": {
          "type": "boolean"
        },
        "checkTransactionOlderThenDays": {
          "type": "integer",
          "format": "int32"
        },
        "considerCloseTransactionAfterTimeout": {
          "type": "boolean"
        },
        "correctAssetsScriptPath": {
          "type": "string"
        },
        "correctionAssetCron": {
          "type": "string"
        },
        "countOfErrorIteration": {
          "type": "integer",
          "format": "int32"
        },
        "createEreCalculationBalanceTableCron": {
          "type": "string"
        },
        "defaultAssetGroupId": {
          "type": "string"
        },
        "defaultAssetGroupWeight": {
          "type": "integer",
          "format": "int32"
        },
        "defaultCardStatus": {
          "type": "string",
          "enum": [
            "ACTIVE",
            "BLOCKED",
            "WITHDRAWAL",
            "ANONYMOUS_CARD",
            "EARN_PAY",
            "NO_OPERATION",
            "EARN_ONLY",
            "PAY_ONLY"
          ]
        },
        "earnedPolicy": {
          "type": "integer",
          "format": "int32"
        },
        "fireOlderBonusesCron": {
          "type": "string"
        },
        "fireOlderBonusesScriptPath": {
          "type": "string"
        },
        "overdraftAmount": {
          "type": "integer",
          "format": "int64"
        },
        "payOnlyInFirstPayStore": {
          "type": "boolean"
        },
        "payedPolicy": {
          "type": "integer",
          "format": "int32"
        },
        "secondsBetweenRemoveRecords": {
          "type": "integer",
          "format": "int64"
        },
        "secondsEreCalculationsBalance": {
          "type": "integer",
          "format": "int64"
        },
        "serviceTerminalId": {
          "type": "string"
        },
        "useCorrectReverseOperation": {
          "type": "boolean"
        },
        "useUsersTable": {
          "type": "boolean"
        }
      },
      "title": "AccountingSettings"
    },
    "Asset": {
      "type": "object",
      "properties": {
        "acceptId": {
          "type": "string",
          "description": "Идентификатор, по которому устанавливались временные ограничения действия бонусов",
          "allowEmptyValue": false
        },
        "acceptWeight": {
          "type": "integer",
          "format": "int32",
          "description": "Число, указывающее порядок применения начислений данной транзакции - операции с большим числом будут иметь приоритет при операциях списывания",
          "allowEmptyValue": false
        },
        "additionalInfo": {
          "type": "object",
          "description": "Дополнительная информация об операции, полезна для анализа",
          "allowEmptyValue": false,
          "additionalProperties": {
            "type": "string"
          }
        },
        "amount": {
          "type": "integer",
          "format": "int64",
          "description": "Сумма в копейках",
          "allowEmptyValue": false
        },
        "cardNumber": {
          "type": "string",
          "description": "Номер карты",
          "allowEmptyValue": false
        },
        "sessionId": {
          "type": "string",
          "description": "Уникальный идентификатор операции",
          "allowEmptyValue": false
        },
        "timeBeginAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeEndAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeFromCash": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "type": {
          "type": "string",
          "description": "Тип операции",
          "allowEmptyValue": false,
          "enum": [
            "PAY",
            "BACK",
            "ADD",
            "SUB",
            "FIRED"
          ]
        }
      },
      "title": "Asset",
      "description": "Данные об операции"
    },
    "AssetExtended": {
      "type": "object",
      "properties": {
        "acceptId": {
          "type": "string",
          "description": "Идентификатор, по которому устанавливались временные ограничения действия бонусов",
          "allowEmptyValue": false
        },
        "acceptWeight": {
          "type": "integer",
          "format": "int32",
          "description": "Число, указывающее порядок применения начислений данной транзакции - операции с большим числом будут иметь приоритет при операциях списывания",
          "allowEmptyValue": false
        },
        "accountNumber": {
          "type": "string",
          "description": "Номер счета",
          "allowEmptyValue": false
        },
        "additionalInfo": {
          "type": "object",
          "description": "Дополнительная информация об операции, полезна для анализа",
          "allowEmptyValue": false,
          "additionalProperties": {
            "type": "string"
          }
        },
        "amount": {
          "type": "integer",
          "format": "int64",
          "description": "Сумма в копейках",
          "allowEmptyValue": false
        },
        "assetTransactions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssetTransaction"
          }
        },
        "cardNumber": {
          "type": "string",
          "description": "Номер карты",
          "allowEmptyValue": false
        },
        "lastReason": {
          "type": "string"
        },
        "lastSource": {
          "type": "string"
        },
        "sessionId": {
          "type": "string",
          "description": "Уникальный идентификатор операции",
          "allowEmptyValue": false
        },
        "state": {
          "type": "string",
          "description": "Последнее состояние операции",
          "allowEmptyValue": false,
          "enum": [
            "NON_CONFIRMED",
            "COMMITED",
            "CANCELLED"
          ]
        },
        "terminalId": {
          "type": "string",
          "description": "Терминал, с которого был произведен запрос на первичное проведение операции",
          "allowEmptyValue": false
        },
        "time": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeBeginAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeEndAccept": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "timeFromCash": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "type": {
          "type": "string",
          "description": "Тип операции",
          "allowEmptyValue": false,
          "enum": [
            "PAY",
            "BACK",
            "ADD",
            "SUB",
            "FIRED"
          ]
        }
      },
      "title": "AssetExtended",
      "description": "Данные об операции"
    },
    "AssetTransaction": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "description": "Последнее состояние операции",
          "allowEmptyValue": false,
          "enum": [
            "NON_CONFIRMED",
            "COMMITED",
            "CANCELLED"
          ]
        },
        "terminalId": {
          "type": "string",
          "description": "Терминал, с которого был произведен запрос на первичное проведение операции",
          "allowEmptyValue": false
        },
        "time": {
          "type": "string",
          "example": "2019-04-23T22:22:44.134+0700",
          "allowEmptyValue": false
        },
        "transactionReason": {
          "type": "string",
          "description": "Причина проведения транзакции",
          "allowEmptyValue": false
        },
        "transactionSource": {
          "type": "string"
        }
      },
      "title": "AssetTransaction"
    },
    "Card": {
      "type": "object",
      "properties": {
        "account": {
          "$ref": "#/definitions/Account"
        },
        "accountNumber": {
          "type": "string",
          "description": "Номер счета, к которому привязана данная карта",
          "allowEmptyValue": false
        },
        "additionalStatus": {
          "type": "string",
          "description": "Дополнительный статус карты",
          "allowEmptyValue": false
        },
        "cardOperations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CardTransaction"
          }
        },
        "idcard": {
          "type": "string"
        },
        "lastKnownBonusBalance": {
          "type": "number"
        },
        "lastKnownBonusBalanceDate": {
          "type": "string",
          "format": "date-time"
        },
        "number": {
          "type": "string",
          "description": "Номер карты",
          "allowEmptyValue": false
        },
        "status": {
          "type": "string",
          "description": "Текущий статус карты",
          "allowEmptyValue": false,
          "enum": [
            "EARN_PAY",
            "NO_OPERATION",
            "EARN_ONLY",
            "PAY_ONLY"
          ]
        }
      },
      "title": "Card",
      "description": "Информация о карте"
    },
    "CardExtended": {
      "type": "object",
      "properties": {
        "acceptedBalances": {
          "type": "array",
          "description": "Список доступных начилений, сгруппированных по времени их действия",
          "allowEmptyValue": false,
          "items": {
            "$ref": "#/definitions/AcceptedBalance"
          }
        },
        "accountNumber": {
          "type": "string",
          "description": "Номер счета, к которому привязана данная карта",
          "allowEmptyValue": false
        },
        "additionalStatus": {
          "type": "string",
          "description": "Дополнительный статус карты",
          "allowEmptyValue": false
        },
        "balance": {
          "type": "integer",
          "format": "int64",
          "description": "Текущий баланс привязанного счета",
          "allowEmptyValue": false
        },
        "balanceInactive": {
          "type": "integer",
          "format": "int64",
          "description": "Неактивированный баланс привязанного счета",
          "allowEmptyValue": false
        },
        "number": {
          "type": "string",
          "description": "Номер карты",
          "allowEmptyValue": false
        },
        "status": {
          "type": "string",
          "description": "Текущий статус карты",
          "allowEmptyValue": false,
          "enum": [
            "EARN_PAY",
            "NO_OPERATION",
            "EARN_ONLY",
            "PAY_ONLY"
          ]
        }
      },
      "title": "CardExtended",
      "description": "Информация о карте"
    },
    "CardTransaction": {
      "type": "object",
      "properties": {
        "accountNumber": {
          "type": "string"
        },
        "card": {
          "$ref": "#/definitions/Card"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "operationDate": {
          "type": "string",
          "format": "date-time"
        },
        "status": {
          "type": "string",
          "enum": [
            "ACTIVE",
            "BLOCKED",
            "WITHDRAWAL",
            "ANONYMOUS_CARD",
            "EARN_PAY",
            "NO_OPERATION",
            "EARN_ONLY",
            "PAY_ONLY"
          ]
        },
        "terminal": {
          "$ref": "#/definitions/Terminal"
        }
      },
      "title": "CardTransaction"
    },
    "Page«AccountExtended»": {
      "type": "object",
      "properties": {
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AccountExtended"
          }
        },
        "first": {
          "type": "boolean"
        },
        "last": {
          "type": "boolean"
        },
        "number": {
          "type": "integer",
          "format": "int32"
        },
        "numberOfElements": {
          "type": "integer",
          "format": "int32"
        },
        "size": {
          "type": "integer",
          "format": "int32"
        },
        "sort": {
          "$ref": "#/definitions/Sort"
        },
        "totalElements": {
          "type": "integer",
          "format": "int64"
        },
        "totalPages": {
          "type": "integer",
          "format": "int32"
        }
      },
      "title": "Page«AccountExtended»"
    },
    "Page«AssetExtended»": {
      "type": "object",
      "properties": {
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssetExtended"
          }
        },
        "first": {
          "type": "boolean"
        },
        "last": {
          "type": "boolean"
        },
        "number": {
          "type": "integer",
          "format": "int32"
        },
        "numberOfElements": {
          "type": "integer",
          "format": "int32"
        },
        "size": {
          "type": "integer",
          "format": "int32"
        },
        "sort": {
          "$ref": "#/definitions/Sort"
        },
        "totalElements": {
          "type": "integer",
          "format": "int64"
        },
        "totalPages": {
          "type": "integer",
          "format": "int32"
        }
      },
      "title": "Page«AssetExtended»"
    },
    "Page«CardExtended»": {
      "type": "object",
      "properties": {
        "content": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CardExtended"
          }
        },
        "first": {
          "type": "boolean"
        },
        "last": {
          "type": "boolean"
        },
        "number": {
          "type": "integer",
          "format": "int32"
        },
        "numberOfElements": {
          "type": "integer",
          "format": "int32"
        },
        "size": {
          "type": "integer",
          "format": "int32"
        },
        "sort": {
          "$ref": "#/definitions/Sort"
        },
        "totalElements": {
          "type": "integer",
          "format": "int64"
        },
        "totalPages": {
          "type": "integer",
          "format": "int32"
        }
      },
      "title": "Page«CardExtended»"
    },
    "Pincode": {
      "type": "object",
      "properties": {
        "number": {
          "type": "string"
        },
        "pincode": {
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "Pincode"
    },
    "RevertAsset": {
      "type": "object",
      "properties": {
        "additionalInfo": {
          "type": "object",
          "description": "Дополнительная информация об операции, полезна для анализа, ключом НЕ могут быть значения: parentSessionId, dateFromCash, correctAsset, dateFromCash",
          "allowEmptyValue": false,
          "additionalProperties": {
            "type": "string"
          }
        },
        "amount": {
          "type": "integer",
          "format": "int64",
          "description": "Сумма в копейках, на которую нужно провести обратную операцию, не может быть больше суммы первоначальной операции",
          "allowEmptyValue": false
        },
        "cardNumber": {
          "type": "string",
          "description": "Номер карты",
          "allowEmptyValue": false
        },
        "sessionId": {
          "type": "string",
          "description": "Уникальный идентификатор создаваемой операции, можно не указывать, тогда будет сгенерирован на основе UUID",
          "allowEmptyValue": false
        }
      },
      "title": "RevertAsset",
      "description": "Обратная операция (для проведения возвратов по sessionId)"
    },
    "Sort": {
      "type": "object",
      "title": "Sort"
    },
    "Terminal": {
      "type": "object",
      "properties": {
        "blocked": {
          "type": "boolean"
        },
        "terminalId": {
          "type": "string"
        }
      },
      "title": "Terminal"
    },
    "Version": {
      "type": "object",
      "properties": {
        "buildDate": {
          "type": "string",
          "description": "Дата сборки",
          "allowEmptyValue": false
        },
        "info": {
          "type": "string",
          "description": "Информация",
          "allowEmptyValue": false
        },
        "restRevision": {
          "type": "integer",
          "format": "int32",
          "description": "Версия ревизии в изменении rest:v1",
          "allowEmptyValue": false
        },
        "serverMode": {
          "type": "string",
          "enum": [
            "FULL_MODE",
            "LIGHT_MODE"
          ]
        },
        "serverType": {
          "type": "string",
          "enum": [
            "BONUSES",
            "CERTIFICATES",
            "BONUSES_CERTIFICATES",
            "COUPONS"
          ]
        },
        "version": {
          "type": "string",
          "description": "Версия сборки",
          "allowEmptyValue": false
        }
      },
      "title": "Version"
    }
  }
}