Перейти к содержанию

Товары и услуги

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

Товар · product

GET /api/products

Список записей с постраничной выборкой.

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

Параметр Тип Ограничения
limit int диапазон 1..100, по умолчанию 100
offset int по умолчанию 0

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
meta object Метаданные о выдаче
meta.allCount int Количество всех товаров
meta.count int Размер выданного списка
meta.limit int Максимальное количество элементов в выданном списке. Максимальное количество элементов в списке равно 100.
meta.offset int Отступ в выданном списке
data array (object) Массив JSON объектов, представляющих собой Товаров.
data[].id int Идентификатор товара
data[].name string Наименование товара
data[].sku string Артикул товара
data[].minPrice float Минимальная цена
data[].purchasePrice float Закупочная цена
data[].salePrice float Цена продажи
data[].unit string Единица измерения
data[].vat int НДС %
data[].order int № товара
data[].code int Код товара
data[].weight float Вес товара
data[].dimensionX float Длина товара
data[].dimensionY float Ширина товара
data[].dimensionZ float Высота товара
data[].parent int Базовый товар для модификации
data[].brand object Бренд товара
data[].brand.id int Идентификатор бренда
data[].brand.name string Наименование бренда
data[].category object Группа товара
data[].category.id int Идентификатор группы (0 - Услуга)
data[].category.name string Наименование группы
data[].barcodes array Штрихкоды товара

Ошибки

ERROR_LIMIT ERROR_OFFSET ERROR_USER_ACCESS ERROR_NO_API_KEY

Запрос получения списка товаров
Host: app.masterkassa.com

GET /api/products?limit=10&offset=40

Authorization: Bearer <ключ>
Ответ получения списка товаров
HTTP code: 200

{
  "meta": {
    "allCount": 42,
    "count": 2,
    "limit": 10,
    "offset": 40
  },
  "data": [
    {
      "id": 10,
      "name": "Ведро пластмассовое 8л",
      "sku": "ФР-12548",
      "minPrice": 825.25,
      "purchasePrice": 750.0,
      "salePrice": 1050.0,
      "unit": "шт",
      "vat": 20,
      "order": 1254,
      "code": 287,
      "weight": 0.75,
      "dimensionX": 30,
      "dimensionY": 30,
      "dimensionZ": 65,
      "parent": 0,
      "brand": {
        "id": 5,
        "name": "APLAST"
      },
      "category": {
        "id": 74,
        "name": "Ведра"
      },
      "barcodes": [
        "2017480051093",
        "2017480051161"
      ]
    },
    {
      "id": 10,
      "name": "Ведро пластмассовое 8л",
      "sku": "ФР-12548",
      "minPrice": 825.25,
      "purchasePrice": 750.0,
      "salePrice": 1050.0,
      "unit": "шт",
      "vat": 20,
      "order": 1254,
      "code": 287,
      "weight": 0.75,
      "dimensionX": 30,
      "dimensionY": 30,
      "dimensionZ": 65,
      "parent": 0,
      "brand": {
        "id": 5,
        "name": "APLAST"
      },
      "category": {
        "id": 74,
        "name": "Ведра"
      },
      "barcodes": [
        "2017480051093",
        "2017480051161"
      ]
    }
  ]
}

GET /api/product

Одна запись по идентификатору.

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

Параметр Тип Ограничения
id int
sku string

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект товара
data.id int Идентификатор товара
data.name string Наименование товара
data.sku string Артикул товара
data.minPrice float Минимальная цена
data.purchasePrice float Закупочная цена
data.salePrice float Цена продажи
data.unit string Единица измерения
data.vat int НДС %
data.order int № товара
data.code int Код товара
data.weight float Вес товара
data.dimensionX float Длина товара
data.dimensionY float Ширина товара
data.dimensionZ float Высота товара
data.parent int Базовый товар для модификации
data.brand object Бренд товара
data.brand.id int Идентификатор бренда
data.brand.name string Наименование бренда
data.category object Группа товара
data.category.id int Идентификатор группы (0 - Услуга)
data.category.name string Наименование группы
data.barcodes array Штрихкоды товара
data.additionalPrices array (object) Массив дополнительных цен товара
data.additionalPrices[].name string Название цены
data.additionalPrices[].price float Дополнительная цена
data.packs array (object) Массив упаковки товара
data.packs[].unit string Единица измерения упаковки
data.packs[].count float Количество в упаковке
data.packs[].barcode string Штрихкод упаковки
data.additionalFields array (object) Массив дополнительных полей
data.additionalFields[].name string Название
data.additionalFields[].value string Значение
data.files array Массив файлов товара

Ошибки

ERROR_ID ERROR_SKU ERROR_USER_ACCESS ERROR_NO_API_KEY

Запрос получения списка товаров
Host: app.masterkassa.com

GET /api/product?id=10

Authorization: Bearer <ключ>
Ответ получения списка товаров
HTTP code: 200

{
  "data": {
    "id": 10,
    "name": "Ведро пластмассовое 8л",
    "sku": "ФР-12548",
    "minPrice": 825.25,
    "purchasePrice": 750.0,
    "salePrice": 1050.0,
    "unit": "шт",
    "vat": 20,
    "order": 1254,
    "code": 287,
    "weight": 0.75,
    "dimensionX": 30,
    "dimensionY": 30,
    "dimensionZ": 65,
    "parent": 0,
    "brand": {
      "id": 5,
      "name": "APLAST"
    },
    "category": {
      "id": 74,
      "name": "Ведра"
    },
    "barcodes": [
      "2017480051093",
      "2017480051161"
    ],
    "additionalPrices": [
      {
        "name": "Оптовая цена",
        "price": 930
      },
      {
        "name": "Цена в маркетплейсе",
        "price": 1230
      }
    ],
    "packs": [
      {
        "unit": "упак.",
        "count": 10,
        "barcode": "9002859055560"
      }
    ],
    "additionalFields": [
      {
        "name": "Материал",
        "value": "Пластмасса"
      },
      {
        "name": "Страна производства",
        "value": "Россия"
      }
    ],
    "files": [
      "https://app.masterkassa.com/file-mk/1/85",
      "https://app.masterkassa.com/file-mk/1/86",
      "https://app.masterkassa.com/file-mk/1/27"
    ]
  }
}

Без параметров возвращает ERROR_ID, а не отдельную ошибку.

GET+POST /api/add-product

Создание записей.

Запись в два шага

GET /api/add-product -> access_token, живёт 1 минуту. POST /api/add-product с заголовком X-Access-Token. Предел пакета — 10 записей.

Тело запроса — объект products со списком записей

Поле Тип Ограничения
name string обязательное
sku string обязательное
categoryId int обязательное
minPrice float
purchasePrice float
salePrice float
unit string
vat int
brandId int
barcodes array

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
products array (object) Массив JSON объектов товара (Максимум 10 товаров в одном запросе)
products[].minPrice float Минимальная цена
products[].purchasePrice float Закупочная цена
products[].salePrice float Цена продажи
products[].unit string Единица измерения
products[].vat int НДС %
products[].order int № товара
products[].code int Код товара
products[].weight float Вес товара
products[].dimensionX float Длина товара
products[].dimensionY float Ширина товара
products[].dimensionZ float Высота товара
products[].parent int Базовый товар для модификации
products[].brandId int Идентификатор бренда
products[].barcodes array Штрихкоды товара
products.data array (object) Массив JSON объектов, представляющих собой идентификаторы товаров.
products.data[].id int Идентификатор товара
products.data[].sku int Артикул товара

Ошибки

ERROR_PRODUCTS ERROR_NAME ERROR_SKU ERROR_CATEGORY_ID ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для добавления товаров
Host: app.masterkassa.com

GET /api/add-product/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для добавления товаров
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2. Ответ добавления продуктов
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "sku": "ФР-12548"
    },
    {
      "id": 11,
      "sku": "ФР-12549"
    }
  ]
}

GET+POST /api/edit-product

Изменение записей.

Запись в два шага

GET /api/edit-product -> access_token, живёт 1 минуту. POST /api/edit-product с заголовком X-Access-Token. Предел пакета — 10 записей.

Тело запроса — объект products со списком записей

Поле Тип Ограничения
id int обязательное
name string обязательное
sku string обязательное
categoryId int обязательное

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
products array (object) Массив JSON объектов товара (Максимум 10 товаров в одном запросе)
products[].minPrice float Минимальная цена
products[].purchasePrice float Закупочная цена
products[].salePrice float Цена продажи
products[].unit string Единица измерения
products[].vat int НДС %
products[].order int № товара
products[].code int Код товара
products[].weight float Вес товара
products[].dimensionX float Длина товара
products[].dimensionY float Ширина товара
products[].dimensionZ float Высота товара
products[].parent int Базовый товар для модификации
products[].brandId int Идентификатор бренда
products[].barcodes array Штрихкоды товара
products.data array (object) Массив JSON объектов, представляющих собой идентификаторы товаров.
products.data[].id int Идентификатор товара
products.data[].sku int Артикул товара

Ошибки

ERROR_PRODUCTS ERROR_ID ERROR_NAME ERROR_SKU ERROR_CATEGORY_ID ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для редактирования товаров
Host: app.masterkassa.com

GET /api/edit-product/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для редактирования товаров
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2. Ответ редактирования продуктов
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "sku": "ФР-12548"
    },
    {
      "id": 11,
      "sku": "ФР-12549"
    }
  ]
}

GET+POST /api/update-product-prices

Операция update_prices.

Запись в два шага

GET /api/update-product-prices -> access_token, живёт 1 минуту. POST /api/update-product-prices с заголовком X-Access-Token. Предел пакета — 100 записей.

Тело запроса — объект data со списком записей

Поле Тип Ограничения
sku string обязательное
minPrice float
purchasePrice float
salePrice float

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
data array (object) Массив JSON объектов товар (Максимум 100 товаров в одном запросе)
data.data array (object) Массив JSON объектов, представляющих собой идентификаторы товаров.
data.data[].id int Идентификатор товара
data.data[].sku string Артикул товара

Ошибки

ERROR_DATA ERROR_SKU ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для обнавления цен
Host: app.masterkassa.com

GET /api/update-product-prices/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для обнавления цен
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2.Запрос обнавления цен
Host: app.masterkassa.com

POST /api/update-product-prices/

Authorization: Bearer <ключ>

X-Access-Token: c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b

{
  "data": [
    {
      "sku": "10",
      "salePrice": 1800
    },
    {
      "sku": "11",
      "salePrice": 1400,
      "minPrice": 1125
    }
  ]
}
2. Ответ обнавления цен
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "sku": "10",
      "minPrice": 1600,
      "purchasePrice": 1400,
      "salePrice": 1700
    },
    {
      "id": 11,
      "sku": "11",
      "minPrice": 1125,
      "purchasePrice": 1100,
      "salePrice": 1400
    }
  ]
}

Группа товаров · product_category

GET /api/product-categories

Список записей с постраничной выборкой.

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен

Поля ответа

Поле Тип Значение
meta object Метаданные о выдаче
meta.allCount int Количество всех групп
data array (object) Массив JSON объектов, представляющих собой группа товаров.
data[].id int Идентификатор группы
data[].name string Наименование группы
data[].children array (object) Подгруппы
data[].children.id int Идентификатор бренда
data[].children.name string Наименование бренда

Ошибки

ERROR_USER_ACCESS ERROR_NO_API_KEY

Запрос получения списка группы товаров
Host: app.masterkassa.com

GET /api/product-categories/

Authorization: Bearer <ключ>
Ответ получения списка группы товаров
HTTP code: 200

{
  "meta": {
    "allCount": 2
  },
  "data": [
    {
      "id": 1,
      "name": "Обрезная доска",
      "children": [
        {
          "id": 2,
          "name": "Брус"
        }
      ]
    }
  ]
}

Пагинации нет: отдаёт всё дерево целиком, вложенность через children.

GET+POST /api/add-product-category

Создание записей.

Запись в два шага

GET /api/add-product-category -> access_token, живёт 1 минуту. POST /api/add-product-category с заголовком X-Access-Token. Предел пакета — 100 записей.

Тело запроса — объект category со списком записей

Поле Тип Ограничения
name string обязательное
parent int

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
category array (object) Массив JSON объектов групп (Максимум 100 групп в одном запросе)
category[].parent int Идентификатор родительской группы (Default: 0)
category.data array (object) Массив JSON объектов, представляющих собой идентификаторы групп.
category.data[].id int Идентификатор группы
category.data[].name int Наименование группы

Ошибки

ERROR_CATEGORY_NAME ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для добавления группы товаров
Host: app.masterkassa.com

GET /api/add-product-category/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для добавления группы товаров
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2.Запрос добавления группы товаров
Host: app.masterkassa.com

POST /api/add-product-category/

Authorization: Bearer <ключ>

X-Access-Token: c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b

{
  "category": [
    {
      "name": "Обрезная доска",
      "parent": 0
    },
    {
      "name": "Брус",
      "parent": 4
    }
  ]
}
2. Ответ добавления группы товаров
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "name": "Обрезная доска"
    },
    {
      "id": 11,
      "name": "Брус"
    }
  ]
}

GET+POST /api/edit-product-category

Изменение записей.

Запись в два шага

GET /api/edit-product-category -> access_token, живёт 1 минуту. POST /api/edit-product-category с заголовком X-Access-Token. Предел пакета — 100 записей.

Тело запроса — объект category со списком записей

Поле Тип Ограничения
id int обязательное
name string обязательное
parent int

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
category array (object) Массив JSON объектов групп (Максимум 100 групп в одном запросе)
category[].parent int Идентификатор родительской группы (Default: 0)
category.data array (object) Массив JSON объектов, представляющих собой идентификаторы групп.
category.data[].id int Идентификатор группы
category.data[].name int Наименование группы

Ошибки

ERROR_CATEGORY_NAME ERROR_CATEGORY_ID ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для редактирования группы товаров
Host: app.masterkassa.com

GET /api/edit-product-category/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для редактирования группы товаров
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2.Запрос редактирования группы товаров
Host: app.masterkassa.com

POST /api/edit-product-category/

Authorization: Bearer <ключ>

X-Access-Token: c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b

{
  "category": [
    {
      "id": 10,
      "name": "Обрезная доска",
      "parent": 0
    },
    {
      "id": 11,
      "name": "Брус",
      "parent": 10
    }
  ]
}
2. Ответ редактирования группы товаров
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "name": "Обрезная доска"
    },
    {
      "id": 11,
      "name": "Брус"
    }
  ]
}

GET отдаёт access_token, POST с заголовком X-Access-Token применяет правку. В ответе — изменённая запись в поле data.

Бренд · product_brand

GET /api/product-brands

Список записей с постраничной выборкой.

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен

Поля ответа

Поле Тип Значение
meta object Метаданные о выдаче
meta.allCount int Количество всех брендов
data array (object) Массив JSON объектов, представляющих собой бренд.
data[].id int Идентификатор бренда
data[].name string Наименование бренда
data[].logo string Логотип бренда

Ошибки

ERROR_USER_ACCESS ERROR_NO_API_KEY

Запрос получения списка брендов
Host: app.masterkassa.com

GET /api/product-brands/

Authorization: Bearer <ключ>

GET+POST /api/add-product-brand

Создание записей.

Запись в два шага

GET /api/add-product-brand -> access_token, живёт 1 минуту. POST /api/add-product-brand с заголовком X-Access-Token. Предел пакета — 100 записей.

Тело запроса — объект brand со списком записей

Поле Тип Ограничения
name string обязательное

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
brand array (object) Массив JSON объектов бренд (Максимум 100 брендов в одном запросе)
brand.data array (object) Массив JSON объектов, представляющих собой бренд.
brand.data[].id int Идентификатор бренда
brand.data[].name int Наименование бренда

Ошибки

ERROR_BRAND_NAME ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для добавления брендов
Host: app.masterkassa.com

GET /api/add-product-brand/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для добавления брендов
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2.Запрос добавления брендов
Host: app.masterkassa.com

POST /api/add-product-brand/

Authorization: Bearer <ключ>

X-Access-Token: c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b

{
  "brand": [
    {
      "name": "Louis Vuitton"
    },
    {
      "name": "CHANEL"
    }
  ]
}
2. Ответ добавления брендов
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "name": "Louis Vuitton"
    },
    {
      "id": 11,
      "name": "CHANEL"
    }
  ]
}

GET+POST /api/edit-product-brand

Изменение записей.

Запись в два шага

GET /api/edit-product-brand -> access_token, живёт 1 минуту. POST /api/edit-product-brand с заголовком X-Access-Token. Предел пакета — 100 записей.

Тело запроса — объект brand со списком записей

Поле Тип Ограничения
id int обязательное
name string обязательное

Коды ответа

Код Что значит
200 успешный
401 нет доступа: ключ не передан, просрочен или неверен
400 неверный запрос: не хватает параметра или он не того типа

Поля ответа

Поле Тип Значение
data object JSON объект ключа
data.access_token string Ключ доступа
data.expired date, time Время окончания жизни ключа доступа (по Московскому времени)
brand array (object) Массив JSON объектов бренд (Максимум 100 брендов в одном запросе)
brand.data array (object) Массив JSON объектов, представляющих собой идентификаторы брендаов.
brand.data[].id int Идентификатор бренда
brand.data[].name int Наименование бренда

Ошибки

ERROR_BRAND_NAME ERROR_BRAND_ID ERROR_USER_ACCESS ERROR_NO_API_KEY

1. Запрос получения ключа доступа для редактирования бренда
Host: app.masterkassa.com

GET /api/edit-product-brand/

Authorization: Bearer <ключ>
1. Ответ получения ключа доступа для редактирования бренда
HTTP code: 200

{
  "data": {
    "access_token": "c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b",
    "expired": "2025-05-24 13:17:45"
  }
}
2.Запрос редактирования бренда
Host: app.masterkassa.com

POST /api/edit-product-brand/

Authorization: Bearer <ключ>

X-Access-Token: c87efe57719607ca1f8ec87fbe219607ca1fefe577edf3ffbe2426bdf3f8426b

{
  "brand": [
    {
      "id": 10,
      "name": "Louis Vuitton"
    },
    {
      "id": 11,
      "name": "CHANEL"
    }
  ]
}
2. Ответ редактирования бренда
HTTP code: 200

{
  "data": [
    {
      "id": 10,
      "name": "Louis Vuitton"
    },
    {
      "id": 11,
      "name": "CHANEL"
    }
  ]
}