Skip to main content

Doc Reader [Черновик]

OpenAPI 1.0.0

Сервис обработки PDF-документов через LLM

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

Варианты

  • Public

Операции API

POST /v1/documents — Загрузка PDF-документа на обработку

Принимает бинарный PDF-файл. Валидирует сигнатуру файла, размер (макс 30MB) и токен авторизации. Возвращает ID задачи для последующего опроса статуса.

{
  "tags": [
    "documents"
  ],
  "summary": "Загрузка PDF-документа на обработку",
  "description": "Принимает бинарный PDF-файл.\nВалидирует сигнатуру файла, размер (макс 30MB) и токен авторизации.\nВозвращает ID задачи для последующего опроса статуса.",
  "operationId": "uploadDocument",
  "parameters": [
    {
      "name": "promptType",
      "in": "query",
      "description": "Тип промпта для обработки документа.",
      "schema": {
        "$ref": "#/components/schemas/PromptType"
      },
      "example": "COMMON_OUTPUT"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    },
    {
      "$ref": "#/components/parameters/AuthorizationHeader"
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/pdf": {
        "schema": {
          "type": "string",
          "format": "binary",
          "description": "PDF файл (максимум 30 MB)."
        }
      }
    }
  },
  "responses": {
    "202": {
      "description": "Задача принята в обработку.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DocumentIdResponse"
          },
          "examples": {
            "acceptedExample": {
              "value": {
                "documentId": "550e8400-e29b-41d4-a716-446655440000"
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Некорректный запрос.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/BadRequestError"
          },
          "examples": {
            "invalidFileExample": {
              "summary": "Пустой файл, неверная сигнатура PDF или не прошел проверку",
              "value": {
                "error": {
                  "code": "INVALID_FILE",
                  "message": "Файл не может быть обработан. Загрузите другой файл"
                }
              }
            },
            "missedBodyExample": {
              "summary": "Отсутствует тело запроса",
              "value": {
                "error": {
                  "code": "MISSED_BODY",
                  "message": "Отсутствует тело запроса"
                }
              }
            },
            "invalidParamExample": {
              "summary": "Некорректное значение параметра запроса",
              "value": {
                "error": {
                  "code": "INVALID_PARAM",
                  "message": "Некорректное значение параметра запроса: promptType"
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "413": {
      "description": "Размер файла превышает лимит (30 MB)."
    },
    "415": {
      "description": "Неверный Content-Type запроса (ожидается application/pdf)."
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  }
}

GET /v1/documents/{documentId} — Получение статуса и результата обработки

Возвращает текущий статус документа

{
  "tags": [
    "documents"
  ],
  "summary": "Получение статуса и результата обработки",
  "description": "Возвращает текущий статус документа",
  "operationId": "getDocumentStatus",
  "parameters": [
    {
      "name": "documentId",
      "in": "path",
      "required": true,
      "schema": {
        "$ref": "#/components/schemas/DocumentId"
      },
      "description": "ID документа, полученный при загрузке.",
      "example": "550e8400-e29b-41d4-a716-446655440000"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    },
    {
      "$ref": "#/components/parameters/AuthorizationHeader"
    }
  ],
  "responses": {
    "200": {
      "description": "Статус получен успешно.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DocumentStatusResponse"
          },
          "examples": {
            "successExample": {
              "value": {
                "documentId": "550e8400-e29b-41d4-a716-446655440000",
                "status": "SUCCESS",
                "result": {
                  "data": "Внимание! Оплата данного счета означает согласие с условиями поставки товара. Уведомление об оплате обязательно, в противном случае не гарантируется наличие товара на складе."
                }
              }
            },
            "successExamplePaymentOrder": {
              "value": {
                "documentId": "550e8400-e29b-41d4-a716-446655440020",
                "status": "SUCCESS",
                "result": {
                  "formCode": "0401060",
                  "paymentOrderNumber": "123",
                  "paymentOrderDate": "2023-11-15",
                  "amountInWords": "Двадцать пять тысяч рублей 00 копеек",
                  "amount": 25000,
                  "payer": {
                    "name": "ООО Ромашка",
                    "inn": "1234567890",
                    "kpp": "123456789"
                  },
                  "recipient": {
                    "name": "ООО Вектор",
                    "inn": "0987654321",
                    "kpp": "987654321",
                    "accountNumber": "40702810123456789012",
                    "bank": {
                      "name": "ПАО Сбербанк",
                      "bik": "044525225",
                      "bankAccountNumber": "30101810400000000225"
                    }
                  },
                  "paymentPurpose": "Оплата по договору №456 от 01.11.2023"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Некорректный запрос.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/BadRequestError"
          },
          "examples": {
            "invalidParamExample": {
              "value": {
                "error": {
                  "code": "INVALID_PARAM",
                  "message": "Некорректный формат documentId"
                }
              }
            }
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "description": "Документ не найден."
    },
    "500": {
      "$ref": "#/components/responses/InternalError"
    }
  }
}

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

{
  "parameters": {
    "IdTokenHeader": {
      "name": "Id-Token",
      "in": "header",
      "description": "Идентификационный токен пользователя",
      "required": true,
      "schema": {
        "type": "string",
        "format": "byte",
        "example": "SUQgVE9LRU4gRk9SIFRFU1RJTkc="
      }
    },
    "AuthorizationHeader": {
      "name": "Authorization",
      "in": "header",
      "description": "Токен доступа",
      "required": true,
      "schema": {
        "type": "string",
        "format": "byte",
        "example": "Bearer QXV0aG9yaXphdGlvbiBIZWFkZXIgRm9yIFRlc3Rpbmc="
      }
    }
  },
  "schemas": {
    "DocumentId": {
      "type": "string",
      "format": "uuid",
      "description": "Уникальный идентификатор документа.",
      "example": "550e8400-e29b-41d4-a716-446655440000"
    },
    "PromptType": {
      "type": "string",
      "enum": [
        "COMMON_OUTPUT",
        "PAYMENT_ORDER"
      ],
      "default": "COMMON_OUTPUT",
      "description": "Тип промпта для обработки документа.",
      "example": "COMMON_OUTPUT"
    },
    "DocumentIdResponse": {
      "type": "object",
      "description": "Ответ с идентификатором созданной задачи обработки.",
      "required": [
        "documentId"
      ],
      "properties": {
        "documentId": {
          "$ref": "#/components/schemas/DocumentId"
        }
      },
      "example": {
        "documentId": "550e8400-e29b-41d4-a716-446655440000"
      }
    },
    "BadRequestError": {
      "type": "object",
      "description": "Некорректный запрос.",
      "required": [
        "error"
      ],
      "properties": {
        "error": {
          "type": "object",
          "description": "Детали ошибки.",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "Код ошибки.",
              "example": "INVALID_FILE"
            },
            "message": {
              "type": "string",
              "description": "Человеко-читаемое описание ошибки.",
              "example": "Файл не может быть обработан. Загрузите другой файл"
            }
          }
        }
      },
      "example": {
        "error": {
          "code": "INVALID_FILE",
          "message": "Файл не может быть обработан. Загрузите другой файл"
        }
      }
    },
    "DocumentStatusResponse": {
      "type": "object",
      "description": "Ответ со статусом и результатом обработки документа. Поле `result` присутствует только при статусе SUCCESS.",
      "required": [
        "documentId",
        "status"
      ],
      "properties": {
        "documentId": {
          "$ref": "#/components/schemas/DocumentId"
        },
        "status": {
          "type": "string",
          "enum": [
            "CREATED",
            "IN_PROGRESS",
            "SUCCESS",
            "ERROR"
          ],
          "description": "Текущий статус обработки документа.",
          "example": "SUCCESS"
        },
        "result": {
          "type": "object",
          "description": "Результат обработки. Присутствует только если status == SUCCESS. Содержит JSON объект с извлечёнными данными. Может быть null для статусов CREATED, IN_PROGRESS, ERROR.",
          "additionalProperties": true
        }
      }
    }
  },
  "responses": {
    "Unauthorized": {
      "description": "Аутентификация не пройдена"
    },
    "InternalError": {
      "description": "Внутренняя ошибка"
    }
  }
}
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