Быстрый старт
Регистрация продажи одним POST-запросом.
bash
curl https://vcr.am/api/v1/sales \
-H "X-API-KEY: $VCR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"cashier": { "id": 1 },
"items": [{
"offer": { "externalId": "SKU-001" },
"department": { "id": 1 },
"quantity": 1,
"price": 20000,
"unit": "pc"
}],
"amount": { "nonCash": 20000 },
"buyer": {
"type": "individual",
"receipt": { "email": "buyer@example.com", "language": "en" }
}
}'Создано для боевых интеграций
REST поверх JSON
Эндпоинты без состояния, JSON, вызов из любого языка и фреймворка.
Типизированный Node.js SDK
Типизированный клиент на npm — готов к использованию на вашем сервере.
Аутентификация по API-ключу
Отзываемые API-ключи, которыми вы управляете из личного кабинета.
Полный API кассы
Продажи, предоплаты, возвраты и чеки — единый последовательный интерфейс.
Что должна предоставить ваша система
Перед интеграцией убедитесь, что каждая продажа несёт данные, которые требует КГД.
Код классификатора
Код из товарного классификатора для товаров или классификатора видов деятельности — для услуг.
Единица измерения
кг, шт, м², час, услуга, работа и т.д.
Идентификатор отдела
Куда регистрировать продажу в кассе.
Идентификатор кассира
Кто регистрирует продажу.
Аутентификация
Каждый запрос должен содержать ваш API-ключ в заголовке X-API-KEY.
X-API-KEY: your_api_keyСоздавайте и обновляйте API-ключи в настройках вашей кассы.
Храните API-ключ в секрете
Не размещайте его в клиентском коде, публичных репозиториях и общих логах. Если ключ утёк — сразу отзовите его и сгенерируйте новый в настройках кассы.
Ошибки
Ошибки возвращаются стандартными HTTP-кодами и JSON-телом с подробностями.
| Статус | Название | Когда возникает |
|---|---|---|
400 | Неверный запрос | Неверный формат тела или ошибка валидации схемы. |
401 | Не авторизован | API-ключ отсутствует или недействителен. |
403 | Доступ запрещён | Этот ключ не имеет доступа к данному ресурсу. |
404 | Не найдено | Запрашиваемый ресурс не существует. |
500 | Внутренняя ошибка | Непредвиденный сбой на нашей стороне. Повторите с экспоненциальной задержкой. |