# Подписать документ

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Подписать документ

`POST /api/v1/signatures/{id}/sign`

**Авторизация:** dpop или oauth2: `signature:sign`

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `id` | path | да | string (uuid) | Идентификатор подписания |

**Тело запроса** (`application/json`, обязательное): object
- `actions`: массив object — Заполненные элементы документа
  - `accepted`: boolean — Отмечен ли чекбокс
  - `actionId`: string, обязательное — Идентификатор элемента из placedActions
  - `assetId`: string — Загруженный ассет (изображение подписи)
  - `kind`: string, обязательное — Тип элемента
  - `pageIndex`: integer — Страница документа (с 0)
  - `text`: string — Текст элемента
  - `url`: string — Ссылка элемента
  - `value`: string — Заполненное значение
  - `xPercent`: number — Позиция X в процентах
  - `yPercent`: number — Позиция Y в процентах
- `drawing`: string — Рисованная подпись в base64 (для ar_sign)
- `method`: "ar_sign" | "facsimile" | "ukep" | "unep" | "email_code" | "telegram_code", обязательное — Способ подписания: ar_sign — рисованная подпись, facsimile — факсимиле, ukep/unep — квалифицированная/неквалифицированная ЭП, email_code/telegram_code — код подтверждения
- `otpCode`: string — Шестизначный код подтверждения (для *_code)
- `powerOfAttorney`: object — Машиночитаемая доверенность, если подписант действует от имени организации по доверенности (для ukep)
  - `document`: string, обязательное — XML машиночитаемой доверенности формата EMCHD_1 в base64
  - `signature`: string, обязательное — Отсоединённая подпись доверителя (.sig) в base64
- `ukepSignatures`: массив object — Подписи УКЭП, по одной на каждый документ (для ukep)
  - `documentId`: string (uuid), обязательное — Документ из snapshot-to-sign
  - `signature`: string, обязательное — Отсоединённая подпись CAdES-BES PDF документа в base64

**Ответы**

- `200` — Подписано (`application/json`, SignatureRequest)
  - `completedAt`: string, nullable — Когда завершено, ISO 8601
  - `createdAt`: string — Когда создано, ISO 8601
  - `createdBy`: string — Инициатор
  - `deadline`: string, nullable — Срок подписания, ISO 8601
  - `documentId`: string, обязательное — Подписываемый документ
  - `documentTitle`: string, обязательное — Название документа
  - `id`: string (uuid), обязательное — Идентификатор подписания
  - `message`: string, nullable — Сообщение подписантам
  - `participants`: массив object — Подписанты и их состояния
    - `email`: string — Email подписанта
    - `method`: string, nullable — Способ подписания
    - `order`: number — Порядок подписания
    - `status`: string — Состояние: ожидает, подписал, отказался
    - `userId`: string — Подписант
    - `userName`: string — Имя подписанта
  - `status`: string, обязательное — Статус подписания
  - `type`: string — Порядок: sequential или parallel
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `404` — Ресурс не найден (`application/problem+json`, ProblemDetails)
- `422` — Запрос корректен, но не может быть выполнен (`application/problem+json`, ProblemDetails)
- `500` — Внутренняя ошибка сервера (`application/problem+json`, ProblemDetails)
- `503` — Ошибка (`application/problem+json`, ProblemDetails)

    </>
  );
}
