К содержимому
Инвойсбокс
post/v3/billing/api/order/correction-order

Возврат с комиссией/штрафом

Иногда при возврате нужно удержать штраф, комиссию за возврат или сервисный сбор — и провести удержание в финансовой отчётности. Такой возврат происходит в два этапа через корректировочный заказ на комиссию, штраф или сервисный сбор:

Сумма возврата из первого шага пересчитывается на сумму корректировочного заказа — её и получает покупатель.

Процесс оформления возврата через корректировочный заказ

sequenceDiagram autonumber participant Покупатель participant Магазин participant Инвойсбокс participant Онлайн касса rect rgba(107, 70, 193, 0.13) Покупатель->>Магазин: Обращается за возвратом по заказу Магазин-->Инвойсбокс: Получение списка позиций в заказе Магазин->>Инвойсбокс: Вызов метода оформления возврата Магазин->>Инвойсбокс: Вызов метода создания корректировочного заказа Инвойсбокс->>Покупатель: Осуществление возврата денежных средств Инвойсбокс->>Онлайн касса: Чек "ВОЗВРАТ 100%" Инвойсбокс->>Покупатель: Предоставление чека "ВОЗВРАТ 100%" Инвойсбокс->>Онлайн касса: Чек "ОПЛАТА 100%" по корректировочному заказу Инвойсбокс->>Покупатель: Предоставление чека "ОПЛАТА 100%" end
  1. Покупатель обращается в Магазин для оформления возврата заказа.
  2. Опционально, Магазин запрашивает через метод API доступные к возврату позиции в заказе.
  3. Магазин формирует возврат в системе Инвойсбокс через метод API.
  4. Магазин формирует корректировочный заказ в системе Инвойсбокс с указанием позиции комиссии, штрафа или сервисного сбора через метод API.
  5. Система Инвойсбокс возвращает денежных средств покупателю на сумму возврата за минусом суммы корректировочного заказа.
  6. Система Инвойсбокс формирует и регистрирует чек "ВОЗВРАТ 100%" в онлайн кассе (при оплате физическим лицом).
  7. Система Инвойсбокс направляет чек "ВОЗВРАТ 100%" покупателю (физическому лицу).
  8. Система Инвойсбокс формирует и регистрирует чек "ОПЛАТА 100%" по корректировочному заказу в онлайн кассе (при оплате физическим лицом).
  9. Система Инвойсбокс направляет чек "ОПЛАТА 100%" покупателю (физическому лицу).

Формирование возврата

Сформируйте возврат со специальным статусом draft и получите его идентификатор (id) через метод API создания возврата

Формирование корректировочного заказа

Сформируйте корректировочный заказ с указанием новых позиций (штрафов, комиссий, сервисных сборов) со ссылкой на возврат из пункта 1. через поле parentId, т.е. укажите в поле parentId полученный идентификатор id возврата.

Корректировочный заказ создаётся своим методом:

  • метод: POST
  • ресурс: /v3/billing/api/order/correction-order
  • тело запроса — объект CorrectionOrderRequest: parentId, amount, vatAmount, description, basketItems (все обязательные)
  • тело ответа - объект OrderResponse
  • Возможные ошибки

Пример запроса и ответа
POST /v3/billing/api/order/correction-order
Authorization: Bearer b37c4c689295904ed21eee5d9a48d42e
Content-Type: application/json
User-Agent: MyApp 1.0
Accept: application/json
{
  "amount": 100.5,
  "vatAmount": 100.5,
  "basketItems": [
    {
      "sku": "string",
      "name": "string",
      "groupName": "string",
      "measureCode": "string",
      "originCountry": "string",
      "originCountryCode": "string",
      "grossWeight": 100.5,
      "netWeight": 100.5,
      "quantity": 100.5,
      "amount": 100.5,
      "amountWoVat": 100.5,
      "totalAmount": 100.5,
      "totalVatAmount": 100.5,
      "vatCode": "RUS_VAT22",
      "type": "string",
      "gtdNumber": "string",
      "paymentType": "string",
      "excise": 100.5,
      "metaData": {},
      "tnved": "string",
      "rnpt": "string",
      "gtin": "string",
      "category": "string",
      "categoryType": "string",
      "serviceDate": "2026-08-03T12:00:00+03:00"
    }
  ],
  "parentId": "01771534-1a57-f184-dee3-ebeb91dded75",
  "description": "string"
}

Ответ (по схеме):

{
  "data": {
    "id": "01771534-1a57-f184-dee3-ebeb91dded75",
    "description": "string",
    "currencyId": "RUB",
    "amount": 100.5,
    "vatAmount": 100.5,
    "basketItems": [
      {
        "sku": "string",
        "name": "string",
        "groupName": "string",
        "measure": "string",
        "measureCode": "string",
        "originCountry": "string",
        "originCountryCode": "string",
        "grossWeight": 100.5,
        "netWeight": 100.5,
        "quantity": 100.5,
        "amount": 100.5,
        "amountWoVat": 100.5,
        "totalAmount": 100.5,
        "totalVatAmount": 100.5,
        "vatCode": "RUS_VAT22",
        "type": "string",
        "gtdNumber": "string",
        "paymentType": "string",
        "excise": 100.5,
        "metaData": {},
        "tnved": "string",
        "rnpt": "string",
        "gtin": "string",
        "category": "string",
        "categoryType": "string",
        "serviceDate": "2026-08-03T12:00:00+03:00"
      }
    ],
    "merchantId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "status": "string",
    "shipmentStatus": "string",
    "subtype": "string",
    "processingStatus": "string",
    "createdAt": "2026-08-03T12:00:00+03:00",
    "merchantOrderId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "merchantOrderIdVisible": "string",
    "expirationDate": "2026-08-03T12:00:00+03:00",
    "metaData": {},
    "customerData": {},
    "notificationUrl": "string",
    "orderSetting": {
      "roundPolicy": "string",
      "disableValidate": false
    },
    "internalProperty": {
      "guarantee": false,
      "hold": false,
      "rtp": false,
      "agent": false,
      "rtpExternal": false
    },
    "tags": {},
    "shopId": 1,
    "sourceId": "l3",
    "paidAt": "2026-08-03T12:00:00+03:00",
    "parentId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "returnUrl": "string",
    "successUrl": "string",
    "failUrl": "string",
    "paymentUrl": "string",
    "paymentUrlType": "redirect",
    "paymentPageUrl": "string",
    "customer": {
      "type": "string",
      "name": "string",
      "phone": "string",
      "email": "string",
      "vatNumber": "string",
      "countryId": "01771534-1a57-f184-dee3-ebeb91dded75",
      "registrationAddress": "string",
      "taxRegistrationReasonCode": "string"
    },
    "languageId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "contactId": 1,
    "contactCounterpartyId": 1,
    "processable": false,
    "userAccountId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "invoiceSetting": {
      "customerLocked": false,
      "customerLockedFields": {},
      "customerHiddenFields": {},
      "paymentMethodIdLocked": false,
      "paymentMethodId": 1,
      "savePaymentData": false,
      "clientId": "01771534-1a57-f184-dee3-ebeb91dded75",
      "paymentToken": "string",
      "paymentMethodCode": "string",
      "paymentMethodAutosubmit": false,
      "bankDetailId": 1
    },
    "orderContainerId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "paymentInfo": {},
    "holdTill": "2026-08-03T12:00:00+03:00",
    "additionalOrderId": "01771534-1a57-f184-dee3-ebeb91dded75",
    "shipmentTotalAmount": "string",
    "shipmentTotalVatAmount": "string"
  },
  "metaData": {
    "totalCount": 1,
    "pageSize": 1,
    "page": 1
  },
  "extendedData": [
    {
      "type": "string",
      "data": {}
    }
  ]
}

Параметры запроса — POST

14 обязательных из 30
ПолеТипОписание
amount *#numberот 0Денежное значение: ровно два знака после точки. В коде считайте Decimal/BigDecimal, не двоичным float
vatAmount *#numberот 0Денежное значение: ровно два знака после точки. В коде считайте Decimal/BigDecimal, не двоичным float
basketItems *#BillingProviderDomainOrderEntityBasketItemApiCreateCollection
parentId *#string
description *#string
Страница помогла?
postСоздание корректирующего заказаДемо
curl -X POST 'https://api.invoicebox.ru/v3/billing/api/order/correction-order' \
  -H 'Authorization: Bearer <ВАШ_ТОКЕН>' \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: MyApp 1.0' \
  -d '{
  "amount": 12200,
  "vatAmount": 2200,
  "basketItems": [
    {
      "sku": "sku-1",
      "name": "Бронирование номера",
      "quantity": 1,
      "amount": 12200,
      "amountWoVat": 100,
      "totalAmount": 100,
      "totalVatAmount": 100,
      "vatCode": "RUS_VAT22",
      "type": "service"
    }
  ],
  "parentId": "string",
  "description": "Оплата бронирования"
}'
Корректировка требует существующего оплаченного заказа: на демо-магазине оплаты нет.