# Открыть диспут по ордеру

Можно только по ордерам в `success` или `failed`. Нужно право
`orders.write`.
Как это работает:
- При создании ордер переходит в
`disputed`
. Вебхук

`order.status_changed`
 на этот переход может прийти, а может и нет —

ориентируйтесь на ответ.
- Пока диспут открыт, ордер остаётся в
`disputed`
, поэтому повторный

запрос отвечает
`400 DISPUTE_NOT_ALLOWED`
. Найти диспут можно через

`GET /disputes?search={orderId}`
.
- Диспут передаётся платёжной стороне; если она его не приняла, API

отвечает
`502 WALLET_BACKEND_ERROR`
 (или
`500`
, если она

недоступна), а статус ордера не меняется.
- По ордеру в
`success`
 платёжная сторона в ответ может открыть свой

диспут: тогда ордер переходит в
`disputed`
 с вебхуком

`order.status_changed`
, а в ответе возвращается этот диспут со

служебной причиной
`dispute_created:…`
.

Endpoint: POST /orders/{id}/disputes
Version: 1.0.0
Security: apiKeyAuth

## Security:

  - `apiKeyAuth` (unknown)
    apiKey in header X-API-Key

## Path parameters:

  - `id` (string, required)
    ID ордера

## Request fields (application/json):

  - `reason` (string, required)

## Response 201:

  - `201` (unknown)
    Диспут создан

## Response 201 fields (application/json):

  - `id` (string, required)

  - `orderId` (string, required)

  - `status` (string, required)
    Enum: "submitted", "in_review", "resolved", "rejected"

  - `resolution` (any)
    Исход. Заполняется, когда диспут рассмотрен, — смотрите его, а не
`status`, который говорит только, рассмотрен диспут или нет.
`refund` / `partial_refund` — оплата отменена (ордер → `failed`),
`confirm` — диспут отклонён, оплата в силе (ордер → `success`).

  - `reason` (string, required)

  - `adminComment` (string | null)

  - `resolvedBy` (string | null)

  - `refundAmount` (string | null)
    Десятичная строка, например `"52.63000000"`. Какая часть ордера
отменена: полная сумма ордера при `refund`, возвращённая часть при
`partial_refund`, `null` при `confirm`. Это **не** сумма,
зачисленная на баланс: если средства ещё были заморожены, решение
только снимает заморозку. См. `GET /wallets/balance-history`
(`referenceId = orderId`).

  - `resolvedAt` (string | null)
    Время решения (администратором или по статусу от платёжной стороны).

  - `createdAt` (string, required)

  - `updatedAt` (string, required)

  - `order` (object)
    Ордер, к которому относится диспут, — встроен в ответ, чтобы не
делать второй запрос. В нём могут быть и другие служебные поля; в
контракт входят только перечисленные здесь.

  - `order.id` (string)

  - `order.externalOrderId` (string | null)
    Ваш идентификатор, переданный в `POST /orders/prepare`.

  - `order.status` (string)
    - `created`
 — ордер принят и отправлен на оплату, средства заморожены
- `in_progress`
 — ордер взял исполнитель
- `success`
 — оплачен, сумма списана
- `failed`
 — не оплачен или истёк, заморозка снята (причина в

`failureReason`
:
`Order expired`
,
`expired_no_taker`
, исход

диспута…)
- `disputed`
 — открыт диспут; закончится
`success`
 или
`failed`

`expired_no_taker` и `expired_by_system` остались в перечислении, но
текущая версия их не выставляет: ордер, который никто не взял,
становится `failed`, просроченный — `disputed`.
    Enum: "created", "in_progress", "success", "failed", "expired_no_taker", "expired_by_system", "disputed"

  - `order.amountUsdt` (string)
    Десятичная строка, например `"52.63000000"`

  - `order.amountRub` (string)
    Десятичная строка, например `"5000.00"`

  - `order.rate` (string)
    Итоговый курс USDT/RUB этого ордера, десятичная строка.

  - `order.nspkBrandName` (string | null)
    Название мерчанта, как его передала платёжная система.

  - `order.createdAt` (string)

## Response 400:

  - `400` (unknown)
    В текущем статусе ордера диспут нельзя открыть или решить.

## Response 400 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 401:

  - `401` (unknown)
    Нет учётных данных или они неверны (API-ключ / сессионный токен).

## Response 401 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 403:

  - `403` (unknown)
    У участника нет права, которое нужно этому эндпоинту (например,
`orders.create`, `orders.read`, `cards.recharge`). Недостающее право
приходит в теле, в `required` / `details`.

## Response 403 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 404:

  - `404` (unknown)
    У этой компании нет такого ордера.

## Response 404 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 500:

  - `500` (unknown)
    Непредвиденная ошибка. При подтверждении котировки и открытии диспута
она означает и недоступность платёжной стороны; ничего не создано,
запрос можно повторить.

## Response 500 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 502:

  - `502` (unknown)
    Платёжная сторона не приняла диспут. Статус ордера не изменился —
запрос можно повторить.

## Response 502 fields (application/json):

  - `statusCode` (integer, required)
    HTTP-код ответа.
    Example: 400

  - `error` (string, required)
    Текстовое название HTTP-кода (у ошибок прав — `PERMISSION_DENIED`, как раньше).
    Example: Bad Request

  - `errorCode` (string, required)
    Стабильный машиночитаемый код, есть всегда. Со временем могут
появляться новые коды, поэтому неизвестное значение обрабатывайте
как общую ошибку для своего `statusCode`.
    Enum: "VALIDATION_ERROR", "BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "UNPROCESSABLE", "INTERNAL_ERROR", "SERVICE_UNAVAILABLE", "BAD_GATEWAY", "AUTH_REQUIRED", "INVALID_API_KEY", "INVALID_CREDENTIALS", "SESSION_INVALID", "COMPANY_INACTIVE", "NO_COMPANY_MEMBERSHIP", "PERMISSION_DENIED", "ACCOUNT_ALREADY_EXISTS", "QR_AMOUNT_MISSING", "QR_INVALID", "QR_RESOLVE_FAILED", "AMOUNT_BELOW_MIN", "AMOUNT_ABOVE_MAX", "ST00012_SUM_MISSING", "ST00012_SUM_INVALID", "GIBDD_UIN_INVALID", "FINE_ALREADY_PAID", "FINE_NOT_FOUND", "QUOTE_NOT_FOUND", "QUOTE_EXPIRED", "INSUFFICIENT_BALANCE", "COMPANY_NOT_FOUND", "ORDER_NOT_FOUND", "UNSUPPORTED_CALLBACK_STATUS", "RATE_UNAVAILABLE", "DRIVER_HELPER_TRANSIENT", "WALLET_BACKEND_ERROR", "DISPUTE_NOT_FOUND", "DISPUTE_NOT_ALLOWED", "IDEMPOTENCY_KEY_REQUIRED", "CARDS_NOT_ENABLED", "CARD_NOT_FOUND", "CARD_REQUEST_NOT_FOUND", "CARD_REQUEST_NOT_CANCELABLE", "CARD_NOT_ACTIVE", "CARD_NOT_OWNED", "CARD_RECHARGE_INVALID", "CARD_EXTERNAL_ID_TAKEN", "BRIDGE_ERROR", "MEMBER_NOT_FOUND", "CANNOT_CHANGE_OWN_ROLE", "ROLE_CHANGE_NOT_ALLOWED", "INVITE_NOT_FOUND", "INVITE_USED", "INVITE_EXPIRED", "INVITE_INVALID", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_URL_NOT_CONFIGURED", "INVALID_SIGNATURE", "PAYOUTS_NOT_ENABLED", "PAYOUT_NOT_FOUND", "PAYOUT_REQUISITE_INVALID", "PAYOUT_BANK_UNKNOWN", "PAYOUT_BANK_REQUIRED", "PAYOUT_ACTIVE_LIMIT", "PAYOUT_REQUISITE_COOLDOWN", "PAYOUT_OUTSIDE_WORKING_HOURS", "PAYOUT_NOT_CANCELABLE", "PAYOUT_DISPUTE_NOT_ALLOWED", "PAYOUT_SERVICE_REJECTED", "PAYOUT_SERVICE_UNAVAILABLE"

  - `message` (any, required)
    Сообщение для человека (на русском). У ошибок валидации — массив строк.

  - `details` (object)
    Необязательные подробности ошибки, например
`{ "required": "orders.create" }`, `{ "minAmountRub": 100 }`
или `{ "nspkCode": "RQ00010" }`.
    Example: {"nspkCode":"RQ00010"}

  - `required` (string)
    Только у `PERMISSION_DENIED` — право, которого не хватает API-ключу.
    Example: orders.create

  - `path` (string)
    Путь запроса, вызвавшего ошибку, вместе с query-строкой.
    Example: /orders/prepare

  - `timestamp` (string)
    Время ошибки (ISO 8601).
    Example: 2026-05-27T16:41:49.000Z

  - `requestId` (string)
    Идентификатор запроса, он же приходит в заголовке ответа
`X-Request-Id`. Указывайте его в обращениях в поддержку.
    Example: 439436bd-201c-4084-9063-58cfa2cd40ad

## Response 400 examples:

  - `Ордер не в том статусе для диспута (нужен success или failed)` (unknown)

  - `Ордер не дошёл до платёжной стороны` (unknown)

## Response 401 examples:

  - `Не передан ни API-ключ, ни сессионный токен` (unknown)

  - `Неизвестный или перевыпущенный API-ключ` (unknown)

  - `Сессионный токен истёк или повреждён` (unknown)

  - `Компания отключена (API-ключ участника)` (unknown)

  - `Участник удалён из компании` (unknown)

## Response 403 examples:

  - `Нет нужного права` (unknown)

