[POST] Генерация ссылки на покупку

POST /v1/generate_buy_link

Запрос позволяет получить ссылку на покупку, с помощью которой:

  • Покупатель переходит в корзину,
  • В корзину добавляются все продукты с динамическими характеристиками, переданные в запросе,
  • Данные покупателя для оформления заказа, перезаполняются данными, переданными в запросе.

В запросе передаются:

content-type
string
required
MIME-тип данных в теле запроса

Должен быть равен "application/json".
AuthorizationJWT
required
Авторизационный токен
  • Формат значения: Bearer [token]
  • Вместо [token] подставьте значение token, полученное в ответ на запрос к Authentication API
currency
string
required
Код валюты продажи продукта
Доступные валюты настраиваются при подключении в соответствии с вашим договором.
  • Формат: ISO 4217 alpha-3, 3 символа
  • Варианты значений см. в справочнике
market_id
number
required*
Идентификатор вашей корзины
Если идентификатор корзины передан и в этой корзине разрешена продажа в соответствующей валюте, то ссылка на покупку будет сформирована для этой корзины.
  • * - Обязательный параметр, если у вас есть несколько корзин с одинаковой валютой продажи, в ином случае можно не передавать
  • Чтобы узнать идентификатор вашей корзины обратитесь в техподдержку
products
array [objects]
required
Список динамических продуктов
Каждый объект в массиве соответствует одному продукту, который нужно добавить в корзину.

Для каждого продукта вы передаете:
  • Идентификатор базового продукта, из которого будут взяты настройки по умолчанию
  • Значения свойств (название, цену и т,д), которые переопределят свойства базового продукта в корзине
Вы можете передать несколько объектов внутри массива, чтобы добавить в корзину сразу несколько продуктов по одной ссылке. В этом случае для каждого продукта используется свой (отдельный) базовый продукт.
products / [object]
/
id
number
required
Идентификатор базового продукта
Этот идентификатор продукта на нашей стороне, который должен быть предварительно настроен. Из этого продукта будут взяты значения свойств по умолчанию.
Если в запросе содержится несколько продуктов, то их id не могут совпадать. То есть в одном запросе не может быть два продукта с динамическими характеристиками на основе одного и того же базового продукта.
products / [object]
/
sku
string
Ваш артикул продукта
products / [object]
/
vendor_code
string
Ваш идентификатор продукта
products / [object]
/
name
string
required
Название продукта
products / [object]
/
name_for_invoice
string
Наименование продукта для закрывающих документов
Если передано, то используется в закрывающих документах по заказу (например, счет-фактура, товарная накладная) вместо названия продукта из параметра products.name.
products / [object]
/
price
string
required
Цена за единицу продукта
Используется при расчете итоговой стоимости продукта в корзине.
  • Формат: число с 2 десятичными знаками, разделитель - точка, значение передается как строка
  • Цена может быть равна нулю, если продукт является подарком, узнайте подробнее о том, как правильно добавить подарок к заказу
  • Продажа продуктов с бесплатным пробным периодом по нулевой цене на текущий момент не доступна через данное API
products / [object]
/
discount_percent
number
Процент скидки на продукт
  • Формат: число, до 6 десятичных знаков, разделитель - точка
  • Значение должно отвечать условию: 0 < discount_percent ≤ 100
  • Цена может быть равна 100%, если продукт является подарком, узнайте подробнее о том, как правильно добавить подарок к заказу
products / [object]
/
quantity
number
required
Количество продукта в корзине
Покупатель не сможет изменить это количество.
products / [object]
/
is_delivery_needed
boolean
Способ доставки продукта

Варианты значения:
  • true - физическая доставка
  • false - электронная доставка (лицензионная информация отправляется покупателю на email)
Значение по умолчанию задано в базовом продукте.
products / [object]
/
is_installments_unavailable
boolean
Запрет оплаты продукта в рассрочку

Варианты значения:
  • true - продукт нельзя оплатить в рассрочку.
    Если хотя бы у одного продукта в запросе запрещена рассрочка, то она не будет предложена для оплаты заказа
  • false - продукт можно оплатить в рассрочку
По умолчанию - false.

Возможность оплаты в рассрочку настраивается отдельно для корзины в целом. Узнайте подробнее об этой возможности.
products / [object]
/
is_service
boolean
Техническое поле
products / [object]
/
vat_included
boolean
Начисление НДС при продаже продукта в российских рублях (RUB)

Варианты значения:
  • true - НДС начисляется
  • false - продукт не облагается НДС
Значение по умолчанию задано в базовом продукте в зависимости от наличия программы в реестре отечественного ПО.
Если вы хотите переопределить настройки из базового продукта, то используйте следующие правила:
Если вы резидент РФ и не являетесь плательщиком НДС (используете УСН), или являетесь плательщиком НДС (используете ОСН), то:
  • Если программа внесена в реестр российского ПО, то продажа осуществляется без НДС, в запросе нужно передавать vat_included: false
  • Если программа не внесена в реестр, то продажа облагается НДС, и вы должны передавать в запросе vat_included: true
Узнайте подробнее о том, как рассчитывается итоговая стоимость продукта.
products / object
/
additional_data
object
Дополнительные параметры для продукта
Это служебные информационные данные, которые не отображаются покупателю и не влияют на оформление заказа. Переданные значения будут сохранены для позиции заказа.

Внутри объекта additional_data можно передать несколько значений дополнительных параметров.
products / object / additional_data
/
[name]
string
Значение дополнительного параметра
  • Вместо [name] подставьте название параметра:
    • Должно быть уникальным внутри одного объекта additional_data
    • Допустимы только латинские буквы и цифры
    • Не более 255 символов
  • В значении допускается использование html-тегов, объем значения не ограничен.
Внутри объекта additional_data можно передать несколько значений дополнительных параметров.
products / [object]
/
subscription
object
Настройки подписки с автоматическим продлением (AR)
  • Если для базового продукта сделаны предварительные настройки автопродления и параметр передан, то для динамического продукта в корзине будет доступна подписка с автоматическим продлением
  • Если параметр не передан, то в корзине для продукта не будет доступно автопродление (независимо от настроек базового продукта)
Узнайте подробнее о том, как работает автопродление с динамическими продуктами.
products / [object] / subscription
/
period
string
required*
Срок действия продукта, инициирующего подписку (родительского)
  • * - Обязательный параметр, если передан параметр products.subscription
  • Формат: ISO 8601: P[число][ед.измерения]
  • Поддерживаемые единицы измерения: Y - год, M - месяц, D - день.
    Например, "P1Y" соответствует сроку "1 год".
products / [object] / subscription
/
name
string
Название продукта для продления подписки (дочернего)
Если не передано, то будет использовано название продукта продления для базового продукта.
products / [object] / subscription
/
price
string
Цена за единицу продукта для продления подписки (дочернего)
Узнайте подробнее, как рассчитывается цена за продление.
  • Число с 2 десятичными знаками, разделитель - точка. Передается как строка.
  • Если не передано, то будет использована цена продукта продления для базового продукта.
customer
object
Данные покупателя
Если данные переданы, то они будут предварительно заполнены в корзине. Покупатель может изменить эти значения.
customer / [object]
/
type
string
Тип покупателя

Возможные варианты:
  • physical - физическое лицо
  • juridical - юридическое лицо
customer / [object]
/
email
string
E-mail покупателя

Не более 72 символов.
customer / [object]
/
first_name
string
Имя покупателя

Не более 255 символов.
customer / [object]
/
last_name
string
Фамилия покупателя

Не более 255 символов.
customer / [object]
/
phone
string
Номер телефона покупателя

Не более 64 символов.
customer / [object]
/
vat_number
string
Номер налогоплательщика покупателя
В том числе используется для заполнения ИНН при продажах в российских рублях. Предварительное заполнение номера будет выполнено, только если в корзине предусмотрено одно поле для ввода номера налогоплательщика (вид поля зависит от валюты продажи). В ином покупатель должен заполнить номер налогоплательщика самостоятельно.

Не более 255 символов.
company_name
string
customer / [object]
Наименование компании покупателя

Не более 255 символов.
customer / [object]
/
company_billing_address
string
Юридический адрес компании покупателя

Не более 255 символов.
customer / [object]
/
company_delivery_address
string
Фактический адрес компании покупателя

Не более 255 символов.
customer / [object]
/
country
string
Страна покупателя
  • Формат: ISO 3166-1
  • Если страна передана и соответствует валюте запроса, то она автоматически будет выбрана в корзине
  • Если страна не соответствует валюте запроса (currency), но доступна в корзине, то поле страны считается более приоритетным, валюта в корзине будет определена по переданной стране, см. примеры далее
additional_data
object
Дополнительные параметры для заказа
Это служебные информационные данные, которые не отображаются покупателю и не влияют на оформление заказа. Переданные значения будут сохранены в заказ. Узнайте подробнее, как использовать дополнительные параметры. Обратите внимание, срок хранения дополнительных параметров в заказе ограничен.

Внутри объекта additional_data можно передать несколько значений дополнительных параметров.
additional_data
/
[name]
string
Значение дополнительного параметра
Внутри additional_data может быть передан один или несколько вложенных параметров со значениями.
  • Вместо [name] подставьте название параметра:
    • Должно быть уникальным внутри одного объекта additional_data
    • Допустимы только латинские буквы и цифры
    • Не более 255 символов
    • В случае, если название равно referer1, referer2, .. и.д.д до referer12, то далее значения этих дополнительных параметров вы сможете передать в веб-сервис для получения лицензии
  • В значении допускается использование html-тегов, объем значения не ограничен.
Внутри объекта additional_data можно передать несколько значений дополнительных параметров.
upsell
object
Данные для up-sell предложения при входе в корзину
Используйте, чтобы предложить покупателю заменить один из продуктов в корзине на более привлекательный. Это предложение будет показано покупателю сразу, как он перейдет в корзину по ссылке на покупку.

Узнайте подробнее, как работают up-sell предложения с динамическими продуктами
upsell / object
/
product_id
number
required*
Идентификатор продукта, для которого нужно показать up-sell предложение
Это один из продуктов, выбранных покупателем, который нужно добавить в корзину (products) и показать покупателю up-sell предложение заменить этот продукт на другой.
  • * - Обязательный параметр, если был передан параметр upsell
  • Идентификатор, переданный в этом параметре, должен совпадать с одним из идентификаторов базовых продуктов products.id
Посмотрите дополнительное описание и примеры заполнения.
upsell / object
/
name
string
required*
Заголовок up-sell предложения
Отображается покупателю в up-sell предложении. Это может быть, например, название продукта, для которого предлагается замена в up-sell. Подробнее см. в описании шаблона up-sell предложения.
  • * - Обязательный параметр, если был передан параметр upsell
  • Не более 255 символов
upsell / object
/
description
string
Описание up-sell предложения
Отображается покупателю рядом с заголовком в up-sell предложении, если параметр передан. Подробнее см. в описании шаблона up-sell предложения.
upsell / object
/
picture_url
string
URL изображения для up-sell предложения
Up-sell может содержать изображение, которое расположено на вашей стороне и подгружается в окно предложения при его открытии. На текущий момент эта возможность доступна только для индивидуальных шаблонов up-sell предложений. Если вы хотите использовать индивидуальный шаблон предложения, отправьте запрос на email ecommerce@softline.com с описанием изменений шаблона по умолчанию.
  • Требования к URL изображения:
    • Валидный URL, который указывает на файл изображения на вашей стороне, находящийся в открытом доступе (доступ к файлу не требует авторизации)
    • Допустим только https протокол
    • Не более 255 символов
  • Допустимые форматы изображения: *.gif, *.jpg, *,jpeg, *.png
  • mimeTypes: 'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png'
Если по какой-либо причине не удалось получить изображение, то оно не будет показано. Никаких сообщений об ошибках и заглушек изображения для покупателя при этом не выводится.

При отображении изображение может быть отмасштабировано в соответствии с размером места, которое предусмотрено дизайном.
upsell / object
/
products
array [objects]
required*
Список продуктов на замену
Это продукты, которые будут показаны покупателю в up-sell предложении. Если покупатель выберет один из них, то этот продукт будет добавлен в корзину, а продукт, для которого было показано up-sell предложение (upsell.product_id), удален из корзины.

Каждый объект в массиве соответствует одному продукту, который нужно показать в up-sell предложении.
  • * - Обязательный параметр, если был передан параметр upsell
  • В массиве должно быть передано от 1 до 3 продуктов
upsell / object / products / object
/
id
number
required*
Идентификатор базового продукта для продукта на замену
  • * - Обязательный параметр, если был передан параметр upsell
  • Может совпадать с идентификатором продукта в корзине, для которого отображается up-sell предложение (upsell.product_id)
  • Не должен совпадать с идентификаторами других продуктов в корзине, переданных в массиве products, за исключением того продукта, для которого отображается up-sell предложение upsell.product_id
  • Можно использовать одинаковый базовый продукт для всех продуктов на замену, переданных в массиве upsell.products
Посмотрите дополнительное описание и примеры заполнения.
upsell / object / products / object
/
sku
string
Ваш артикул для продукта на замену

Не более 40 символов.
upsell / object / products / object
/
vendor_code
string
Ваш идентификатор для продукта на замену

Не более 255 символов.
upsell / object / products / object
/
name
string
required*
Название продукта для корзины для продукта на замену
Это название будет отображено для продукта в корзине, после того, как покупатель выберет этот продукт в up-sell предложении

* - Обязательный параметр, если был передан параметр upsell

Обратите внимание, с помощью параметров upsell.products.name и upsell.products.name_for_upsell вы можете задать два разных названия для одного и того же продукта: Вы можете использовать эту возможность, например, чтобы показать продукт в up-sell предложении с кратким названием.
upsell / object / products / object
/
name_for_upsell
string
required*
Название продукта для up-sell предложения
Это название будет отображено для продукта в up-sell предложении. См. описание использования в параметре upsell.products.name.

* - Обязательный параметр, если был передан параметр upsell.
upsell / object / products / object
/
name_for_invoice
string
Название продукта для закрывающих документов для продукта на замену
Если передано, то используется в закрывающих документах по заказу (например, счет-фактура, товарная накладная) вместо названия продукта из параметра upsell.products.name.
upsell / object / products / object
/
price
string
required*
Цена за единицу для продукта на замену
Используется в up-sell предложении и в корзине при расчете стоимости продукта.
  • * - Обязательный параметр, если был передан параметр upsell
  • Формат: число с 2 десятичными знаками, разделитель - точка. Передается как строка
  • Включите сумму VAT в цену, если это предусмотрено вашим договором. См. подробнее в описании предварительных настроек
  • Если вы хотите предоставить скидку на продукт покупателю, то передайте в этом параметре цену с учетом скидки
  • Цена должна быть больше нуля
upsell / object / products / object
/
benefit
string
Полная сумма выгоды (экономии) для продукта на замену
Отображается покупателю только в up-sell предложении. Это информационное значение, которое не влияет на стоимость продукта в up-sell предложении и в корзине. Подробнее см. в описании шаблона up-sell предложения.
  • Формат: число с 2 десятичными знаками, разделитель - точка. Передается как строка
  • Должна быть передана полная сумма. Это значение никак не пересчитывается на нашей стороне, в том числе с учетом количества продукта и VAT
upsell / object / products / object
/
quantity
number
required
Количество продукта для продукта на замену
Используется в up-sell предложении и в корзине при расчете стоимости продукта. Покупатель не сможет изменить это количество.

* - Обязательный параметр, если был передан параметр upsell
upsell / object / products / object
/
vat_included
boolean
Начисление VAT для цены в рублях (RUB) для продукта на замену
Используется в up-sell предложении и в корзине при расчете стоимости продукта. Правило заполнения такое же, как для параметра products.vat_included
upsell / object / products / object
/
subscription
object
Настройки подписки с автоматическим продлением (AR) для продукта на замену
Передайте этот параметр, чтобы добавить продукту на замену возможность подписки с автопродлением.

Вложенные параметры и правила заполнения такие же, как для параметра products.subscription.
upsell / object / products / object / subscription
/
period
string
required*
Срок действия продукта, инициирующего AR подписку (родительского) для продукта на замену

Правило заполнения такое же, как для параметра products.subscription.period.
upsell / object / products / object / subscription
/
name
string
Название продукта (дочернего) для продления подписки на продукт на замену

Правило заполнения такое же, как для параметра products.subscription.name.
upsell / object / products / object / subscription
/
price
string
Цена за единицу продукта (дочернего) для продления подписки на продукт на замену

Правило заполнения такое же, как для параметра products.subscription.price.
upsell / object / products / object
/
additional_data
object
Дополнительные параметры для заказа с продуктом из up-sell предложения
Это служебные информационные данные, которые не отображаются покупателю и не влияют на оформление заказа. Узнайте подробнее, как использовать дополнительные параметры.

Если этот параметр был передан, и покупатель выбрал один из продуктов up-sell предложения, то значения из upsell.products.additional_data заменят значения из additional_data и products.additional_data (для соответствующего продукта) при совпадении названий параметров. А если названия не совпали, то значения будут добавлены к имеющимся дополнительным параметрам продукта и заказа. Посмотрите подробное описание и пример использования.
upsell / object / products / object / additional_data
/
[name]
string
Значение дополнительного параметра для заказа с продуктом из up-sell предложения
Внутри additional_data может быть передан один или несколько вложенных параметров со значениями.

Формат аналогичен значениям, переданным в additional_data.
upsell_exit
/
upsell_exit
object
Данные для up-sell предложения при выходе из корзины
Используйте, чтобы предложить покупателю заменить один из продуктов в корзине на более привлекательный. Это предложение будет показано покупателю в случае, если:
  • Курсор мыши выходит за пределы активной области окна браузера, в котором открыта корзина
  • И перед этим покупатель не заменял продукт в корзине на продукт из ранее показанного up-sell предложения (upsell)
Узнайте подробнее, как работают up-sell предложения с динамическими продуктами
upsell_exit-params
/
[...]
Список допустимых параметров такой же, как для параметра upsell.
{
  "currency": "RUB",
  "products": [
    {
      "id": 111111,
      "name": "Демо продукт с динамическими характеристиками",
      "price": "100.00",
      "quantity": 1
    }
  ]
}
{
  "currency": "RUB",
  "products": [
    {
      "id": 111111,
      "vendor_code": "12345",
      "sku": "001",
      "name": "Демо-продукт с динамическими характеристиками, лицензия на 3 месяца",
      "name_for_invoice": "Демо-продукт",
      "price": "100.00",
      "discount_percent": 10,
      "quantity": 1,
      "is_delivery_needed": false,
      "is_installments_unavailable": false,
      "vat_included": false,
      "additional_data": {
        "referer7": "product=demo&project=test&upsell",
        "referer8": "testA1",
        "demo": "testB1"
      },
      "subscription": {
        "period": "P1Y",
        "name": "Продление лицензии на 1 год",
        "price": "300.00"
      }
    }
  ],
  "customer": {
    "type": "juridical",
    "email": "test@test.com",
    "first_name": "Иван",
    "last_name": "Петров",
    "phone": "7999991111",
    "vat_number": "12345654321",
    "company_name": "ООО Компания",
    "company_billing_address": "Москва, Ломоносовский пр-т, 12",
    "company_delivery_address": "Москва, Ломоносовский пр-т, 12",
    "country": "RU"
  },
  "additional_data": {
    "referer7": "product=demo&project=test",
    "referer8": "testA",
    "demo": "testB1"
  },
  "upsell": {
    "product_id": 111111,
    "name": "Специальное предложение",
    "description": "Купите Демо-продукт с расширенными возможностями",
    "picture_url": "https://shop.com/offer-img.png",
    "products": [
      {
        "id": 111111,
        "vendor_code": "12346",
        "sku": "011",
        "name": "Демо-продукт с поддержкой на 1 год",
        "name_for_upsell": "С расширенной поддержкой на 1 год",
        "name_for_invoice": "Демо-продукт + поддержка",
        "price": "200.00",
        "benefit": "50.00",
        "quantity": 1,
        "vat_included": false,
        "subscription": {
          "period": "P1Y",
          "name": "Продление лицензии на 1 год",
          "price": "300.00"
        },
        "additional_data": {
          "referer7": "product=demo&project=test&upsell",
          "referer8": "testA1",
          "demo": "testB1"
        }
      },
      {
        "id": 111111,
        "vendor_code": "12347",
        "sku": "012",
        "name": "Демо-продукт с дополнительной лицензией на 4 устройства",
        "name_for_upsell": "С дополнительными 4 лицензиями",
        "name_for_invoice": "Демо-продукт + 4 лицензии",
        "price": "1500.00",
        "benefit": "300.00",
        "quantity": 1,
        "vat_included": false,
        "subscription": {
          "period": "P1Y",
          "name": "Продление лицензии на 1 год",
          "price": "1300.00"
        },
        "additional_data": {
          "referer7": "product=demo&project=test&upsell",
          "referer8": "testA2",
          "demo": "testB1"
        }
      }
    ]
  },
  "upsell_exit": {
    "product_id": 111111,
    "name": "Специальное предложение",
    "description": "Купите Демо-продукт с расширенными возможностями",
    "picture_url": "https://shop.com/offer-img.png",
    "products": [
      {
        "id": 111111,
        "vendor_code": "12346",
        "sku": "011",
        "name": "Демо-продукт с поддержкой на 1 год",
        "name_for_upsell": "С расширенной поддержкой на 1 год",
        "name_for_invoice": "Демо-продукт + поддержка",
        "price": "200.00",
        "benefit": "50.00",
        "quantity": 1,
        "vat_included": false,
        "subscription": {
          "period": "P1Y",
          "name": "Продление лицензии на 1 год",
          "price": "300.00"
        },
        "additional_data": {
          "referer7": "product=demo&project=test&upsell",
          "referer8": "testA1",
          "demo": "testB1"
        }
      },
      {
        "id": 111111,
        "vendor_code": "12347",
        "sku": "012",
        "name": "Демо-продукт с дополнительной лицензией на 4 устройства",
        "name_for_upsell": "С дополнительными 4 лицензиями",
        "name_for_invoice": "Демо-продукт + 4 лицензии",
        "price": "1500.00",
        "benefit": "300.00",
        "quantity": 1,
        "vat_included": false,
        "subscription": {
          "period": "P1Y",
          "name": "Продление лицензии на 1 год",
          "price": "1300.00"
        },
        "additional_data": {
          "referer1": "product=demo&project=test&upsell",
          "referer8": "testA1",
          "demo": "testA2"
        }
      }
    ]
  }
}

В ответ на запрос вы получите код ответа сервера, соответствующий результату обработки.
В зависимости от кода в теле ответа могут присутствовать дополнительные параметры.

При успешной обработке запроса вы получите код ответа сервера HTTP/1.1 200 OK. В теле ответа будет передана ссылка на покупку, сформированная в соответствии с данными в запросе.

buy_link
string
Ссылка на покупку динамических продуктов, данные для которых были переданы в запросе.
  • Имеет формат: https://[домен-корзины]/basket/flash/[идентификатор-динамической-корзины]
  • При работе с тестовой средой в ответе будет возвращена ссылка на покупку для тестовой среды (ссылка будет иметь суффикс .demoslweb.ru).
  • В случае, если при переходе по ссылке открывается пустая корзина (продукт не был добавлен), то такая проблема возникает, если базовый продукт не доступен для продажи на нашей стороне. Проверьте id базового продукта в запросе.
external_id
string
required
Идентификатор динамической корзины
Этот идентификатор создается при обработке запроса и является уникальным. То есть в ответ на каждый запрос вернется отдельный идентификатор.
Если покупатель оформляет заказ по ссылке на покупку, полученной в ответ на запрос, то этот идентификатор система сохраняет в заказ. Далее вы можете получить его, в информации о заказе, например, в webhook-оповещениях или через Orders API.
{
 "buy_link": "https://cart.checkout.softline.com/basket/flash/123456",
 "external_id": "123456"
}

В случае ошибки при обработке запроса вы получите код ответа сервера, соответствующий результату обработки.
В зависимости от кода в теле ответа могут присутствовать дополнительные параметры.

Справочник HTTP-кодов ответа сервера при ошибке

Код ответа сервера Описание
HTTP/1.1 400 Bad Request Запрос не валиден (ошибка в параметрах; не переданы необходимые данные и т.п.).
В теле ответа будет передан дополнительный код ошибки (один или несколько).
HTTP/1.1 401 Unauthorized Неуспешная аутентификация.
В теле ответа будет передан дополнительный код ошибки (один или несколько). 
HTTP/1.1 404 Not found Неверный URL запроса. Проверьте адрес запроса.
HTTP/1.1 500 Request Error Ошибка на стороне сервера. Повторите запрос позднее или обратитесь в службу поддержки.
Error Message Описание
Если хотя бы одна ошибка из списка ниже найдена, то она возвращается в ответе на запрос, остальные ошибки не проверяются
110 JSON is not valid. Структура полей запроса не валидна. Проверьте поля в теле запроса на соответствие формату JSON
111 Invalid data format (Content-type). Неправильный заголовок запроса. Content-type должен быть равен application/json
3120 Unable to define cart settings for this currency. Please contact technical support. Не получилось определить корзину или продукт для переданной валюты продажи (currency)
3125 Sales through this cart are impossible with this currency. Please contact technical support. Не получилось определить корзину или продукт для переданной валюты продажи (currency) и корзины (market_id
Если хотя бы одна ошибка из списка ниже найдена, то проверка запроса не прерывается. В ответе может быть возвращено несколько ошибок
3010 Invalid field value: [название параметра] Запрос не валиден, например, не передан обязательный параметр, неверно указано название параметра, значение параметра не соответствует указанному типу данных, неверный формат значения.
В том числе ошибка будет возвращена, если в параметре передано значение null, и этот вариант значения не указан как допустимый в описании параметра
3020 Order price cannot be equal to zero. Change product price (price, discount_percent) or add product having non-zero price. Стоимость продукта с учетом скидки равна нулю (products.price = 0 или products.discount_percent = 100), но в запросе нет другого продукта, у которого стоимость будет больше нуля
3030 Incorrect discount value. Discount_percent value must be strictly greater than zero and less than or equal to 100. Неправильное значение скидки (products.discount_percent), значение должно отвечать условиям: 0 discount_percent <= 100
3040 Purchase of this original product subscription is impossible. Change original product (id) or delete subscription data (subscription). В запросе переданы данные для подписки (products.subscription), но для базового продукта создание подписки не доступно
3050 Purchase of this original product is impossible. Change original product (id). В запросе передан базовый продукт (products.id), который не найден на нашей стороне
3060 Email field is filled out incorrectly. Expected format: [name]@[domain].[zone] Передан не корректный email адрес (customer.email)
3070 Single request must contain products with different products.id values. В запросе переданы данные нескольких продуктов, которые нужно добавить в корзину (products), но идентификаторы базовых продуктов совпадают (products.id). Используйте разные базовые продукты, чтобы добавить несколько продуктов в корзину
3210 Unable to show up-sell offer. The product id upsell.product_id must match at least one product in the cart (products.id). В запросе переданы данные up-sell предложения (upsell), но идентификатор продукта, для которого нужно показать up-sell предложение (upsell.product_id) отсутствует среди продуктов, которые будут добавлены в корзину (products)
3220 Unable to show up-sell offer. The replacement product id (upsell.products.id) must not match the id of the product in the cart which is not upsell.product_id. В запросе переданы данные up-sell предложения (upsell), но в списке продуктов на замену (upsell.products) есть продукт, который уже находится в корзине (products) и при этом не является продуктом, для которого отображается up-sell предложение (upsell.product_id)
3230 Unable to show up-sell offer. The cost of a replacement product cannot be zero (upsell.products.price). Неправильная цена на продукт в up-sell предложении (upsell). Цена продукта на замену (upsell.products.price) не может быть равна нулю
3240 Unable to show up-sell offer. The number of replacement products must be 3 or less (upsell.products). Неправильное количество продуктов, которые будут предложены на замену в  up-sell предложении (upsell.products). Количество продуктов внутри массива должно быть от 1 до 3
3310 Unable to show up-sell offer. The product id upsell_exit.product_id must match at least one product in the cart (products.id). В запросе переданы данные up-sell предложения (upsell_exit), но идентификатор продукта, для которого нужно показать up-sell предложение (upsell_exit.product_id) отсутствует среди продуктов, которые будут добавлены в корзину (products)
3320 Unable to show up-sell offer. The replacement product id (upsell_exit.products.id) must not match the id of the product in the cart which is not upsell.product_id. В запросе переданы данные up-sell предложения (upsell_exit), но в списке продуктов на замену (upsell_exit.products) есть продукт, который уже находится в корзине (products) и при этом не является продуктом, для которого отображается up-sell предложение (upsell_exit.product_id)
3330 Unable to show up-sell offer. The cost of a replacement product cannot be zero (upsell_exit.products.price). Неправильная цена на продукт в up-sell предложении (upsell_exit). Цена продукта на замену (upsell_exit.products.price) не может быть равна нулю
3340 Unable to show up-sell offer. The number of replacement products must be 3 or less (upsell_exit.products). Неправильное количество продуктов, которые будут предложены на замену в  up-sell предложении (upsell_exit.products). Количество продуктов внутри массива должно быть от 1 до 3

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

errors
array [objects]
required
Список ошибок.
errors / [error object]
/
error
number
required
Код ошибки.
errors / [error object]
/
message
string
required
Описание ошибки.
{
  "errors": [
    {
      "error": 3010,
      "message": "Invalid field value: currency."
    },
    {
      "error": 3010,
      "message": "Invalid field value: name."
    }
  ]
}