Skip to main content

Payroll

OpenAPI 1.0.0

### Справочник кодов ошибок API Полный список кодов ошибок с подробными описаниями: [payroll-statement-api-errors-detailed.pdf](https://cdn.rbo.raiffeisen.ru/fs/cashmanagement/payroll-statement-api-errors-detailed.pdf)

Скачать исходную спецификацию

Варианты

  • Public

Операции API

POST /v1/statements — Create statement

Метод используется для создания как подписанных, так и неподписанных ведомостей. Для неподписанной ведомости: - Поля signatures и digest передавать не нужно - Ведомость потребует подписания в онлайн-банке Для подписанной ведомости: - Необходимо передать поля signatures и digest - При наличии подписи (всех подписей) согласно настроенной схеме подписи, ведомость будет автоматически отправлена на исполнение Один и тот же сертификат подписи НЕ МОЖЕТ использоваться: - разными людьми в одной компании - одним человеком в рамках одной компании, но с разными типами подписей (например, "ПЕРВАЯ", "ВТОРАЯ") Это связано с ограничениями полномочий, закреплённых за сертификатом. Пример формирования короткой подписи: [тут](https://github.com/Raiffeisen-DGTL/data-signing/blob/main/src/main/java/ru/raiffeisen/signing/ShortSignatureGenerationExample.java) (также подробности в Readme проекта) Защита от дублирования. Поле externalId используется как уникальный идентификатор ведомости в разрезе одной компании. При повторной отправке запроса с тем же externalId вторая ведомость не будет создана — метод вернёт ошибку 400 с сообщением "Ведомость с данным externalId уже существует." ### Ограничения Максимальное количество переводов в ведомости: 10 000 При превышении лимита вернется ошибка `400 Bad Request` с кодом `transfers` и сообщением `transfers must contain no more than 10000 elements`.

{
  "description": "Метод используется для создания как подписанных, так и неподписанных ведомостей.\n\nДля неподписанной ведомости:\n- Поля signatures и digest передавать не нужно\n- Ведомость потребует подписания в онлайн-банке\n\nДля подписанной ведомости:\n- Необходимо передать поля signatures и digest\n- При наличии подписи (всех подписей) согласно настроенной схеме подписи, ведомость будет автоматически отправлена на исполнение\n\nОдин и тот же сертификат подписи НЕ МОЖЕТ использоваться:\n- разными людьми в одной компании\n- одним человеком в рамках одной компании, но с разными типами подписей (например, \"ПЕРВАЯ\", \"ВТОРАЯ\")\n\nЭто связано с ограничениями полномочий, закреплённых за сертификатом.\n\nПример формирования короткой подписи: [тут](https://github.com/Raiffeisen-DGTL/data-signing/blob/main/src/main/java/ru/raiffeisen/signing/ShortSignatureGenerationExample.java) (также подробности в Readme проекта)\n\nЗащита от дублирования. Поле externalId используется как уникальный идентификатор ведомости в разрезе одной компании. При повторной отправке запроса с тем же externalId вторая ведомость не будет создана — метод вернёт ошибку 400 с сообщением \"Ведомость с данным externalId уже существует.\"\n\n### Ограничения\n\nМаксимальное количество переводов в ведомости: 10 000\n\nПри превышении лимита вернется ошибка `400 Bad Request` с кодом `transfers` и сообщением `transfers must contain no more than 10000 elements`.\n",
  "operationId": "create-statement",
  "parameters": [
    {
      "$ref": "#/components/parameters/AuthorizationHeader"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CreateStatementRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "202": {
      "content": {
        "application/json": {
          "example": {
            "externalId": "45d16dd7-feda-4022-821c-7f4271a49294"
          },
          "schema": {
            "$ref": "#/components/schemas/CreateStatementResponse"
          }
        }
      },
      "description": "Accepted"
    },
    "400": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "enrollmentCode",
                "message": "Исправьте вид зачисления, выбрав нужный из справочника"
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Bad request"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "description": "Forbidden"
    },
    "404": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "account",
                "message": "Указанный счет не найден у компании."
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Not Found"
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  },
  "security": [
    {
      "BearerAuth": []
    },
    {
      "RaifApiAuthorization": [],
      "RaifApiIdToken": []
    }
  ],
  "servers": [
    {
      "url": "https://api.raiffeisen.ru/payroll"
    }
  ],
  "summary": "Create statement",
  "tags": [
    "payroll-statements-methods"
  ]
}

GET /v1/statements/{externalId} — Get statement processing status

Must be called if the status returned in response to the statement creation request is not final

{
  "description": "Must be called if the status returned in response to the statement creation request is not final",
  "operationId": "get-statement-status",
  "parameters": [
    {
      "$ref": "#/components/parameters/ExternalId"
    },
    {
      "$ref": "#/components/parameters/AuthorizationHeader"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "P20",
                "message": "Проверьте БИК и укажите правильный. Длина должна быть 9 цифр."
              }
            ],
            "externalId": "8c0bcca2-6571-4880-a1c2-10690200be9f",
            "message": null,
            "status": "ERROR",
            "warnings": [
              {
                "code": "P11",
                "message": "Заполните поле «Вид дохода», выбрав нужное значение."
              }
            ]
          },
          "schema": {
            "$ref": "#/components/schemas/StatementStatusResponse"
          }
        }
      },
      "description": "OK"
    },
    "400": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "externalId",
                "message": "must match \\\"^[a-z0-9\\\\-]+$\\\""
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Bad request"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "externalId",
                "message": "Ведомости с таким идентификатором не существует."
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Not Found"
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  },
  "security": [
    {
      "BearerAuth": []
    },
    {
      "RaifApiAuthorization": [],
      "RaifApiIdToken": []
    }
  ],
  "servers": [
    {
      "url": "https://api.raiffeisen.ru/payroll"
    }
  ],
  "summary": "Get statement processing status",
  "tags": [
    "payroll-statements-methods"
  ]
}

GET /v1/statements/{externalId}/transfers — Get a list of transfers by statement

Get a paginated list of transfers by statement with their statuses

{
  "description": "Get a paginated list of transfers by statement with their statuses",
  "operationId": "get-statement-transfers",
  "parameters": [
    {
      "$ref": "#/components/parameters/ExternalId"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/AuthorizationHeader"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "example": {
            "externalId": "45d16dd7-feda-4022-821c-7f4271a49294",
            "limit": 10,
            "offset": 0,
            "totalCount": 3,
            "transfers": [
              {
                "message": "Счет сотрудника не найден в банке",
                "orderNumber": 1,
                "status": "DECLINED"
              },
              {
                "message": "Некорректно указан БИК",
                "orderNumber": 2,
                "status": "DECLINED"
              },
              {
                "orderNumber": 3,
                "status": "EXECUTED"
              }
            ]
          },
          "schema": {
            "$ref": "#/components/schemas/StatementTransfersResponse"
          }
        }
      },
      "description": "OK"
    },
    "400": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "externalId",
                "message": "must match \\\"^[a-z0-9\\\\-]+$\\\""
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Bad request"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "content": {
        "application/json": {
          "example": {
            "errors": [
              {
                "code": "externalId",
                "message": "Ведомости с таким идентификатором не существует."
              }
            ],
            "traceId": "84b19a21e19410b62c30b4cd40c228a1"
          },
          "schema": {
            "$ref": "#/components/schemas/ErrorResponse"
          }
        }
      },
      "description": "Not Found"
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  },
  "security": [
    {
      "BearerAuth": []
    },
    {
      "RaifApiAuthorization": [],
      "RaifApiIdToken": []
    }
  ],
  "servers": [
    {
      "url": "https://api.raiffeisen.ru/payroll"
    }
  ],
  "summary": "Get a list of transfers by statement",
  "tags": [
    "payroll-statements-methods"
  ]
}

Схемы и примеры

{
  "parameters": {
    "AuthorizationHeader": {
      "description": "Токен доступа",
      "in": "header",
      "name": "Authorization",
      "required": true,
      "schema": {
        "example": "Bearer QXV0aG9yaXphdGlvbiBIZWFkZXIgRm9yIFRlc3Rpbmc=",
        "format": "byte",
        "type": "string"
      }
    },
    "ExternalId": {
      "description": "Уникальный идентификатор ведомости во внешней системе",
      "example": "8c0bcca2-6571-4880-a1c2-10690200be9f",
      "in": "path",
      "name": "externalId",
      "required": true,
      "schema": {
        "maxLength": 40,
        "minLength": 1,
        "pattern": "^[a-z0-9\\-]+$",
        "type": "string"
      }
    },
    "IdTokenHeader": {
      "description": "Идентификационный токен пользователя",
      "in": "header",
      "name": "Id-Token",
      "required": true,
      "schema": {
        "example": "SUQgVE9LRU4gRk9SIFRFU1RJTkc=",
        "format": "byte",
        "type": "string"
      }
    },
    "Limit": {
      "description": "Ограничение количества элементов на странице",
      "example": 30,
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
        "default": 10,
        "type": "integer"
      }
    },
    "Offset": {
      "description": "Смещение для пагинации",
      "example": 0,
      "in": "query",
      "name": "offset",
      "required": false,
      "schema": {
        "default": 0,
        "type": "integer"
      }
    }
  },
  "responses": {
    "InternalError": {
      "description": "Внутренняя ошибка"
    },
    "Unauthorized": {
      "description": "Аутентификация не пройдена"
    }
  },
  "schemas": {
    "ConversionCurrency": {
      "description": "Буквенный код валюты",
      "enum": [
        "USD",
        "EUR",
        "CNY"
      ],
      "example": "CNY",
      "maxLength": 3,
      "minLength": 3,
      "type": "string"
    },
    "ConversionPercent": {
      "description": "Массив процентов конвертации в валюту (в ведомости может быть максимум 2 валюты)",
      "properties": {
        "currency": {
          "$ref": "#/components/schemas/ConversionCurrency"
        },
        "percent": {
          "description": "Процент конвертации в валюте",
          "example": 20,
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "percent",
        "currency"
      ],
      "type": "object"
    },
    "ConversionRate": {
      "properties": {
        "currency": {
          "$ref": "#/components/schemas/ConversionCurrency"
        },
        "rate": {
          "description": "Курс конвертации в валюте",
          "example": 12.03,
          "exclusiveMinimum": true,
          "format": "double",
          "minimum": 0,
          "type": "number"
        }
      },
      "required": [
        "rate",
        "currency"
      ],
      "type": "object"
    },
    "CreateStatementRequest": {
      "properties": {
        "digest": {
          "description": "Дайджест (хеш-сумма) содержимого payload.\n\nКогда заполнять:\n- Если создаёте подписанную ведомость — укажите дайджест\n- Если создаёте неподписанную ведомость — поле не нужно передавать в запросе\n",
          "example": "U7yPt0F4lS8xaN0ZXdLpREtXm+p0697FRRHrJbVSvlY=",
          "type": "string"
        },
        "payload": {
          "$ref": "#/components/schemas/StatementPayload"
        },
        "signatures": {
          "description": "Массив всех подписей, необходимых для подписания ведомости.\n\nКогда заполнять:\n- Если создаёте подписанную ведомость — укажите все подписи согласно схеме подписи\n- Если создаёте неподписанную ведомость — поле не нужно передавать в запросе\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "payload"
      ],
      "type": "object"
    },
    "CreateStatementResponse": {
      "properties": {
        "externalId": {
          "$ref": "#/components/schemas/ExternalId"
        }
      },
      "required": [
        "externalId"
      ],
      "type": "object"
    },
    "Currency": {
      "description": "Буквенный код валюты счета-получателя сотрудника",
      "enum": [
        "RUR"
      ],
      "example": "RUR",
      "maxLength": 3,
      "minLength": 3,
      "type": "string"
    },
    "Error": {
      "properties": {
        "code": {
          "description": "Код ошибки",
          "example": "P20",
          "type": "string"
        },
        "message": {
          "description": "Текст ошибки",
          "example": "Проверьте БИК и укажите правильный. Длина должна быть 9 цифр.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object"
    },
    "ErrorResponse": {
      "properties": {
        "errors": {
          "items": {
            "$ref": "#/components/schemas/Error"
          },
          "type": "array"
        },
        "traceId": {
          "description": "Идентификатор операции",
          "example": "84b19a21e19410b62c30b4cd40c228a1",
          "type": "string"
        }
      },
      "required": [
        "traceId",
        "errors"
      ],
      "type": "object"
    },
    "ExternalId": {
      "description": "Уникальный идентификатор ведомости во внешней системе",
      "example": "8c0bcca2-6571-4880-a1c2-10690200be9f",
      "maxLength": 40,
      "minLength": 1,
      "pattern": "^[a-z0-9\\-]+$",
      "type": "string"
    },
    "IncomeCode": {
      "description": "Код вида дохода по ведомости (справочник).\nДопустимые значения:\n- 1 - При переводе денежных средств, являющихся заработной платой и/или иными доходами, в отношении которых установлены ограничения размеров удержания\n- ...\n\nМожно не передавать — ведомость будет обработана. Система вернёт предупреждение об отсутствии кода вида дохода для неподписанной ведомости.\n",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "example": 1,
      "type": "integer"
    },
    "Limit": {
      "description": "Максимальное количество элементов на странице",
      "example": 10,
      "maximum": 100,
      "minimum": 1,
      "type": "integer"
    },
    "Offset": {
      "description": "Смещение от начала списка",
      "example": 0,
      "minimum": 0,
      "type": "integer"
    },
    "OrderNumber": {
      "description": "Порядковый номер перевода в ведомости",
      "example": 1,
      "minimum": 1,
      "type": "integer"
    },
    "ReportingPeriod": {
      "description": "Дата отчётного периода. Можно не передавать в запросе — ведомость будет обработана корректно.",
      "properties": {
        "month": {
          "description": "Месяц отчетного периода",
          "example": 1,
          "type": "integer"
        },
        "year": {
          "description": "Год отчетного периода",
          "example": 2025,
          "type": "integer"
        }
      },
      "required": [
        "year",
        "month"
      ],
      "type": "object"
    },
    "ResponsiblePerson": {
      "description": "Ответственное лицо. Можно не передавать в запросе — ведомость будет обработана корректно.",
      "properties": {
        "fullName": {
          "description": "ФИО ответственного лица",
          "example": "Иванов Иван Иванович",
          "maxLength": 250,
          "type": "string"
        },
        "phone": {
          "description": "Номер телефона ответственного лица",
          "example": "+79120000000",
          "maxLength": 16,
          "type": "string"
        }
      },
      "required": [
        "fullName",
        "phone"
      ],
      "type": "object"
    },
    "StatementExternalStatus": {
      "description": "Статус ведомости",
      "enum": [
        "DRAFT",
        "CHECKING",
        "AWAITING_SIGN",
        "AWAITING_SIGN_WITH_WARNINGS",
        "ERROR",
        "PARTLY_SIGNED",
        "SIGNING",
        "AWAITING_SEND",
        "PROCESSING",
        "DECLINED",
        "EXECUTED",
        "PARTLY_EXECUTED",
        "DELETED",
        "SCHEDULED",
        "ERROR_SIGN"
      ],
      "example": "CHECKING",
      "type": "string"
    },
    "StatementPayload": {
      "description": "Запрос на создание ведомости",
      "properties": {
        "account": {
          "description": "Банковский счёт ЮЛ для списания средств",
          "example": "40817810601002630020",
          "maxLength": 20,
          "minLength": 20,
          "pattern": "^[0-9]+$",
          "type": "string"
        },
        "conversionRates": {
          "description": "Массив курсов конвертации для переводов с конвертацией валюты.\n\nКогда заполнять:\n- Если в ведомости есть переводы с конвертацией валюты — укажите курсы для всех валют, участвующих в конвертации\n- Если все переводы в рублях (RUR) без конвертации — поле не нужно передавать в запросе\n\nОграничения:\n- Максимум 2 валюты конвертации в ведомости (например, EUR и USD при основной валюте RUR)\n",
          "items": {
            "$ref": "#/components/schemas/ConversionRate"
          },
          "type": "array"
        },
        "date": {
          "description": "Дата формирования ведомости в формате YYYY-MM-DD. Можно не передавать — по умолчанию подставится текущая дата.",
          "example": "2025-01-19",
          "format": "date",
          "type": "string"
        },
        "enrollmentCode": {
          "description": "Код вида зачисления по ведомости (справочник).\nДопустимые значения:\n- \"01\" - Заработная плата\n- \"02\" - Аванс\n- \"03\" - Больничные\n- \"04\" - Премия\n- \"05\" - Отпускные\n- ...\n\nСправочник видов зачислений доступен [по ссылке](https://www.raiffeisen.ru/retail/payroll/payment_purpose)\n",
          "example": "01",
          "type": "string"
        },
        "externalId": {
          "$ref": "#/components/schemas/ExternalId"
        },
        "incomeCode": {
          "$ref": "#/components/schemas/IncomeCode"
        },
        "number": {
          "description": "Номер ведомости. Можно не передавать — система автоматически сгенерирует следующий порядковый номер для компании в текущем году.\n",
          "example": 1,
          "maximum": 999999,
          "minimum": 1,
          "type": "integer"
        },
        "purpose": {
          "description": "Назначение платежной ведомости. Можно не передавать — система автоматически сгенерирует по правилу: \"Оплата {название вида зачисления в соответствии с enrollmentCode}\".\n\nПример: enrollmentCode \"01\" (Заработная плата) → purpose: \"Оплата Заработная плата\"\n",
          "example": "Выплата зарплаты за январь 2025 г",
          "maxLength": 118,
          "type": "string"
        },
        "reportingPeriod": {
          "$ref": "#/components/schemas/ReportingPeriod"
        },
        "responsiblePerson": {
          "$ref": "#/components/schemas/ResponsiblePerson"
        },
        "totalAmount": {
          "description": "Общая сумма выплат по ведомости",
          "example": 500000.22,
          "exclusiveMinimum": true,
          "format": "double",
          "minimum": 0,
          "type": "number"
        },
        "transfers": {
          "description": "Массив переводов",
          "items": {
            "$ref": "#/components/schemas/Transfer"
          },
          "maxItems": 10000,
          "minItems": 1,
          "type": "array"
        },
        "transfersCount": {
          "description": "Количество переводов в ведомости",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "externalId",
        "account",
        "transfersCount",
        "totalAmount",
        "enrollmentCode",
        "transfers"
      ],
      "type": "object"
    },
    "StatementStatusResponse": {
      "properties": {
        "errors": {
          "description": "Список ошибок в ведомости в случае статуса ведомости ERROR",
          "items": {
            "$ref": "#/components/schemas/Error"
          },
          "type": "array"
        },
        "externalId": {
          "$ref": "#/components/schemas/ExternalId"
        },
        "message": {
          "description": "Причина отказа в случае статуса ведомости DECLINED",
          "example": "Обработка отложена, есть ограничения по счету компании",
          "minLength": 1,
          "type": "string"
        },
        "status": {
          "$ref": "#/components/schemas/StatementExternalStatus"
        },
        "warnings": {
          "description": "Список предупреждений в ведомости",
          "items": {
            "$ref": "#/components/schemas/Warning"
          },
          "type": "array"
        }
      },
      "required": [
        "externalId",
        "status"
      ],
      "type": "object"
    },
    "StatementTransfersResponse": {
      "properties": {
        "externalId": {
          "$ref": "#/components/schemas/ExternalId"
        },
        "limit": {
          "$ref": "#/components/schemas/Limit"
        },
        "offset": {
          "$ref": "#/components/schemas/Offset"
        },
        "totalCount": {
          "$ref": "#/components/schemas/TotalCount"
        },
        "transfers": {
          "description": "Список переводов в ведомости cо статусами",
          "items": {
            "$ref": "#/components/schemas/TransferStatusDetails"
          },
          "type": "array"
        }
      },
      "required": [
        "externalId",
        "transfers",
        "offset",
        "limit",
        "totalCount"
      ],
      "type": "object"
    },
    "TotalCount": {
      "description": "Общее количество элементов",
      "example": 1,
      "type": "integer"
    },
    "Transfer": {
      "properties": {
        "account": {
          "description": "Банковский счет сотрудника",
          "example": "40817810601002630020",
          "maxLength": 20,
          "minLength": 20,
          "pattern": "^\\d{5}810\\d{12}$",
          "type": "string"
        },
        "amount": {
          "description": "Сумма перевода",
          "example": 500000.22,
          "exclusiveMinimum": true,
          "format": "double",
          "minimum": 0,
          "type": "number"
        },
        "bic": {
          "description": "БИК банка-получателя счета сотрудника, указывается обязательно для внешних переводов (не в АО Райффайзенбанк)",
          "example": "044525700",
          "maxLength": 9,
          "minLength": 9,
          "pattern": "^[0-9]+$",
          "type": "string"
        },
        "birthDate": {
          "description": "Дата рождения сотрудника в формате YYYY-MM-DD",
          "example": "1990-01-30",
          "format": "date",
          "type": "string"
        },
        "cardNumber": {
          "description": "Номер карты сотрудника",
          "example": "4000000000000000",
          "maxLength": 20,
          "minLength": 14,
          "pattern": "^[0-9]{14,20}$",
          "type": "string"
        },
        "conversion": {
          "description": "Массив процентов конвертации валюты для данного перевода.\n\nКогда заполнять:\n- Если перевод требует конвертации валюты — укажите проценты распределения по валютам\n- Если перевод в рублях (RUR) без конвертации — поле не нужно передавать в запросе\n\nОграничения:\n- Максимум 2 валюты конвертации в одном переводе\n",
          "items": {
            "$ref": "#/components/schemas/ConversionPercent"
          },
          "type": "array"
        },
        "currency": {
          "$ref": "#/components/schemas/Currency"
        },
        "deductionAmount": {
          "description": "Сумма удержания",
          "example": 500.09,
          "exclusiveMinimum": true,
          "format": "double",
          "minimum": 0,
          "type": "number"
        },
        "firstName": {
          "description": "Имя сотрудника",
          "example": "Петр",
          "maxLength": 50,
          "type": "string"
        },
        "lastName": {
          "description": "Фамилия сотрудника",
          "example": "Петров",
          "maxLength": 50,
          "type": "string"
        },
        "middleName": {
          "description": "Отчество сотрудника",
          "example": "Петрович",
          "maxLength": 50,
          "type": "string"
        },
        "orderNumber": {
          "$ref": "#/components/schemas/OrderNumber"
        },
        "personnelNumber": {
          "description": "Табельный номер сотрудника",
          "example": "AA011",
          "maxLength": 60,
          "type": "string"
        }
      },
      "required": [
        "firstName",
        "lastName",
        "orderNumber",
        "account",
        "amount",
        "currency"
      ],
      "type": "object"
    },
    "TransferExternalStatus": {
      "description": "Статус перевода",
      "enum": [
        "CHECKING",
        "DRAFT",
        "CREATED",
        "CREATED_WITH_WARNINGS",
        "PROCESSING",
        "EXECUTED",
        "ERROR",
        "DECLINED"
      ],
      "example": "PROCESSING",
      "type": "string"
    },
    "TransferStatusDetails": {
      "properties": {
        "errors": {
          "description": "Список ошибок в переводе, заполняется в случае статуса перевода ERROR",
          "example": [
            {
              "code": "T06",
              "message": "Заполните лицевой счет сотрудника."
            }
          ],
          "items": {
            "$ref": "#/components/schemas/Error"
          },
          "type": "array"
        },
        "message": {
          "description": "Причина отказа в случае статуса перевода DECLINED",
          "example": null,
          "minLength": 1,
          "type": "string"
        },
        "orderNumber": {
          "$ref": "#/components/schemas/OrderNumber"
        },
        "status": {
          "$ref": "#/components/schemas/TransferExternalStatus"
        },
        "warnings": {
          "description": "Список предупреждений в переводе",
          "example": [
            {
              "code": "T16",
              "message": "Проверьте, что счет указан корректно и сотрудник прикреплен к зарплатному проекту."
            }
          ],
          "items": {
            "$ref": "#/components/schemas/Warning"
          },
          "type": "array"
        }
      },
      "required": [
        "orderNumber",
        "status"
      ],
      "type": "object"
    },
    "Warning": {
      "properties": {
        "code": {
          "description": "Код предупреждения",
          "example": "P12",
          "type": "string"
        },
        "message": {
          "description": "Текст предупреждения",
          "example": "Измените код вида дохода на код, соответствующий виду зачисления, выбрав нужный из списка.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object"
    }
  },
  "securitySchemes": {
    "BearerAuth": {
      "bearerFormat": "JWT",
      "description": "[Bearer](#tag/authorization)\nexample: eyJ0eXA***\n",
      "scheme": "bearer",
      "type": "http"
    },
    "RaifApiAuthorization": {
      "scheme": "bearer",
      "type": "http"
    },
    "RaifApiIdToken": {
      "in": "header",
      "name": "Id-Token",
      "type": "apiKey"
    }
  }
}
Page not found
Back to home
Raiffeisen Bank logosupport_openapi@raiffeisen.ru
1C:DirectBank & Smartegra IntegrationRaif Pay API
Bank of Russia LicensePersonal Data PolicyConsent to Data Processing

This website uses cookies to personalize services and improve your experience. To opt out, adjust your browser settings. © 2003 – 2026 Raiffeisenbank JSC