Описание API#

Раздел описывает методы API «Подели» для работы с заказами. Методы сгруппированы по жизненному циклу заказа. Общие сведения (адрес сервиса, авторизация, заголовки) вынесены в раздел Общие сведения, статус-коды и коды ошибок — в раздел Статус-коды и обработка ошибок.

Работа с субпартнёрами описана на отдельной странице Методы для партнёров-агрегаторов.

Подсказка

Если вы знакомитесь с «Подели» впервые, начните с бизнес-сценариев в разделе Протокол взаимодействия — там описано, когда и в какой последовательности вызываются методы.

Методы работы с заказами#

Пути эндпоинтов указаны относительно базового адреса https://api-sand.podeli.ru/partners/v1 — см. Общие сведения.

Метод

Эндпоинт

Назначение

CREATE

POST /orders/create

Создать заказ онлайн и получить URL для перенаправления Клиента

CREATE_OFFLINE

POST /orders/create_offline

Создать заказ на кассе по QR-коду Клиента

COMMIT

POST /orders/{orderId}/commit

Подтвердить заказ при двухстадийной оплате

CANCEL

POST /orders/{orderId}/cancel

Отменить заказ до оплаты

REFUND

POST /orders/{orderId}/refund

Оформить полный или частичный возврат

INFO

GET /orders/{orderId}/info

Получить детальную информацию по заказу

ORDER_RECONCILIATION

GET /orders/order_reconciliation

Сверить заказы и возвраты за период

CALCULATE

POST /orders/calculate

Рассчитать график платежей по сумме

Общие сведения#

Базовый адрес

Пути методов указываются относительно базового адреса. В примерах документации используется адрес тестового контура:

https://api-sand.podeli.ru/partners/v1

Примечание

Адрес боевого контура в документации не приводится — уточните его у менеджера по интеграции.

Протокол и формат данных

Все запросы выполняются в формате JSON поверх HTTPS. Соединение защищено по схеме Mutual TLS — см. Настройка защищённого соединения.

Заголовки запроса

Заголовок

Значение

Content-Type

Тип контента (application/json)

Authorization

Авторизация Basic Auth: логин и пароль Магазина-Партнёра в формате логин:пароль, закодированные в base64

X-Correlation-ID

Уникальный идентификатор запроса в формате UUID v4. Используется для диагностики ошибок. Для каждого нового HTTP-запроса передавайте новое значение

CREATE — создание заказа онлайн#

POST https://api-sand.podeli.ru/partners/v1/orders/create

Как работает

  1. Клиент создаёт заказ на сайте Магазина-Партнёра и переходит к выбору способа оплаты.

  2. При выборе Клиентом способа оплаты «Подели» вызывается метод CREATE.

  3. Метод возвращает URL для перенаправления Клиента на сайт «Подели» — для авторизации, скоринга и (при положительном сценарии) оплаты первого платежа по заказу.

Подсказка

Стандартное время жизни заказа — 6 часов. Значение можно изменить, лимит задаётся в часах.

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

Поле

Тип

Обяз.

Описание

order

object

Заказ

├─ id

string(44)

Уникальный идентификатор заказа

├─ amount

number(18,2)

Итоговая стоимость заказа к оплате с учётом всех применённых скидок, в рублях с точностью до двух знаков.

├─ prepaidAmount

number(18,2)

Сумма аванса, внесённого Клиентом через другие способы оплаты, в рублях с точностью до двух знаков. Не изменяет стоимость товаров и не участвует в расчёте итоговой стоимости заказа

├─ items

array of objects

Позиции в заказе

│  ├─ id

string(36)

Идентификатор позиции в Магазине-Партнёре. Уникален в рамках заказа

│  ├─ article

string(50)

Артикул товара

│  ├─ name

string(250)

Наименование (описание) товара

│  ├─ amount

number(18,2)

Стоимость единицы товара к оплате с учётом всех применённых скидок, в рублях с точностью до двух знаков. Если часть стоимости оплачена авансом или бонусами, укажите здесь сумму к оплате через «Подели», а аванс — в items[].prepaidAmount

│  ├─ quantity

number(18,3)

Количество товара в заказе. При нецелочисленном количестве передавать значение согласно правилу*

│  └─ prepaidAmount

number(18,2)

Сумма аванса, внесённого Клиентом через другие способы оплаты, распределённая на конкретные товары в заказе (за единицу товара). Не влияет на стоимость товаров

├─ isTwoStagePayment

boolean

Схема оплаты первого платежа: true — двухстадийная, false — одностадийная. По умолчанию true

├─ deliveryMethod

string(20)

Тип доставки: Mall, Delivery, Point of issue

├─ courierId

string(50)

ID курьера

├─ recipient

string(50)

ФИО получателя

├─ phoneRecipient

string(11)

Номер телефона получателя

├─ phoneRecipientMd5

string(50)

Номер телефона получателя в зашифрованном виде (заполняется, если передача данных в открытом виде невозможна)

├─ addressDelivery

string(250)

Адрес доставки, магазина или пункта выдачи, код КЛАДР

├─ comment

string(250)

Комментарий

└─ phoneMd5

string(50)

Номер телефона Клиента в зашифрованном виде (заполняется, если передача данных в открытом виде невозможна)

clientInfo

object

Клиент

├─ firstName

string(60)

Имя Клиента

├─ lastName

string(60)

Фамилия Клиента

├─ middleName

string(60)

Отчество Клиента

├─ birthdate

string date

Дата рождения Клиента в формате YYYY-MM-DD

├─ phone

string(11)

Телефон Клиента в формате РФ с маской 7XXXXXXXXXX

└─ email

string(250)

Email Клиента

subPartnerInfo

object

Данные субпартнёра (селлера), в пользу которого оформляется заказ. Заполняется при работе через партнёра-агрегатора, если магазин подключён к сервису не напрямую. При прямом подключении поле не используется. Подробнее — Методы для партнёров-агрегаторов

├─ login

string(250)

Логин субпартнёра

├─ name

string(250)

Наименование субпартнёра

├─ inn

string(12)

ИНН субпартнёра

└─ ogrn

string(20)

ОГРН субпартнёра

notificationUrl

string(500)

URL для получения HTTP-нотификаций о статусе заказа. Следует указывать протокол (https/http)

failUrl

string(500)

URL для редиректа Клиента при неуспешной оплате первого платежа. Следует указывать протокол (https/http)

successUrl

string(500)

URL для редиректа Клиента при успешной оплате первого платежа. Следует указывать протокол (https/http)

failScoringUrl

string(500)

URL для редиректа Клиента при отказе по скорингу. Следует указывать протокол (https/http)

terminalId

string(36)

Идентификатор терминала. Может использоваться в отдельных сценариях интеграции.

orderSource

string(36)

Канал оформления заказа в Магазине-Партнёре. Допустимые значения: mob, web

comment1

string(500)

Дополнительное поле для передачи информации. Используется в отдельных сценариях работы с партнёром

comment2

string(500)

Дополнительное поле для передачи информации. Используется в отдельных сценариях работы с партнёром

Тело ответа

Заголовки ответа и статус-коды — общие.

Поле

Тип

Описание

status

string

Статус заказа

amount

number double

Общая сумма, подлежащая оплате Клиентом

redirectUrl

string

Ссылка-редирект на страницу сервиса «Подели»

error

object

Описание ошибки (поля code, text)

Пример запроса

{
  "order": {
    "id": "test_order",
    "amount": 5000.0,
    "prepaidAmount": 1000.0,
    "items": [
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "article": "ART12345678",
        "name": "Товар 1",
        "amount": 2500.0,
        "quantity": 1,
        "prepaidAmount": 500.0
      },
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "article": "ART87654321",
        "name": "Товар 2",
        "amount": 2500.0,
        "quantity": 1,
        "prepaidAmount": 500.0
      }
    ],
    "deliveryMethod": "Mall",
    "courierId": "courier_123",
    "recipient": "Иванов Иван Иванович",
    "phoneRecipient": "79990000001",
    "phoneRecipientMd5": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "addressDelivery": "ул. Тестовая, д. 1, кв. 1",
    "phoneMd5": "d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a",
    "isTwoStagePayment": true
  },
  "clientInfo": {
    "firstName": "Иван",
    "lastName": "Иванов",
    "middleName": "Иванович",
    "birthdate": "1990-01-01",
    "phone": "79990000002",
    "email": "test@example.com"
  },
  "notificationUrl": "https://partner.example.com/notification",
  "failUrl": "https://example.com/fail",
  "successUrl": "https://example.com/success"
}
{
  "status": "CREATED",
  "amount": 5000.0,
  "redirectUrl": "https://pokupka-sand.podeli.ru/login?guid=4add3220-1da6-4yf0-92n5-854ps4f700d8&amountAll=5000.0&amountFirst=1250.00&flowId=1"
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "validation_error",
    "text": "Ошибка валидации тела запроса"
  }
}

Возможные коды ошибок:

Код

Описание

validation_error

Ошибка валидации тела запроса (не заполнено обязательное поле, неверная структура)

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

incorrect_amount

Суммы заказа не сходятся: order/amount не равен сумме позиций items[].amount × items[].quantity (аналогично для prepaidAmount)

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

not_authorized_partner_expired

Истёк срок действия договора с Магазином-Партнёром

partner_not_connected_service

Партнёр не подключён к сервису «Подели»

sub_partner_not_connected_service

Субпартнёр не подключён к сервису «Подели»

Пример ответа:

{
  "error": {
    "code": "duplicated_request",
    "text": "Запрос с таким X-Correlation-ID уже был отправлен ранее"
  }
}

Возможные коды ошибок:

Код

Описание

duplicated_request

Запрос с таким X-Correlation-ID уже был отправлен ранее

duplicated_order

Заказ с таким order/id уже был отправлен ранее

duplicated_item

Позиция items/id в запросе дублируется

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Пример ответа:

{
  "error": {
    "code": "service_unavailable",
    "text": "Сервис временно недоступен"
  }
}

Возможные коды ошибок:

Код

Описание

service_unavailable

Сервис временно недоступен

Полный перечень кодов — в справочнике ошибок.

CREATE_OFFLINE — создание заказа офлайн#

POST https://api-sand.podeli.ru/partners/v1/orders/create_offline

Как работает

  1. Клиент в офлайн-магазине Партнёра показывает кассиру QR-код в мобильном приложении «Подели».

  2. Кассир сканирует QR-код. ПО кассы извлекает из него external_id Клиента в «Подели» и вызывает метод CREATE_OFFLINE.

  3. В «Подели» создаётся заказ, запускается скоринг по Клиенту.

Подсказка

Рекомендации по настройке таймаутов:

  • ожидание ответа на метод — 60 секунд

  • статус заказа опрашивать методом INFO с периодичностью 10 секунд до перехода заказа в терминальный (финальный) статус

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

Поле

Тип

Обяз.

Описание

order

object

Заказ

├─ id

string(44)

Идентификатор заказа в Магазине-Партнёре

├─ amount

number(18,2)

Итоговая стоимость заказа к оплате с учётом всех применённых скидок, в рублях с точностью до двух знаков.

├─ prepaidAmount

number(18,2)

Сумма аванса, внесённого Клиентом через другие способы оплаты, в рублях с точностью до двух знаков. Не изменяет стоимость товаров и не участвует в расчёте итоговой стоимости заказа

├─ items

array of objects

Позиции в заказе

│  ├─ id

string(36)

Идентификатор позиции в Магазине-Партнёре

│  ├─ article

string(50)

Артикул товара

│  ├─ name

string(250)

Наименование (описание) товара

│  ├─ amount

number(18,2)

Стоимость единицы товара к оплате с учётом всех применённых скидок, в рублях с точностью до двух знаков.

│  ├─ quantity

number(18,3)

Количество товара в заказе. При нецелочисленном количестве передавать значение согласно правилу*

│  └─ prepaidAmount

number(18,2)

Сумма аванса, внесённого Клиентом через другие способы оплаты, распределённая на конкретные товары в заказе (за единицу товара). Не изменяет стоимость товаров и не участвует в расчёте итоговой стоимости заказа

├─ latitude

number

Широта

├─ longitude

number

Долгота

├─ mall

string(250)

Торговый центр

├─ address

string(250)

Адрес магазина

├─ cashRegisterNumber

string(250)

Номер кассы

├─ cashierNumber

string(250)

Номер кассира

└─ comment

string(500)

Комментарий

clientInfo

object

Клиент

└─ id

string

id из QR Клиента, закодированный в base64.

terminalId

string(36)

Идентификатор терминала

comment1

string(500)

Комментарий Магазина-Партнёра

comment2

string(500)

Комментарий Магазина-Партнёра

Тело ответа

При успешном выполнении тело ответа приходит пустым — передаётся только статус-код 200. При ошибке в теле возвращается объект error (заголовки ответа и статус-коды — общие).

Примеры

{
  "order": {
    "id": "test_order_offline",
    "amount": 5000.0,
    "prepaidAmount": 1000.0,
    "items": [
      {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "article": "ART12345678",
        "name": "Товар 1",
        "amount": 2500.0,
        "quantity": 1,
        "prepaidAmount": 500.0
      },
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "article": "ART87654321",
        "name": "Товар 2",
        "amount": 2500.0,
        "quantity": 1,
        "prepaidAmount": 500.0
      }
    ],
    "latitude": 55.755826,
    "longitude": 37.617300,
    "mall": "ТРЦ Тестовый",
    "address": "ул. Тестовая, д. 1",
    "cashRegisterNumber": "1111111111",
    "cashierNumber": "2222222222",
    "comment": "тестовый комментарий"
  },
  "terminalId": "1234",
  "comment1": "qwerty",
  "comment2": "qwerty",
  "clientInfo": {
    "id": "Mzc3MzM="
  }
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "invalid_request",
    "text": "Некорректное или пустое значение X-Correlation-ID либо параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

Пример ответа:

{
  "error": {
    "code": "duplicated_request",
    "text": "Запрос с таким X-Correlation-ID уже был отправлен ранее"
  }
}

Возможные коды ошибок:

Код

Описание

duplicated_request

Запрос с таким X-Correlation-ID уже был отправлен ранее

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Полный перечень кодов — в справочнике ошибок.

COMMIT — подтверждение заказа#

POST https://api-sand.podeli.ru/partners/v1/orders/{orderId}/commit

Как работает

  1. Получив статус заказа WAIT_FOR_COMMIT (в HTTP-нотификации или через метод INFO), Магазин-Партнёр подтверждает сделку методом COMMIT.

  2. «Подели» отправляет захолдированный первый платёж на авторизацию в систему эквайринга банка.

  3. Результат авторизации «Подели» возвращает Магазину-Партнёру в HTTP-нотификации.

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

Поле

Тип

Обяз.

Описание

order

object

Заказ

├─ amount

number(18,2)

Сумма для оплаты через «Подели», в рублях с точностью до двух знаков. Не должна превышать сумму, указанную при создании заказа методом CREATE

├─ prepaidAmount

number(18,2)

Сумма аванса, внесённого Клиентом через другие способы оплаты, в рублях с точностью до двух знаков

└─ items

array of objects

Подтвержденные позиции заказа. Секция заполняется только в случае изменения корзины, переданной в CREATE

   ├─ id

string(36)

Идентификатор позиции в Магазине-Партнёре

   ├─ article

string(50)

Артикул товара

   ├─ quantity

number(18,3)

Количество товара, отгрузку которого подтверждает Магазин-Партнёр. Не должно превышать количество позиций товара, указанное при создании заказа методом CREATE. При нецелочисленном количестве передавать значение согласно правилу*

   └─ amount

number(18,2)

Цена товара, отгрузку которого подтверждает Магазин-Партнёр. Если не передана, цена остаётся равной значению, указанному при создании заказа методом CREATE

comment1

string(500)

Комментарий Магазина-Партнёра

comment2

string(500)

Комментарий Магазина-Партнёра

Тело ответа

Заголовки ответа и статус-коды — общие.

Поле

Тип

Обяз.

Описание

status

enum order_status_text

Статус заказа

amount

number double

Сумма для оплаты через «Подели»

paymentSchedule

array of objects

Данные по графику платежей

├─ paymentNumber

string

Номер платежа

├─ paymentDate

string date

Дата платежа

├─ paymentAmount

number

Сумма платежа

├─ statusName

string

Статус платежа

└─ typeName

string

Тип платежа

error

object

Описание ошибки (поля code, text)

Примеры

{
  "order": {
    "amount": 5000.00,
    "prepaidAmount": 500.00
  }
}
{
  "status": "COMMITTED",
  "amount": 5000.00,
  "paymentSchedule": [
    {
      "paymentNumber": "1",
      "paymentDate": "2026-07-13T09:45",
      "paymentAmount": 1250.00,
      "statusName": "HOLD",
      "typeName": "MAIN"
    },
    {
      "paymentNumber": "2",
      "paymentDate": "2026-07-27T09:45",
      "paymentAmount": 1250.00,
      "statusName": "SCHEDULED",
      "typeName": "MAIN"
    },
    {
      "paymentNumber": "3",
      "paymentDate": "2026-08-10T09:45",
      "paymentAmount": 1250.00,
      "statusName": "SCHEDULED",
      "typeName": "MAIN"
    },
    {
      "paymentNumber": "4",
      "paymentDate": "2026-08-24T09:45",
      "paymentAmount": 1250.00,
      "statusName": "SCHEDULED",
      "typeName": "MAIN"
    }
  ]
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "invalid_request",
    "text": "Некорректное или пустое значение X-Correlation-ID либо параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

incorrect_amount

Суммы заказа не сходятся

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

not_authorized_partner_expired

Истёк срок действия договора с Магазином-Партнёром

Пример ответа:

{
  "error": {
    "code": "not_found_order",
    "text": "Заказ не найден"
  }
}

Возможные коды ошибок:

Код

Описание

not_found_order

Заказ не найден

not_found_item

Позиция заказа не найдена

Пример ответа:

{
  "error": {
    "code": "incorrect_order_status",
    "text": "В текущем статусе заказа действие невозможно"
  }
}

Возможные коды ошибок:

Код

Описание

incorrect_order_status

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

item_quantity_exceeded

Количество товара превышает указанное при создании заказа

order_changed

Суммы отличаются от исходных, а частичное подтверждение недоступно — скорректируйте суммы или создайте новый заказ

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Полный перечень кодов — в справочнике ошибок.

CANCEL — отмена заказа#

POST https://api-sand.podeli.ru/partners/v1/orders/{orderId}/cancel

Как работает

  1. При отмене заказа (по инициативе Клиента или самого Магазина-Партнёра) вызывается метод CANCEL.

  2. Отменить можно заказы в статусах CREATED, SCORING, APPROVED*, WAIT_FOR_COMMIT.

  3. «Подели» отменяет заказ, снимает холд первого платежа (если он был выполнен) и отменяет предстоящие платежи по графику.

  4. Результат отмены возвращается в синхронном ответе метода; HTTP-нотификация при этом не отправляется.

Примечание

Если заказ находится в статусе APPROVED и Клиент уже приступил к оплате первого платежа, отмена заказа может быть временно недоступна. В этом случае метод вернёт статус-код 423. Дождитесь смены статуса заказа или повторите запрос позже.

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

Поле

Тип

Обяз.

Описание

cancellationInitiator

string

Инициатор отмены заказа: shop — по инициативе Магазина-Партнёра, client — по инициативе Клиента

Тело ответа

Заголовки ответа и статус-коды — общие; дополнительно возможны коды 404 — заказ не найден и 423 — платёж находится в обработке, отмена временно недоступна.

Поле

Тип

Обяз.

Описание

status

enum order_status_text

Статус заказа

amount

number double

Сумма для оплаты через «Подели»

paymentSchedule[]

array of objects

Данные по графику платежей

├─ paymentNumber

string

Номер платежа

├─ paymentDate

string date

Дата платежа

├─ paymentAmount

number

Сумма платежа, в рублях с точностью до 2 знаков

├─ statusName

string

Статус платежа

└─ typeName

string

Тип платежа

error

object

Описание ошибки (поля code, text)

Примеры

{
  "cancellationInitiator": "shop"
}
{
  "status": "CANCELLED",
  "amount": 5000.00,
  "paymentSchedule": []
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "invalid_request",
    "text": "Некорректное или пустое значение X-Correlation-ID либо параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

not_authorized_partner_expired

Истёк срок действия договора с Магазином-Партнёром

Пример ответа:

{
  "error": {
    "code": "not_found_order",
    "text": "Заказ не найден"
  }
}

Возможные коды ошибок:

Код

Описание

not_found_order

Заказ не найден

Пример ответа:

{
  "error": {
    "code": "incorrect_order_status",
    "text": "В текущем статусе заказа действие невозможно"
  }
}

Возможные коды ошибок:

Код

Описание

incorrect_order_status

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

Пример ответа:

{
  "error": {
    "code": "incorrect_payment_status",
    "text": "Платёж находится в обработке — отмена временно недоступна"
  }
}

Возможные коды ошибок:

Код

Описание

incorrect_payment_status

Платёж находится в обработке — отмена временно недоступна

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Полный перечень кодов — в справочнике ошибок.

REFUND — возврат товара#

POST https://api-sand.podeli.ru/partners/v1/orders/{orderId}/refund

Как работает

  1. Чтобы вернуть товары из заказа, Магазин-Партнёр вызывает метод REFUND.

  2. Возврат доступен только для заказов в статусах COMPLETED и REFUNDED.

  3. Срок возврата ограничен договором с Партнёром и отсчитывается от оплаты первого платежа; по его истечении метод возвращает ошибку refund_period_timeout.

  4. После возврата заказ переходит в статус REFUNDED. Частично возвращённый заказ возвращается в статус COMPLETED, как только Клиент полностью погасит оставшиеся платежи по графику.

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

Поле

Тип

Обяз.

Описание

order

object

Заказ

└─ refund

object

Возврат

   ├─ id

string(36)

Идентификатор возврата в Магазине-Партнёре

   ├─ initiator

string

Инициатор возврата. Допустимые значения: client, shop

   ├─ items

array of objects

Возвращаемые позиции из заказа

   │  ├─ id

string(36)

Идентификатор позиции из заказа для возврата

   │  ├─ refundedQuantity

number(18,3)

Количество возвращаемого товара. При нецелочисленном количестве передавать значение согласно правилу*

   │  ├─ refundedSum

number(18,2)

Сумма к возврату по товару, оплаченная через «Подели». Поле заполняется только партнёрами, для которых согласована возможность указания суммы возврата. В остальных случаях сумма возврата рассчитывается сервисом «Подели» на основе переданной корзины.

   │  └─ description

string(250)

Описание возврата в свободной форме

   ├─ comment1

string(500)

Комментарий Магазина-Партнёра

   ├─ comment2

string(500)

Комментарий Магазина-Партнёра

   └─ addParams

array of objects

Дополнительные параметры возврата.

      ├─ key

string

Код дополнительного параметра

      └─ value

string

Значение дополнительного параметра

Тело ответа

Заголовки ответа и статус-коды — общие.

Поле

Тип

Обяз.

Описание

order

object

Заказ

├─ id

string

Идентификатор заказа в Магазине-Партнёре

├─ status

string

Статус заказа

└─ items

array of objects

Позиции в заказе

   ├─ id

string

Идентификатор позиции в Магазине-Партнёре

   ├─ article

string

Артикул товара

   ├─ name

string

Наименование (описание) товара

   ├─ amount

double

Стоимость позиции для оплаты через «Подели», в рублях с точностью до двух знаков

   └─ quantity

number

Количество товара в заказе

refund

object

Возврат

├─ id

string

Идентификатор возврата

├─ status

string

Статус обработки запроса на возврат. Не отражает итоговый результат выполнения возврата.

├─ refundRequestDate

string date

Дата заявления на возврат

├─ totalRefundedAmount

number

Общая сумма возврата

├─ refundedAmountCredit

number

Сумма возврата, уплаченная через «Подели»

├─ refundedPrepaidAmount

number

Общая сумма возвращённой предоплаты способом, отличным от сервиса «Подели», в рублях с точностью до 2 знаков

└─ refundedItems[]

array of objects

Возвращённые позиции из заказа

   ├─ id

string

Идентификатор позиции в Магазине-Партнёре

   ├─ refundedQuantity

number

Количество возвращённого товара

   ├─ refundedAmount

number

Сумма возвращённой оплаты

   └─ refundedPrepaidAmount

number

Сумма возвращённой предоплаты

error

object

Описание ошибки (поля code, text)

Примеры

{
  "order": {
    "refund": {
      "id": 100001,
      "initiator": "client",
      "items": [
        {
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "refundedQuantity": 1
        }
      ],
      "addParams": [
        {
          "key": "mall",
          "value": "ТРЦ Сити Молл"
        },
        {
          "key": "cashRegisterNumber",
          "value": "1234567890"
        },
        {
          "key": "cashierNumber",
          "value": "0987654321"
        },
        {
          "key": "terminalId",
          "value": "1234"
        }
      ],
      "comment1": "Комментарий"
    }
  }
}
{
  "order": {
    "id": "test_order",
    "status": "REFUNDED",
    "items": [
      {
        "id": "30b925fb-42ae-469d-960e-7cb093d8867e",
        "article": "3ABC14858383D",
        "name": "Товар 1",
        "amount": 2500.00,
        "quantity": 1
      },
      {
        "id": "30b925fb-42ae-469d-960e-7cb093d8868e",
        "article": "3ABC14858383D",
        "name": "Товар 2",
        "amount": 2500.00,
        "quantity": 1
      }
    ]
  },
  "refund": {
    "id": "1234466",
    "status": "PENDING",
    "refundRequestDate": "2026-07-13T09:50:08.108628",
    "totalRefundedAmount": 3000.00,
    "refundedPrepaidAmount": 500.00,
    "refundedAmountCredit": 2500.00,
    "refundedItems": [
      {
        "id": "30b925fb-42ae-469d-960e-7cb093d8867e",
        "refundedQuantity": 1,
        "refundedAmount": 2500.00,
        "refundedPrepaidAmount": 500.00
      }
    ]
  }
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "invalid_request",
    "text": "Некорректное или пустое значение X-Correlation-ID либо параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

refund_period_timeout

Срок возврата истёк

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

not_authorized_partner_expired

Истёк срок действия договора с Магазином-Партнёром

not_authorized_refund_expired

Истёк срок приёма возвратов по договору

Пример ответа:

{
  "error": {
    "code": "not_found_order",
    "text": "Заказ не найден"
  }
}

Возможные коды ошибок:

Код

Описание

not_found_order

Заказ не найден

not_found_item

Позиция заказа не найдена

Пример ответа:

{
  "error": {
    "code": "incorrect_order_status",
    "text": "В текущем статусе заказа действие невозможно"
  }
}

Возможные коды ошибок:

Код

Описание

incorrect_order_status

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

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Полный перечень кодов — в справочнике ошибок.

INFO — получение информации по заказу#

GET https://api-sand.podeli.ru/partners/v1/orders/{orderId}/info

Метод доступен для вызова в любой момент после создания заказа методом CREATE.

Тело ответа

Заголовки ответа и статус-коды — общие; дополнительно возможен код 404 — заказ не найден.

Поле

Тип

Обяз.

Описание

order

object

Заказ

├─ id

string

Идентификатор заказа в Магазине-Партнёре

├─ amount

number

Сумма для оплаты через «Подели», в рублях с точностью до двух знаков

├─ prepaidAmount

number

Сумма аванса, внесённого Клиентом через другие способы оплаты, в рублях с точностью до двух знаков

├─ amountOrder

number

Общая сумма заказа, в рублях с точностью до двух знаков

├─ status

string

Статус заказа

├─ date

date-time

Дата заказа

└─ items

array of objects

Позиции в заказе

   ├─ id

string

Идентификатор позиции в Магазине-Партнёре

   ├─ article

string

Артикул товара

   ├─ name

string

Наименование (описание) товара

   ├─ amount

double

Стоимость позиции для оплаты через «Подели», в рублях с точностью до двух знаков

   ├─ quantity

number

Количество товара в заказе

   └─ prepaidAmount

number

Сумма аванса, внесённого Клиентом через другие способы оплаты, распределённая на конкретные позиции в заказе, в рублях с точностью до двух знаков

clientInfo

object

Клиент. Персональные данные скрыты — поля возвращаются маскированными

├─ firstName

string

Имя Клиента (данные скрыты)

├─ lastName

string

Фамилия Клиента (данные скрыты)

├─ middleName

string

Отчество Клиента (данные скрыты)

├─ birthdate

string

Дата рождения Клиента в формате YYYY-MM-DD (данные скрыты)

├─ phone

string

Телефон Клиента в формате РФ с маской 7XXXXXXXXXX (данные скрыты)

└─ email

string

Email Клиента

paymentSchedule

array of objects

Данные по графику платежей. График рассчитывается при одобрении заказа: до перехода заказа в статус APPROVED секция передаётся пустой

├─ paymentNumber

string

Номер платежа

├─ paymentDate

string

Дата платежа

├─ paymentAmount

number

Сумма платежа, в рублях с точностью до 2 знаков

└─ statusName

string

Статус платежа

refund

array of objects

Данные по возвратам

├─ id

string

Идентификатор возврата

├─ status

string

Статус возврата. Не отражает фактический статус операции

├─ refundDate

string

Дата возврата

├─ totalRefundedAmount

number

Сумма возврата товаров, в рублях с точностью до 2 знаков

├─ refundedPrepaidAmount

number

Общая сумма возвращённой предоплаты способом, отличным от сервиса «Подели», в рублях с точностью до 2 знаков

├─ refundedAmountCredit

number

Сумма возврата, оплаченная через «Подели»

└─ refundedItems

array of objects

Возвращённые позиции из заказа

   ├─ id

string

Идентификатор позиции в Магазине-Партнёре

   ├─ refundedQuantity

number

Количество возвращённого товара

   ├─ itemRefundedAmount

number

Сумма возвращённой оплаты

   └─ itemRefundedPrepaidAmount

number

Сумма возвращённой предоплаты

error

object

Описание ошибки (поля code, text)

Примеры

{
  "order": {
    "id": "test_order",
    "amount": 5000.00,
    "status": "REFUNDED",
    "prepaidAmount": 1000.00,
    "amountOrder": 6000.00,
    "date": "2026-07-13T09:44:26.100050Z",
    "items": [
      {
        "id": "30b925fb-42ae-469d-960e-7cb093d8867e",
        "article": "3ABC14858383D",
        "name": "Товар 1",
        "amount": 2500.00,
        "quantity": 1,
        "prepaidAmount": 500.00
      },
      {
        "id": "30b925fb-42ae-469d-960e-7cb093d8868e",
        "article": "3ABC14858383D",
        "name": "Товар 2",
        "amount": 2500.00,
        "quantity": 1,
        "prepaidAmount": 500.00
      }
    ]
  },
  "clientInfo": {
    "firstName": "*",
    "lastName": "*",
    "middleName": "*",
    "birthdate": "0001-01-01",
    "phone": "*",
    "email": "test@example.com"
  },
  "paymentSchedule": [
    {
      "paymentNumber": "1",
      "paymentDate": "2026-07-13T09:45",
      "paymentAmount": 1250.00,
      "statusName": "PAID"
    },
    {
      "paymentNumber": "2",
      "paymentDate": "2026-07-27T09:45",
      "paymentAmount": 417.00,
      "statusName": "SCHEDULED"
    },
    {
      "paymentNumber": "3",
      "paymentDate": "2026-08-10T09:45",
      "paymentAmount": 417.00,
      "statusName": "SCHEDULED"
    },
    {
      "paymentNumber": "4",
      "paymentDate": "2026-08-24T09:45",
      "paymentAmount": 416.00,
      "statusName": "SCHEDULED"
    }
  ],
  "refund": [
    {
      "id": "1234466",
      "status": "PROCESSED",
      "refundDate": "2026-07-13T09:50:08.108628",
      "totalRefundedAmount": 3000.00,
      "refundedPrepaidAmount": 500.00,
      "refundedAmountCredit": 2500.00,
      "refundedItems": [
        {
          "id": "30b925fb-42ae-469d-960e-7cb093d8867e",
          "refundedQuantity": 1,
          "itemRefundedAmount": 2500.00,
          "itemRefundedPrepaidAmount": 500.00
        }
      ]
    }
  ]
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

Пример ответа:

{
  "error": {
    "code": "not_found_order",
    "text": "Заказ не найден"
  }
}

Возможные коды ошибок:

Код

Описание

not_found_order

Заказ не найден

Полный перечень кодов — в справочнике ошибок.

ORDER_RECONCILIATION — сверка заказов#

GET https://api-sand.podeli.ru/partners/v1/orders/order_reconciliation

Как работает

  1. Магазин-Партнёр запрашивает сверку за период с помощью параметров dateFrom и dateTo.

  2. «Подели» отбирает оплаты и возвраты по офлайн-заказам за указанный период.

  3. Метод возвращает общие суммы или детализацию по каждой операции — в зависимости от параметра detailing.

Что попадает в сверку

  • Оплаты — офлайн-заказы в статусе COMPLETED с датой заказа внутри периода dateFromdateTo включительно.

  • Возвраты — возвраты по офлайн-заказам, если дата запроса возврата входит в указанный период. Заказ при этом мог быть оплачен раньше.

  • Параметры mall и cashRegisterNumber ограничивают выборку торговым центром и кассой.

Примечание

Период сверки не может превышать 24 часа. Если период больше, метод возвращает ошибку 416.

Примечание

Смещение таймзоны передаётся по правилам URL-кодирования: символ + нужно заменить на %2B.

Например:

2026-01-01T00:00:00+03:002026-01-01T00:00:00%2B03:00

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

Параметры передаются в строке запроса. Тело запроса пустое.

Заголовки запроса и ответа — общие.

Параметр

Тип

Обяз.

Описание

dateFrom

string date-time

Дата и время начала периода в формате YYYY-MM-DDTHH:MM:SS±HH:MM

dateTo

string date-time

Дата и время окончания периода в формате YYYY-MM-DDTHH:MM:SS±HH:MM. Значение должно быть больше dateFrom

mall

string

Торговый центр

cashRegisterNumber

string

Номер кассы

detailing

boolean

Формат сверки: false — общая сверка, true — детализация

Тело ответа

Заголовки ответа и статус-коды — общие.

Если detailing=false, метод возвращает общие суммы по оплатам и возвратам.

Поле

Тип

Обяз.

Описание

order

object

Информация по сверке

├─ payments

object

Оплаты

│ ├─ sum

number

Общая сумма оплат, в рублях с точностью до двух знаков

│ └─ count

integer

Количество оплат

├─ refunds

object

Возвраты

│ ├─ sum

number

Общая сумма возвратов, в рублях с точностью до двух знаков

│ └─ count

integer

Количество возвратов

└─ total

object

Итог с учётом возвратов

├─ sum

number

Сумма оплат за вычетом возвратов

└─ count

integer

Количество операций: оплат и возвратов

error

object

Описание ошибки (поля code, text)

Если detailing=true, метод возвращает список оплат и возвратов.

Поле

Тип

Обяз.

Описание

order

object

Информация по сверке

├─ payments

array of objects

Оплаты

│ ├─ orderId

string

Идентификатор заказа

│ ├─ amount

number

Сумма оплаты, в рублях с точностью до двух знаков

│ └─ transactionDate

string date-time

Дата и время оплаты

└─ refunds

array of objects

Возвраты

├─ orderId

string

Идентификатор заказа

├─ refundId

string

Идентификатор возврата

├─ amount

number

Сумма возврата, в рублях с точностью до двух знаков

└─ transactionDate

string date-time

Дата и время возврата

error

object

Описание ошибки (поля code, text)

Примечание

transactionDate возвращается без смещения таймзоны, с точностью до микросекунд.

Пример: 2026-07-20T02:11:09.779828.

Примеры

curl -G 'https://api-sand.podeli.ru/partners/v1/orders/order_reconciliation' \
  -H 'Authorization: Basic cGFydG5lcl9sb2dpbjpwYXJ0bmVyX3Bhc3N3b3Jk' \
  -H 'X-Correlation-ID: 4add3220-1da6-4bf0-92b5-854ba4f700d8' \
  --data-urlencode 'dateFrom=2026-01-01T00:00:00+03:00' \
  --data-urlencode 'dateTo=2026-01-01T23:59:59+03:00' \
  --data-urlencode 'detailing=false'
{
  "order": {
    "payments": {
      "sum": 5000.00,
      "count": 1
    },
    "refunds": {
      "sum": 1000.00,
      "count": 1
    },
    "total": {
      "sum": 4000.00,
      "count": 2
    }
  }
}
curl -G 'https://api-sand.podeli.ru/partners/v1/orders/order_reconciliation' \
  -H 'Authorization: Basic cGFydG5lcl9sb2dpbjpwYXJ0bmVyX3Bhc3N3b3Jk' \
  -H 'X-Correlation-ID: 9f1c7c02-3f0d-4a71-b8e2-1c2f5a6d7e80' \
  --data-urlencode 'dateFrom=2026-01-01T00:00:00+03:00' \
  --data-urlencode 'dateTo=2026-01-01T23:59:59+03:00' \
  --data-urlencode 'mall=TC_Aviapark' \
  --data-urlencode 'cashRegisterNumber=KKT-001' \
  --data-urlencode 'detailing=true'
{
  "order": {
    "payments": [
      {
        "orderId": "test_order",
        "amount": 5000.00,
        "transactionDate": "2026-01-01T10:00:00.000000"
      }
    ],
    "refunds": [
      {
        "orderId": "test_order",
        "refundId": "test_refund",
        "amount": 1000.00,
        "transactionDate": "2026-01-01T11:00:00.000000"
      }
    ]
  }
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "error_convert_params",
    "text": "Ошибка валидации параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

error_convert_params

Параметр не прошёл валидацию или не может быть приведён к нужному типу

invalid_request

Отсутствует X-Correlation-ID или обязательный параметр запроса

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

not_authorized_partner_expired

Истёк срок действия договора

Пример ответа:

{
  "error": {
    "code": "reconciliation_period_exceeded",
    "text": "Превышен период сверки заказов"
  }
}

Возможные коды ошибок:

Код

Описание

reconciliation_period_exceeded

Период сверки больше 24 часов

Пример ответа:

{
  "error": {
    "code": "invalid_date_format",
    "text": "Неверный формат даты или некорректный период"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_date_format

Неверный формат даты или dateFrom больше dateTo

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "При выполнении запроса возникла неизвестная ошибка"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

При выполнении запроса возникла неизвестная ошибка

CALCULATE — получение графика платежей#

POST https://api-sand.podeli.ru/partners/v1/orders/calculate

Как работает

  1. Партнёр направляет в «Подели» сумму для расчёта графика платежей.

  2. «Подели» возвращает рассчитанный график платежей.

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

Поле

Тип

Обяз.

Описание

sum

number(18,2)

Сумма для расчёта графика

Тело ответа

Заголовки ответа — общие; статус-коды: 200 — график успешно рассчитан; 400, 401, 429, 500 — общие.

Поле

Тип

Обяз.

Описание

paymentSchedule[]

array of objects

Данные по графику платежей

├─ paymentNumber

string

Номер платежа

├─ paymentDate

string date

Дата платежа

└─ paymentAmount

number

Сумма платежа, в рублях с точностью до 2 знаков

error

object

Описание ошибки (поля code, text)

Примеры

{
  "sum": 400
}
{
  "paymentSchedule": [
    {
      "paymentNumber": "1",
      "paymentDate": "2025-11-03",
      "paymentAmount": 100.00
    },
    {
      "paymentNumber": "2",
      "paymentDate": "2025-11-17",
      "paymentAmount": 100.00
    },
    {
      "paymentNumber": "3",
      "paymentDate": "2025-12-01",
      "paymentAmount": 100.00
    },
    {
      "paymentNumber": "4",
      "paymentDate": "2025-12-15",
      "paymentAmount": 100.00
    }
  ]
}

Ошибки метода

Выберите код, чтобы увидеть пример тела ответа:

Пример ответа:

{
  "error": {
    "code": "invalid_request",
    "text": "Некорректное или пустое значение X-Correlation-ID либо параметров запроса"
  }
}

Возможные коды ошибок:

Код

Описание

invalid_request

Некорректное или пустое значение X-Correlation-ID либо параметров запроса

Пример ответа:

{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}

Возможные коды ошибок:

Код

Описание

not_authorized_partner_login

Неверный логин/пароль

Пример ответа:

{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}

Возможные коды ошибок:

Код

Описание

req_number_exceeded

Превышен лимит запросов к серверу

Пример ответа:

{
  "error": {
    "code": "unknown_error",
    "text": "Неизвестная ошибка сервера"
  }
}

Возможные коды ошибок:

Код

Описание

unknown_error

Неизвестная ошибка сервера

Полный перечень кодов — в справочнике ошибок.

Статус-коды и ошибки#

В этом разделе описан общий формат ошибки API и справочник статус-кодов. Ошибки конкретного метода приведены в блоке «Ошибки метода» под его описанием.

Справочник ошибок#

Код

Код ошибки

Описание

400

validation_error

Ошибка валидации тела запроса: отсутствует обязательное поле, нарушен формат или тип данных.

400

invalid_request

Некорректный X-Correlation-ID или параметры запроса.

400

incorrect_amount

Итоговая сумма заказа не совпадает с суммой позиций.

401

not_authorized_partner_login

Неверный логин или пароль партнёра.

401

not_authorized_partner_expired

Истёк срок действия договора с Магазином-Партнёром.

401

partner_not_connected_service

Партнёр не подключён к сервису «Подели».

401

sub_partner_not_connected_service

Субпартнёр не подключён к сервису «Подели».

404

not_found_order

Заказ не найден.

404

not_found_item

Позиция заказа не найдена.

422

duplicated_request

Запрос с таким X-Correlation-ID уже был отправлен ранее.

422

duplicated_order

Заказ с таким order/id уже был отправлен ранее.

422

duplicated_item

В запросе переданы позиции с одинаковым items/id.

422

incorrect_order_status

Действие недоступно в текущем статусе заказа.

423

incorrect_payment_status

Платёж находится в обработке. Отмена временно недоступна.

429

req_number_exceeded

Превышен лимит запросов. Повторите запрос через время, указанное в заголовке X-Retry-After.

500

unknown_error

Неизвестная ошибка сервера.

503

service_unavailable

Сервис временно недоступен.

Примеры ошибок#

{
  "error": {
    "code": "validation_error",
    "text": "Structure 'order' must be filled"
  }
}
{
  "error": {
    "code": "not_authorized_partner_login",
    "text": "Неверный логин/пароль"
  }
}
{
  "error": {
    "code": "not_found_order",
    "text": "Заказ не найден"
  }
}
{
  "error": {
    "code": "incorrect_order_status",
    "text": "В текущем статусе заказа действие невозможно"
  }
}
{
  "error": {
    "code": "incorrect_payment_status",
    "text": "Платёж находится в обработке"
  }
}
{
  "error": {
    "code": "req_number_exceeded",
    "text": "Превышен лимит запросов к серверу"
  }
}
{
  "error": {
    "code": "unknown_error",
    "text": "При выполнении запроса возникла неизвестная ошибка"
  }
}

Примечание

Метод ORDER_RECONCILIATION использует собственные коды ошибок. См. описание метода.

Правило передачи дробного количества товара#

Подсказка

Правила заполнения полей запроса при передаче дробных значений количества товара, например:

  • 1,56 кг яблок стоимостью 234,67 ₽/кг;

  • 0,254 кг салата стоимостью 801,20 ₽/кг.

Поля amount, quantity и prepaidAmount секции order/items заполняются так:

items[1]

  • в поле items/amount — сумма оплаты единицы измерения товара через «Подели»: 234,67;

  • в поле items/quantity — дробное количество: 1,56;

  • в поле items/prepaidAmount — ничего не передавать (поле необязательное).

items[2]

  • в поле items/amount — 801,20;

  • в поле items/quantity — 0,254;

  • в поле items/prepaidAmount — ничего не передавать (поле необязательное).

Поля amount и prepaidAmount секции order заполняются так:

  • в поле order/amount — сумма округлённых (математически) значений стоимости каждой позиции из заказа: округл(366,0852; 2) + округл(203,5048; 2) = 366,09 + 203,50 = 569,59;

  • в поле order/prepaidAmount — сумма скидки по заказу либо сумма, оплаченная бонусными баллами (общая по заказу).

Библиотеки для API#

Для ускорения разработки доступны готовые обёртки API — подключите их в свой проект:


См. также

Для сценария оплаты через QR-терминал предусмотрен отдельный метод — см. Оплата через QR-терминал. Метод доступен по индивидуальному согласованию.