Zenky Storefront API (v1)

Поддержка API: tech@zenky.io URL: https://openapi.zenky.io/sf1/ License: MIT

Последнее обновление: Sat, 23 Mar 2024 21:16:11 GMT

Начало работы

Storefront API – это новый, легковесный API от Zenky.io, который идеально подходит для разработки клиентских приложений (веб-сайтов, мобильных приложений и т.д.), которым не требуется полноценный API с большим количеством данных. С помощью Storefront API вы можете получить доступ к каталогу магазина, профилю покупателя (включая регистрацию, вход в аккаунт и восстановление пароля), контентным ресурсам (статьи, категории статей, акции) и, конечно, к полноценному процессу оформления заказов.

Разумеется, вы можете по-прежнему использовать полную версию API для разработки клиентский приложений, однако, мы рекомендуем внедрять Storefront API для разработки новых приложений, так как он более простой и удобный в использовании.

Выполнение запросов

Базовый адрес для выполнения запросов к API - https://storefront.zenky.io/v1. Формат возвращаемых данных - JSON.

HTTP-методы

Каждый метод API может поддерживать один или несколько из перечисленных HTTP-методов:

  • GET для чтения информации;
  • POST для создания нового объекта или для выполнения команд (таких как отправка заказа);
  • PUT для изменения существующего объекта;
  • DELETE для удаления существующего объекта.

Заголовки

Все запросы к API должны выполняться с заголовком Accept: application/json. В некоторых случаях, если заголовок Accept не был передан или его значением не является строка application/json, вы можете получить в ответ HTML-код или перенаправление на внутренние страницы панели управления магазином.

ID магазина

Все запросы к Storefront API требуют передачи обязательного параметра {store} в пути запроса. Значением этого параметра должен быть идентификатор магазина, с которым в данный момент выполняется работа.

Пример полного URL: https://storefront.zenky.io/v1/store/8b53353d-3f62-45f0-a7e6-b7a993ea7f68.

Если мы будем добавлять новые методы Storefront API, которые могут быть вызваны вне контекста магазина, это будет отражено в документации к таким методам. На данный момент все методы относятся только к магазинам.

Ответы API

Любой успешный ответ обязательно содержит в себе корневое поле data, в котором, в зависимости от запроса, располагается тело ответа.

Если был выполнен запрос на получение списка объектов, то в поле data будет находиться массив объектов. Если же был выполнен запрос на получение одного объекта, то в поля data будет находиться объект.

Кроме того, на одном уровне с полем data может присутствовать поле meta - в основном оно используется для передачи информации о количестве страниц списка объектов.

Включения ответов

Кроме основной информации об объекте методы могут отдавать расширенную информацию о вложенных сущностях (т.н. включения ответов или includes). У каждого метода, который поддерживает такие включения, имеется свой список возможных включений, которые необходимо передавать с помощью параметра with. Если требуется вернуть несколько включений, их необходимо разделять запятыми.

Включения, которые поддерживаются конкретным методом, перечислены в его описании. Кроме этого, в описании структуры объектов также указаны названия включений тех или иных полей.

Обработка ошибок

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

Возможные коды ошибок и способы их решения перечислены в описании методов.

Если вы столкнулись с неизвестной ошибкой, пожалуйста, создайте новый issue в нашем репозитории на GitHub. Обратите внимание, что этот репозиторий является публичным и любой пользователь может просматривать ваши обращения. Не публикуйте ваши API-токены и другую конфиденциальную информацию, особенно относящуюся к покупателям.

В случае, если ваш запрос содержит конфиденциальную информацию, вместо создания issue вы можете написать нам на почту tech@zenky.io с подробным описанием проблемы, приложив полное тело запроса, включая URL и ID магазина. Так же при обращении на почту вы можете указать API-токен, который использовался для выполнения запроса, в этом случае мы не будем его инвалидировать, если только это не потребуется для решения проблемы.

Authentication

Bearer

Практически все методы работают без API-токенов в режиме чтения информации (запросы методом GET). Если же вам необходимо создавать, редактировать или удалять какую-либо информацию, вы должны предоставлять API-токен зарегистрированного в этом магазине покупателя.

Пожалуста, обратите внимание, что токены, созданные в одном магазине, не будут работать в другом магазине.

Передавайте полученный в ходе аутентификации токен покупателя в HTTP-заголовке Authorization в формате Bearer <TOKEN>, заменив <TOKEN> на актуальное значение токена.

Не публикуйте полученные токены в открытом доступе, так как они дают возможность просматривать и редактировать информацию аутентифицированного покупателя.

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

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

Магазин

Получить профиль магазина

path Parameters
store
required
string

ID магазина

Responses

Response samples

Content type
application/json
{}

Получить профиль магазина по App Bundle ID

path Parameters
appBundleId
required
string

App Bundle ID

Responses

Response samples

Content type
application/json
{}

Категории

Получить дерево категорий

Этот метод поддерживает следующие включения:

ВключениеОписание
coverОбложка категории
seoSEO
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

Responses

Response samples

Content type
application/json
{}

Получить список категорий

Этот метод поддерживает следующие включения:

ВключениеОписание
coverОбложка категории
seoSEO

Этот метод поддерживает следующие поля сортировки (передаются в параметре order_by):

ПолеОписание
nameПо названию (asc)
-nameПо названию (desc)
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

featured
boolean

Вернуть только избранные категории

Responses

Response samples

Content type
application/json
{}

Получить категорию

Этот метод поддерживает следующие включения:

ВключениеОписание
coverОбложка категории
seoSEO
path Parameters
store
required
string

ID магазина

category
required
string

ID категории

query Parameters
with
string

Список включений

Responses

Response samples

Content type
application/json
{}

Получить список групп характеристик для категории

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

path Parameters
store
required
string

ID магазина

category
required
string

ID категории

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Получить список характеристик для категории

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

path Parameters
store
required
string

ID магазина

category
required
string

ID категории

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Коллекции товаров

Получить список коллекций

Этот метод поддерживает следующие поля сортировки (передаются в параметре order_by):

ПолеОписание
nameПо названию (asc)
-nameПо названию (desc)
sortingПо заданной сортировке (asc)
-sortingПо заданной сортировке (desc)
path Parameters
store
required
string

ID магазина

query Parameters
count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

Responses

Response samples

Content type
application/json
{}

Получить коллекцию

path Parameters
store
required
string

ID магазина

collection
required
string

ID коллекции

Responses

Response samples

Content type
application/json
{}

Товары

Получить список товаров

Категории (без обложки и SEO) и изображения включены по умолчанию.

Этот метод поддерживает следующие включения:

ВключениеОписание
categories.coverКатегории и обложки
categories.seoКатегории и SEO
featuresХарактеристики
features_groupsГруппы характеристик
modifiersМодификаторы
modifiers_groupsГруппы модификаторов
variantsВарианты товара
variants.pricesВарианты и цены
variants.dimensionsВарианты и габариты
variants.remaindersВарианты и остатки
variants.options.optionВарианты, опции вариантов и их значения
seoSEO

Этот метод поддерживает следующие поля сортировки (передаются в параметре order_by):

ПолеОписание
nameПо названию (asc)
-nameПо названию (desc)
priceПо цене (asc)
-priceПо цене (desc)
manualПо заданной сортировке (asc)
-manualПо заданной сортировке (desc)
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

category_id
string

ID категории

features
Array of strings

ID значений характеристик (ключи - ID характеристик)

f
Array of strings

Алиасы значений характеристик (ключи – алиасы характеристик). Несколько значений можно разделять запятой.

city_id
string

ID города (несовместим с stock_id)

stock_id
string

ID склада (несовместим с city_id)

collection_id
string

ID коллекции товаров

group_id
string

ID группы товаров

number or string

Минимальная цена

number or string

Максимальная цена

featured_categories
boolean

Товары из избранных категорий

promotion_reward
string
Default: "no"
Enum: "yes" "no" "all"

Товары-подарки за акции

context_type
string
Enum: "category" "group" "variant_option" "variant_option_value"

Тип контекста товаров (используется вместе с context_id)

context_id
string

ID контекста товаров (используется вместе с context_type)

Responses

Response samples

Content type
application/json
{}

Получить товар

Категории (без обложки и SEO) и изображения включены по умолчанию.

Этот метод поддерживает следующие включения:

ВключениеОписание
categories.coverКатегории и обложки
categories.seoКатегории и SEO
featuresХарактеристики
features_groupsГруппы характеристик
modifiersМодификаторы
modifiers_groupsГруппы модификаторов
variantsВарианты товара
variants.pricesВарианты и цены
variants.dimensionsВарианты и габариты
variants.remaindersВарианты и остатки
variants.options.optionВарианты, опции вариантов и их значения
seoSEO
path Parameters
store
required
string

ID магазина

product
required
string

ID товара

query Parameters
with
string

Список включений

stock_id
string

ID склада

Responses

Response samples

Content type
application/json
{}

Получить цену варианта товара

Вычисляет цену варианта товара с выбранными модификаторами. Передавайте параметр city_id, чтобы получить переопределённую для выбранного города цену. Поле modifiers_hash из ответа следует использовать для поиска такого же варианта в корзине текущего заказа.

path Parameters
store
required
string

ID магазина

product
required
string

ID товара

variant
required
string

ID варианта товара

query Parameters
city_id
string

ID текущего города.

stock_id
string

ID выбранного склада.

Request Body schema: application/json
Array of objects

Выбранные модификаторы

Responses

Request samples

Content type
application/json
{
  • "modifiers": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Адреса

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

path Parameters
store
required
string

ID магазина

Request Body schema: application/json
query
string

Строка поиска адреса

city_id
string

Город, в котором нужно искать адреса

count
number

Количество записей (по умолчанию 5, не более 20)

Responses

Request samples

Content type
application/json
{
  • "query": "улан-удэ, жердева 104б",
  • "count": 10
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Заказы

Получить список оформленных заказов покупателя

Этот метод поддерживает следующие включения:

ВключениеОписание
variantsПозиции заказа
variants.variantПозиции заказа и варианты товаров
variants.variant.optionsПозиции, варианты, опции вариантов и их значения
variants.modifiersПозиции и выбранные модификаторы товаров
variants.modifiers.modifierПозиции, выбранные модификаторы и оригинальные модификаторы
variants.modifiers.modifiers_groupПозиции, выбранные модификаторы и оригинальные группы модификаторов
variants.productПозиции заказа и товары
variants.product.imagesПозиции заказа, товары и изображения
variants.product.categoriesПозиции заказа, товары и категории
city.settingsГород и настройки
stock.scheduleСклад и режим работы
customerПокупатель
delivery_addressАдрес доставки
delivery_zoneЗона доставки
statusesИстория изменения статусов
progressПрогресс изменения статусов
paymentsПлатёжные транзакции
delivery_intervalИнтервал доставки
Authorizations:
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

submitted_from
string

Начальная дата оформления заказа (поддерживаемые форматы: YYYY-MM-DD HH:MM:SS, YYYY-MM-DD HH:MM, YYYY-MM-DD)

submitted_till
string

Конечная дата оформления заказа (поддерживаемые форматы: YYYY-MM-DD HH:MM:SS, YYYY-MM-DD HH:MM, YYYY-MM-DD)

order_status_id
string

ID статуса заказа (можно перечислять несколько через запятую)

city_id
string

ID города

submission_period
string

Период оформленных заказов. Поддерживаются следующие периоды: сутки (24h), неделя (7d), месяц (30d), год (1y). Не рекомендуется использовать вместе с submitted_from/submitted_till.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Создать заказ

path Parameters
store
required
string

ID магазина

Request Body schema: application/json
city_id
string

ID города

Responses

Request samples

Content type
application/json
{
  • "city_id": "dcb2f209-c9a4-482c-8427-fc6e651e3ddf"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Получить заказ

Этот метод поддерживает следующие включения:

ВключениеОписание
variantsПозиции заказа
variants.variantПозиции заказа и варианты товаров
variants.variant.optionsПозиции, варианты, опции вариантов и их значения
variants.modifiersПозиции и выбранные модификаторы товаров
variants.modifiers.modifierПозиции, выбранные модификаторы и оригинальные модификаторы
variants.modifiers.modifiers_groupПозиции, выбранные модификаторы и оригинальные группы модификаторов
variants.productПозиции заказа и товары
variants.product.imagesПозиции заказа, товары и изображения
variants.product.categoriesПозиции заказа, товары и категории
city.settingsГород и настройки
stock.scheduleСклад и режим работы
customerПокупатель
delivery_addressАдрес доставки
delivery_zoneЗона доставки
statusesИстория изменения статусов
progressПрогресс изменения статусов
paymentsПлатёжные транзакции
delivery_intervalИнтервал доставки
path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
with
string

Список включений

token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Настройки заказа

Метод возвращает список опций, способов доставки и способов оплаты, которые доступны для выбранного заказа.

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Повторить заказ

Этот метод позволяет повторить ранее оформленный заказ.

В новый заказ будут скопированы все доступные для заказа товары из исходного заказа (включая модификаторы товаров). К новому заказу так же будут привязаны покупатель и способ доставки (связанный склад или адрес доставки).

Этот метод можно вызвать только с передачей API-токена покупателя, который оформлял заказ.

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

В ответе на запрос будут возвращены идентификатор и токен нового заказа.

Передавайте ID текущего заказа в поле current_order_id, чтобы получить websocket-уведомление о копировании заказа (orders.repeated).

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
503orders.repeat.failedНевозможно повторить выбранный заказ. В поле `meta` может содержаться код причины ошибки (поле `reason`).Проверить, что повтор заказов подключён для магазина.
403orders.repeat.invalid_customer_profileВыбранный заказ был оформлен другим покупателем.Убедиться, что передаётся токен аутентифицированного покупателя, который оформлял выбранный заказ.
422orders.repeat.must_be_submittedПовторить можно только оформленные заказы.Не отображать кнопку «Повторить заказ» для заказов, которые ещё не были оформлены.
Authorizations:
path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

Request Body schema: application/json
current_order_id
string

ID текущего заказа

Responses

Request samples

Content type
application/json
{
  • "current_order_id": "9a6857af-f758-497a-ade4-dcb9bd038252"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Отменить заказ

Этот метод позволяет отменить заказ. Возможность отмены заказа необходимо проверять в boolean-поле can_cancel структуры заказа.

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
403orders.cant_be_cancelledИстекли условия, при которых можно отменить заказ.Не отображать кнопку «Отменить заказ» для заказов, которые нельзя отменить (поле `can_cancel` у заказов).
Authorizations:
path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Позиции

Добавить товары к заказу

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
product_variant_id
string

ID варианта товара

quantity
integer

Количество

promotion_id
string

ID акции, с которой связан добавляемый подарок

promotion_reward_id
string

ID подарка акции, с которым связан добавляемый вариант

Array of objects

Список модификаторов

Responses

Request samples

Content type
application/json
{
  • "product_variant_id": "b11f7b7f-5f41-4bc2-97fa-7df49225a2ba",
  • "quantity": 1,
  • "promotion_id": "7c2efbaf-ed05-4981-9748-b94a1b78ad33",
  • "promotion_reward_id": "9f5934fb-ed3c-42fe-8dd4-ae3f12699957",
  • "modifiers": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Удалить товары из заказа

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
product_variant_id
string

ID варианта товара

quantity
integer

Количество

promotion_id
string

ID акции, с которой связан удаляемый подарок

promotion_reward_id
string

ID подарка акции, с которым связан удаляемый вариант

Array of objects

Список модификаторов

Responses

Request samples

Content type
application/json
{
  • "product_variant_id": "b11f7b7f-5f41-4bc2-97fa-7df49225a2ba",
  • "quantity": 1,
  • "promotion_id": "7c2efbaf-ed05-4981-9748-b94a1b78ad33",
  • "promotion_reward_id": "9f5934fb-ed3c-42fe-8dd4-ae3f12699957",
  • "modifiers": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Проверить актуальность корзины

Этот метод позволяет проверить актуальность корзины по следующим параметрам:

  • Корректность цен. Если у товаров из корзины изменилась цена, проблемные товары могут быть удалены;
  • Полное наличие остатков. Если какие-либо товары в корзине отсутствуют в полном составе на складах (в зависмости от настроек магазина), проблемные товары могут быть удалены;
  • Недоступность товаров. Если у каких-либо товаров была отключена возможность заказа, проблемые товары могут быть удалены.

В зависимости от настроек магазина, в поле action будет строка none (корзина не менялась) либо cleanup (проблемые товары были удалены). Если произошло удаление товаров, вам следует перезагрузить весь заказ и уведомить покупателя, что состав корзины изменился.

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Оформление

Привязать покупателя к заказу

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
object

Телефон покупателя (обязателен, если нет токена аутентификации)

first_name
string

Имя покупателя

last_name
string

Фамилия покупателя

gender
string
Enum: "female" "male" "other"

Пол покупателя

birth_date
string

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

Responses

Request samples

Content type
application/json
{
  • "phone": {
    },
  • "first_name": "Иван",
  • "gender": "male",
  • "birth_date": "1991-09-20"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Указать способ доставки заказа

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
delivery_method
string
Enum: "delivery" "pickup" "on_premise"

Способ доставки

object

Адрес доставки (обязателен, если delivery_methoddelivery)

stock_id
string

ID склада (обязателен, если delivery_methodpickup или on_premise)

object

Информация о заказе в заведении (обязателен, если delivery_methodon_premise)

deliver_at
string

Дата отложенной доставки в часовом поясе города (в формате YYYY-MM-DD HH:MM)

object

Интервал доставки

Responses

Request samples

Content type
application/json
{
  • "delivery_method": "delivery",
  • "delivery_address": {
    },
  • "deliver_at": "2021-07-20 19:00"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Указать интервал доставки заказа

Используйте этот метод, если интервал доставки невозможно указать вместе со способом доставки (например, если вы запросили у покупателя способ доставки до наполнения корзины).

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
object

Интервал доставки

Responses

Request samples

Content type
application/json
{
  • "delivery_interval": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Указать способ оплаты заказа

Используйте этот метод для передачи одного основного способа оплаты (cash, credit-card, mobile_bank, cloudpayments или card_token) и (опционально) суммы оплаты бонусами (bonuses).

Если покупатель списывает бонусы, вам необходимо передать сумму списания в поле amount объекта оплаты бонусами. Для остальных способов оплаты это поле заполнять не нужно – оно будет проигнорировано на сервере.

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

Бонусы и платежи по токену (card_token) не списываются после вызова этого метода. Списание произойдёт только во время оформления заказа.

Повторные вызовы этого метода будут удалять все предыдущие платёжные транзакции и создавать новые.

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
Array of objects

Список способов оплаты

Responses

Request samples

Content type
application/json
{
  • "payments": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Предпросмотр бонусов

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

Если в параметре amount будет передана сумма бонусов, превышающая лимит списания (из-за ограничений на процент оплаты или из-за нехватки баланса), в поле bonuses будет указана максимальная сумма списания.

В поле unpaid будет указана оставшаяся сумма к оплате. Если сумма равна нулю, это означает, что заказ может быть полностью оплачен бонусами и основной способ оплаты можно не передавать.

Внимание: этот метод не регистрирует платёжные транзакции и не списывает бонусы.

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

required
string or number

Сумма бонусов для списания

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Сводка о заказе

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Оформить заказ

Этот метод должен быть вызван только после привязки покупателя, указания способа доставки и способа оплаты заказа.

Если поле confirmation_required установлено в true, необходимо выполнить подтверждение заказа кодом из SMS, который был отправлен покупателю (см. раздел «Подтверждение»). Первоначальная отправка кода выполняется автоматически.

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
503orders.submission.disabledПриём заказов временно недоступен для этого магазина.Включить приём заказов (если вы владелец магазина), оформить заказ в рабочее время.
422orders.no_cityК заказу не привязан город.Привязать город к заказу и повторить процесс оформления заказа.
422orders.already_submittedЭтот заказ уже был оформлен ранее.После оформления каждого заказа следует создавать новый и работать с ним.
401orders.checkout.authentication_requiredТребуется аутентификация покупателя.Заказ нужно оформлять только после регистрации или входа покупателя в свой аккаунт.
422orders.no_customerПокупатель не найден.Убедиться, что покупатель был привязан.
503security.banЗапрос не может быть выполнен из-за блокировки телефона или IP-адреса.Дождаться снятия блокировки или написать письмо на tech@zenky.io, если блокировка была ошибочной.
422orders.invalid_delivery_methodВыбранный способ доставки отключен у магазина.Включить в настройках магазина нужный способ доставки или использовать другой доступный.
422orders.stock_missingСклад самовывоза не указан.Передать ID склада самовывоза.
422orders.delivery.city_stock_mismatchВыбранный склад самовывоза не относится к выбранному городу.Передать ID склада самовывоза, который относится к выбранному городу, или изменить город.
422addresses.not_specifiedАдрес доставки не указан.Убедиться, что адрес доставки был задан до оформления.
422orders.on_premise.table_missingНе указан номер стола.Убедиться, что номер стола в заведении был задан до оформления.
422orders.delivery_address.out_of_deliveryАдрес доставки не входит ни в одну зону доставки.Привязать другой адрес или изменить границы зоны доставки в панели управления магазином.
422orders.min_price.too_lowСумма заказа меньше минимальной суммы для оформления.Добавить товары, чтобы сумма заказа стала равна и больше минимальной суммы или изменить минимальную суммму для оформления.
422orders.payments.invalid_methodВыбранный способ оплаты недоступен.Включить в настройках магазина нужный способ оплаты или привязать другой доступный.
422orders.payments.amount_is_not_enoughСумма зарегистрированных платежей меньше суммы заказа.Зарегистрировать способы оплаты ещё раз или отключить проверку суммы оплаты в настройках магазина. Если покупатель изменяет корзину после регистрации платежей, их нужно регистрировать заново.
422orders.payments.amount_exceeds_total_priceПереданная сумма платежей превышает сумму заказа.Изменить сумму платежей или отключить проверку суммы оплаты в настройках магазина.
422orders.products.ordering_disabledНекоторые товары недоступны для заказа.Убрать из корзины недоступные для заказа товары или отключить блокировку в редактировании товара.
422orders.products.out_of_stockНекоторых товаров нет в наличии.Изменить содержание корзины или изменить настройку проверки наличия товаров в панели управления магазином.
422orders.products.price_mismatchУ некоторых товаров изменилась цена после добавления в корзину.Изменить содержание корзины или изменить настройку проверки соответствия цен в панели управления магазином.
422orders.promotions.extra_rewardsВ заказе содержатся лишние товары-подарки за акции.Удалить лишние товары-подарки за акции.
503loyalty.disabledПрограмма лояльности отключена.Убрать из списка платежей оплату бонусами.
503loyalty.not_availableAPI программы лояльности недоступен.Обратиться в техподдержку, передав ID заказа.
404orders.payments.card_token.not_foundТокен сохранённой карты не найден.Убедитесь, что передаётся корректный ID токена сохранённой карты. Обратитесь в техподдержку, передав ID заказа, ID токена сохранённой карты и полный ответ сервера.
404orders.payments.card_token.invalid_acquiringНеизвестный сервис эквайринга.Обратитесь в техподдержку, передав ID заказа и ID токена сохранённой карты.
503orders.payments.card_token.failedОплата по токену карты не удалась.Обратитесь в техподдержку, передав ID заказа и ID токена сохранённой карты.
503acquiring.not_availableСервис эквайринга не подключен.Подключить эквайринг в панели управления магазином.
path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
notes
string

Комментарий к заказу

persons_count
number

Количество персон

Responses

Request samples

Content type
application/json
{
  • "notes": "Без палочек.",
  • "persons_count": 2
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Подтверждение

Подтвердить номер телефона

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Request Body schema: application/json
code
integer

Код подтверждения из SMS

Responses

Request samples

Content type
application/json
{
  • "code": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Повторно отправить код подтверждения в SMS

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Программа лояльности

Получить список транзакций заказа

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
count
integer

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

page
integer

Номер страницы

token
string

Токен заказа (для неаутентифицированных запросов)

type
string
Enum: "increase" "decrease"

Тип транзакции (increase – пополнение, decrease – списание)

status
string
Enum: "pending" "confirmed" "cancelled" "refunded"

Статус транзакции (pending – ожидает подтверждения, confirmed – подтверждена, cancelled – отменена, refunded – возвращена).

reason
string
Enum: "manual" "cashback" "referral_reward" "recruit_reward" "payment" "cancellation" "refund" "adjustment" "welcome_bonuses" "promotion_reward" "external"

Причина создания транзакции

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Получить транзакцию кэшбэка для заказа

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Запустить проверку выполненных акций

Этот метод запускает фоновую проверку акций, а результат проверки отправляет в вебсокет-соединение событиями orders.promotions.not_found (если у заказа не выполнены условия ни для одной акции) или orders.rewards.display_selection (если покупателю доступен выбор товаров в качестве подарка).

Так же после запуска проверки вы можете получить событие orders.rewards.reload, после чего нужно перезагрузить список подарков (или весь заказ, если вам так удобнее). Это событие может быть отправлено, если покупатель получил подарок в виде бонусов (фактически бонусы будут начислены только после выполнения заказа).

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Получить список выбранных наград за акции

path Parameters
store
required
string

ID магазина

order
required
string

ID заказа

query Parameters
token
string

Токен заказа (для неаутентифицированных запросов)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Аутентификация

Регистрация нового покупателя

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.registration.referrer.not_foundУчетная запись пригласившего вас пользователя не найдена.Использовать другой код приглашения (`referrer_code`) или ID пригласившего пользователя (`referrer_id`).
422auth.already_registeredЭта учётная запись уже зарегистрирована.Использовать другой номер телефона.
503security.banЗапрос не может быть выполнен из-за блокировки телефона или IP-адреса.Дождаться снятия блокировки.
422customers.phone_requiredНужно указать номер телефона покупателя.Убедиться, что номер телефона передан.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

password
string

Пароль покупателя (от 8 символов)

first_name
string

Имя покупателя

last_name
string

Фамилия покупателя

gender
string
Enum: "female" "male" "other"

Пол покупателя

birth_date
string

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

referrer_code
string

Код приглашения для программы «Пригласи друга» (вместо referrer_id)

referrer_id
string

ID пользователя для программы «Пригласи друга» (вместо referrer_code)

Responses

Request samples

Content type
application/json
{
  • "phone": {
    },
  • "password": "1jEIjf3bnW",
  • "first_name": "Иван",
  • "last_name": "Иванов",
  • "referrer_code": "MiniatureSilverStilt"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Подтверждение регистрации

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.user_not_foundУчётная запись не найдена.Убедиться, что передан правильный номер телефона.
422auth.registration.already_confirmedЭта учётная запись уже подтверждена.Использовать другой номер телефона для подтверждения.
403auth.registration.invalid_confirmation_codeНеправильный код подтверждения регистрации.Убедиться, что передан правильный код подтверждения.
422auth.registration.password_requiredНужно указать пароль.Убедиться, что пароль был передан во время регистрации или во время подтверждения.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

number or string

Код подтверждения

password
string

Пароль покупателя (от 8 символов)

first_name
string

Имя покупателя

last_name
string

Фамилия покупателя

gender
string
Enum: "female" "male" "other"

Пол покупателя

birth_date
string

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

Responses

Request samples

Content type
application/json
{
  • "phone": {
    },
  • "code": "1234",
  • "password": "1jEIjf3bnW",
  • "first_name": "Иван",
  • "last_name": "Иванов"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Повторно выслать код подтверждения регистрации

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.user_not_foundУчётная запись не найдена.Убедиться, что передан правильный номер телефона.
422auth.registration.already_confirmedЭта учётная запись уже подтверждена.Использовать другой номер телефона для подтверждения.
503security.banЗапрос не может быть выполнен из-за блокировки телефона или IP-адреса.Дождаться снятия блокировки или написать письмо на tech@zenky.io, если блокировка была ошибочной.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

Responses

Request samples

Content type
application/json
{
  • "phone": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Запросить код для сброса пароля

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.user_not_foundУчётная запись не найдена.Убедиться, что передан правильный номер телефона.
503auth.password_reset.not_availableСброс пароля недоступен для этой учётной записи.Ошибка возникает только на системных демо-аккаунтах.
503security.banЗапрос не может быть выполнен из-за блокировки телефона или IP-адреса.Дождаться снятия блокировки или написать письмо на tech@zenky.io, если блокировка была ошибочной.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

Responses

Request samples

Content type
application/json
{
  • "phone": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Установить новый пароль

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.user_not_foundУчётная запись не найдена.Убедиться, что передан правильный номер телефона.
503auth.password_reset.not_availableСброс пароля недоступен для этой учётной записи.Ошибка возникает только на системных демо-аккаунтах.
422auth.password_reset.code_expiredКод сброса пароля истёк.Запросить новый код сброса пароля.
422auth.password_reset.invalid_codeНеправильный код сброса пароля.Указать правильный код сброса пароля.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

number or string

Код сброса пароля

password
string

Новый пароль (от 8 символов)

Responses

Request samples

Content type
application/json
{
  • "phone": {
    },
  • "code": "1234",
  • "password": "LHP5q2HuNc"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Вход в аккаунт

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404auth.user_not_foundУчётная запись не найдена.Убедиться, что передан правильный номер телефона.
403auth.registration.confirmation_requiredНужно подтвердить номер телефона, указанный при регистрации.Перенаправить покупателя на страницу подтверждения регистрации.
403auth.invalid_passwordНеправильный пароль.Убедиться, что передан правильный пароль.
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

password
string

Пароль покупателя (от 8 символов)

Responses

Request samples

Content type
application/json
{
  • "phone": {
    },
  • "password": "1jEIjf3bnW"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Проверка телефона

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

path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

Responses

Request samples

Content type
application/json
{
  • "phone": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Профиль покупателя

Просмотр профиля покупателя

Этот метод поддерживает следующие включения:

ВключениеОписание
avatarАватар
settingsНастройки
Authorizations:
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

Responses

Response samples

Content type
application/json
{}

Изменение профиля покупателя

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
422customers.birth_date.forbiddenДату рождения изменять нельзя.Сообщить покупателю, что он может изменить дату рождения, обратившись к представителям магазина.
422auth.invalid_passwordНеправильный пароль.Убедиться, что в поле `current_password` передан правильный пароль (требуется, если покупатель хочет изменить пароль).
Authorizations:
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
first_name
string

Имя покупателя

last_name
string

Фамилия покупателя

gender
string
Enum: "female" "male" "other"

Пол покупателя

birth_date
string

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

password
string

Новый пароль покупателя (от 8 символов)

current_password
string

Текущий пароль покупателя (требуется, если заполнено поле password)

Responses

Request samples

Content type
application/json
{
  • "first_name": "Иван",
  • "last_name": "Иванов"
}

Response samples

Content type
application/json
{}

Удаление профиля покупателя

Этот метод удаляет все адреса доставки покупателя, привязанные карты и обнуляет баланс бонусов. Номер телефона становится доступным для новой регистрации.

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
403auth.invalid_passwordУказан неправильный пароль.Убедиться, что в поле `password` передан правильный пароль.
Authorizations:
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
password
string

Пароль покупателя

Responses

Request samples

Content type
application/json
{
  • "password": "1jEIjf3bnW"
}

Настройки покупателя

Просмотр настроек профиля покупателя

Authorizations:
path Parameters
store
required
string

ID магазина

Responses

Response samples

Content type
application/json
{}

Изменение настроек профиля покупателя

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

Authorizations:
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Объект с изменяемыми настройками

Responses

Request samples

Content type
application/json
{
  • "settings": {
    }
}

Response samples

Content type
application/json
{}

Адреса покупателя

Получить список адресов покупателя

Authorizations:
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Создать адрес покупателя

В поле delivery_address должен быть один из следующих объектов:

  1. Если магазин использует DaData.ru, объект с обязательным полем address, в котором должен быть указан полный адрес доставки до дома (включая город/населённый пункт, микрорайон (если есть), улицу (если есть), номер дома и корпус (если есть)). Вместе с адресом можно передать подъезд, квартиру, этаж, наличие домофона и заметку;
  2. Если магазин не использует DaData.ru, объект с отдельными полями адреса (city, street, house и т.д.).

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
422addresses.resolver.failedНе удалось определить адрес доставки.Убедиться, что адрес введён правильно и полностью.
Authorizations:
path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Адрес покупателя

Responses

Request samples

Content type
application/json
{
  • "delivery_address": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Изменить адрес покупателя

В поле delivery_address должен быть один из следующих объектов:

  1. Если магазин использует DaData.ru, объект с обязательным полем address, в котором должен быть указан полный адрес доставки до дома (включая город/населённый пункт, микрорайон (если есть), улицу (если есть), номер дома и корпус (если есть)). Вместе с адресом можно передать подъезд, квартиру, этаж, наличие домофона и заметку;
  2. Если магазин не использует DaData.ru, объект с отдельными полями адреса (city, street, house и т.д.).

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404addresses.not_foundАдрес не найден.Убедиться, что адрес относится к покупателю.
422addresses.resolver.failedНе удалось определить адрес доставки.Убедиться, что адрес введён правильно и полностью.
Authorizations:
path Parameters
store
required
string

ID магазина

address
required
string

ID адреса

Request Body schema: application/json
object

Адрес покупателя

Responses

Request samples

Content type
application/json
{
  • "delivery_address": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Удалить адрес покупателя

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404addresses.not_foundАдрес не найден.Убедиться, что адрес относится к покупателю.
Authorizations:
path Parameters
store
required
string

ID магазина

address
required
string

ID адреса

Responses

Способы оплаты покупателя

Получить список карт покупателя

Authorizations:
path Parameters
store
required
string

ID магазина

query Parameters
count
integer

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

page
integer

Номер страницы

Responses

Response samples

Content type
application/json
{}

Удалить карту покупателя

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

Во время выполнения этого запроса вы можете столкнуться со следующими ошибками:

HTTPКодПричинаРешение
404orders.payments.card_token.not_foundСохранённая карта не найдена.Убедиться, что карта относится к покупателю.
Authorizations:
path Parameters
store
required
string

ID магазина

paymentMethod
required
string

ID карты

Responses

Программа лояльности

Получить актуальный баланс бонусов

Authorizations:
path Parameters
store
required
string

ID магазина

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Получить список транзакций программы лояльности

Authorizations:
path Parameters
store
required
string

ID магазина

query Parameters
count
integer

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

page
integer

Номер страницы

type
string
Enum: "increase" "decrease"

Тип транзакции (increase – пополнение, decrease – списание)

status
string
Enum: "pending" "confirmed" "cancelled" "refunded"

Статус транзакции (pending – ожидает подтверждения, confirmed – подтверждена, cancelled – отменена, refunded – возвращена).

reason
string
Enum: "manual" "cashback" "referral_reward" "recruit_reward" "payment" "cancellation" "refund" "adjustment" "welcome_bonuses" "promotion_reward" "external"

Причина создания транзакции

order_id
string

ID связанного заказа

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Акции

Акции делятся на 2 части: контентная (объект Offer) и функциональная. Контентные данные используются в баннерах на сайтах и в приложениях, а так же в статьях, которые дают подбробные описания того, как работает акция.

Функциональная часть отвечает за проверку выполнения условий акций и выдачу подарков. Эти данные нигде не отображаются и используются в основном в серверной части Zenky.

Запуск проверки выполненных акций должен выполняться вручную по команде с сайта/приложения. Результат проверки будет доставлен в клиентское приложение через вебсокеты (см. подробнее в разделе «Продажи» – «Программа лояльности»).

Получить список акций

Этот метод поддерживает следующие включения:

ВключениеОписание
articleСтатья
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

order_by
string

Поле сортировки

Responses

Response samples

Content type
application/json
{}

Получить акцию

Этот метод поддерживает следующие включения:

ВключениеОписание
articleСтатья
path Parameters
store
required
string

ID магазина

offer
required
string

ID акции

query Parameters
with
string

Список включений

Responses

Response samples

Content type
application/json
{}

Статьи

Получить список категорий статей

Этот метод поддерживает следующие поля сортировки (передаются в параметре order_by):

ПолеОписание
nameПо названию (asc)
-nameПо названию (desc)
path Parameters
store
required
string

ID магазина

query Parameters
count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Получить категорию статей

path Parameters
store
required
string

ID магазина

category
required
string

ID категории

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Получить список статей в блоге

Этот метод поддерживает следующие включения:

ВключениеОписание
categoryКатегория статей
path Parameters
store
required
string

ID магазина

query Parameters
with
string

Список включений

count
integer

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

page
integer

Номер страницы

search
string

Строка поиска

category_id
string

ID категории статей

Responses

Response samples

Content type
application/json
{}

Получить статью

Этот метод поддерживает следующие включения:

ВключениеОписание
categoryКатегория статей
path Parameters
store
required
string

ID магазина

article
required
string

ID статьи

query Parameters
with
string

Список включений

Responses

Response samples

Content type
application/json
{}

Обратная связь

Создать запрос обратной связи

Поле email должно быть указано, если поле phone не указано (и наоборот).

path Parameters
store
required
string

ID магазина

Request Body schema: application/json
name
string

Имя пользователя

email
string

Email

object

Телефон покупателя

comment
string

Текст запроса

Responses

Request samples

Content type
application/json
{
  • "name": "Иван Иванов",
  • "email": "example@example.org",
  • "phone": {
    },
  • "comment": "Перезвоните мне."
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Создать запрос обратного звонка

path Parameters
store
required
string

ID магазина

Request Body schema: application/json
object

Телефон покупателя

Responses

Request samples

Content type
application/json
{
  • "phone": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Объявления

Получить активное объявление

Этот метод позволяет запросить активное объявление для показа пользователю. Если подходящего объявления нет, то в поле data будет значение null.

path Parameters
store
required
string

ID магазина

query Parameters
city_id
string

ID активного города для показа объявления

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Ошибка API

Ошибка выполнения операции. Возникает при дополнительных проверках данных (после валидации) или при невозможности продолжить выполнение запроса.

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

Если вы столкнулись с неизвестной ошибкой, пожалуйста, создайте новый issue в нашем репозитории на GitHub. Обратите внимание, что этот репозиторий является публичным и любой пользователь может просматривать ваши обращения. Не публикуйте ваши API-токены и другую конфиденциальную информацию, особенно относящуюся к покупателям.

В случае, если ваш запрос содержит конфиденциальную информацию, вместо создания issue вы можете написать нам на почту tech@zenky.io с подробным описанием проблемы, приложив полное тело запроса, включая URL и ID магазина. Так же при обращении на почту вы можете указать API-токен, который использовался для выполнения запроса, в этом случае мы не будем его инвалидировать, если только это не потребуется для решения проблемы.

object
{
  • "error": {
    }
}

Ошибка валидации

Ошибка валидации входных данных. Возникает в том случае, если вы передали некорректные данные или не передали их вообще.

Исправить их проще всего – нужно изучить проблемные поля и свериться с документацией для исправления передаваемых данных.

Если вы не уверены, как исправить ошибку валидации, пожалуйста, создайте новый issue в нашем репозитории на GitHub. Обратите внимание, что этот репозиторий является публичным и любой пользователь может просматривать ваши обращения. Не публикуйте ваши API-токены и другую конфиденциальную информацию, особенно относящуюся к покупателям.

В случае, если ваш запрос содержит конфиденциальную информацию, вместо создания issue вы можете написать нам на почту tech@zenky.io с подробным описанием проблемы, приложив полное тело запроса, включая URL и ID магазина. Так же при обращении на почту вы можете указать API-токен, который использовался для выполнения запроса, в этом случае мы не будем его инвалидировать, если только это не потребуется для решения проблемы.

message
string

Сообщение об ошибке

object

Список ошибок валидации

{
  • "message": "The given data was invalid.",
  • "errors": {
    }
}

Телефон

country
string

Код страны (ISO 3166-1 alpha-2)

number
string

Номер телефона в формате E.164

national
string

Номер телефона в национальном формате

{
  • "country": "RU",
  • "number": "+79641234567",
  • "national": "+7 (964) 123-45-67"
}