Приложения
Раздел API для управления приложениями в системе ERP. Поддерживает получение списка приложений, управление вебхуками, категориями, брендами и пунктами меню приложения.
Практический порядок запуска и понятие Application описаны на странице «Сайты и приложения». Для серверной схемы используйте отдельную карту интеграции через backend.
Для просмотра нужен доступ к тому же проекту и одно из прав: view-applications, create-applications или edit-applications. Создать приложение можно с правом create-applications или edit-applications; изменять и удалять — с правом edit-applications.
Приложения
Получение списка приложений
- Метод
- GET
- URL
https://api.gigma.ru/api/applications- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
query(string, необязательный) — поиск по названию, не менее трёх символов.
Ответ
При успешном действии возвращается HTTP код 200.
Создание приложения
- Метод
- POST
- URL
https://api.gigma.ru/api/applications- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
name(string, обязательный) — название приложения.is_website(bool, обязательный) —trueдля сайта,falseдля другого типа клиента.branch_id(int, обязательный) — ID филиала.sales_strategy_id(int, обязательный) — ID стратегии продаж.code(int, необязательный) — уникальный код в проекте. Если не передать, Gigma создаст его автоматически.photo_id(int, необязательный) — ID файла-обложки.wholesale(bool, необязательный) — признак оптового режима.success_payment_url(string|null, необязательный) — URL возврата после успешной оплаты.
{
"name": "Интернет-магазин",
"is_website": true,
"branch_id": 5,
"sales_strategy_id": 1,
"success_payment_url": "https://myshop.ru/success"
} Ответ
Возвращает HTTP код 201 и созданный объект application. Поле token содержит App Token для запросов к E-Commerce API.
Получение выбранного приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{id}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
{
"application": {
"id": 1,
"branch": { "id": 5, "name": "Главный филиал" },
"is_website": false,
"photo": null,
"code": 123456,
"name": "Интернет-магазин",
"is_token_active": true,
"wholesale": false,
"token": "abc123token",
"success_payment_url": "https://myshop.ru/success",
"warehouses": [{ "id": 3, "name": "Склад №1" }],
"sales_strategy": { "id": 1, "name": "Стандартная" }
}
} Описание полей
branch— объект филиала (id,name)is_website(bool) — является ли приложение сайтомphoto— объект файла-обложки (илиnull)code— уникальный код приложенияname— название приложенияis_token_active(bool) — активен ли API-токен приложенияwholesale(bool) — работает ли приложение в оптовом режимеtoken(string|null) — API-токен приложения для E-Commerce запросовsuccess_payment_url(string|null) — URL редиректа после успешной оплатыwarehouses— массив складов, привязанных к приложениюsales_strategy(object|null) — стратегия продаж (id,name)
Подписочные тарифы приложения
Эти методы нужны для экрана настройки тарифов ЭПС. Они не меняют общую номенклатуру и не влияют на клиентский checkout напрямую: приложение показывает клиенту только активные назначенные тарифы.
Для чтения и изменения нужен пользователь ERP из того же проекта с правом edit-applications.
Каталог тарифов для настройки приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{application}/subscription-nomenclatures/catalog- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
Возвращает все подписочные тарифы проекта и привязку каждого тарифа к выбранному приложению.
{
"data": [
{
"nomenclature": {
"id": 34786,
"name": "Uhoster — 1 месяц",
"parent_nomenclature_id": 34780,
"variant_label": "1 месяц",
"variant_sort_order": 10,
"price": "490.00",
"billing_period_months": 1
},
"assignment": {
"id": 42,
"is_active": true,
"sort_order": 0
}
}
],
"meta": {
"application_id": 275,
"subscription_catalog_configured": true
}
} Описание полей
nomenclature— тариф из общего справочника проекта.price(string) — цена тарифа. Строковый формат сохраняет точность денежных значений.parent_nomenclature_id— ID родительского тарифа для варианта илиnull.assignment— привязка тарифа к этому приложению.nullозначает, что тариф ещё не добавлен; объект сis_active: falseозначает, что он добавлен, но выключен.sort_order— порядок показа активных тарифов в клиентском каталоге.subscription_catalog_configured— включён ли у приложения режим управляемого каталога.
Варианты и родительские тарифы назначаются независимо. Если в старых данных доступен вариант, а его родитель недоступен, фронт показывает такой вариант самостоятельной группой.
Назначить подписочный тариф приложению
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{application}/subscription-nomenclatures- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Тело запроса
{
"nomenclature_id": 34786,
"is_active": true,
"sort_order": 0
} nomenclature_id(integer, обязательно) — ID подписочного тарифа из management-каталога текущего проекта.is_active(boolean, опционально, по умолчаниюtrue) — доступен ли тариф клиентам.sort_order(integer, опционально, по умолчанию0) — порядок в каталоге.
Ответ
HTTP 200 с созданной или обновлённой привязкой. Повторный POST того же тарифа не создаёт дубль, а обновляет существующую привязку.
Изменить привязку подписочного тарифа
- Метод
- PATCH
- URL
https://api.gigma.ru/api/applications/{application}/subscription-nomenclatures/{assignment}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Тело запроса
{
"is_active": false,
"sort_order": 10
} Можно передать is_active, sort_order или оба поля. assignment — ID объекта assignment из management-каталога, а не ID номенклатуры.
Ответ
HTTP 200 с обновлённой привязкой.
Удалить привязку подписочного тарифа
- Метод
- DELETE
- URL
https://api.gigma.ru/api/applications/{application}/subscription-nomenclatures/{assignment}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
HTTP 200:
{
"message": "Subscription nomenclature assignment deleted"
} Не используйте массовую замену списка: каждая привязка создаётся, включается, сортируется или удаляется отдельным запросом.
Вебхуки приложения
Webhook приложения отправляет событие order.paid во внешний бэкенд после подтверждённой оплаты заказа. Это дополнительная возможность, а не обязательная часть подключения через собственный бэкенд. Настройка доступна только ERP-пользователю роли owner или admin из того же проекта.
Получение списка вебхуков
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{application}/webhooks- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200 с массивом вебхуков приложения.
Создание вебхука
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{application}/webhooks- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
event(string, обязательно) — сейчас поддерживается толькоorder.paid.url(string, обязательно, до 2048 символов) — публичный HTTPS URL receiver. Приватные IP, небезопасные redirects и локальные адреса отклоняются.secret(string, обязательно, от 16 до 512 символов) — общий секрет для HMAC-подписи. В ответах значение не раскрывается.headers(object|null, опционально, до 10 заголовков) — дополнительные разрешённые заголовки доставки.is_active(boolean, опционально, по умолчаниюtrue) — включить доставку.
Пример запроса
{
"event": "order.paid",
"url": "https://service.example.com/api/webhooks/gigma",
"secret": "replace-with-a-long-random-secret",
"headers": {
"X-Service": "billing"
},
"is_active": true
} Ответ
При успешном действии возвращается HTTP код 201 с созданным webhook. Поле secret не возвращается; has_secret: true подтверждает, что секрет сохранён.
Получение выбранного вебхука
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200 с объектом вебхука.
Обновление вебхука
- Метод
- PATCH
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
url(string, опционально) — новый публичный HTTPS URL.headers(object|null, опционально) — заменить дополнительные заголовки.is_active(boolean, опционально) — включить или выключить доставку.
event после создания не меняется. secret нельзя передавать в PATCH — используйте отдельную ротацию.
Пример запроса
{
"is_active": false
} Ответ
При успешном действии возвращается HTTP код 200 с обновлённым вебхуком.
Удаление вебхука
- Метод
- DELETE
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200. Webhook архивируется и выключается; журнал доставок сохраняется.
Получение доставок вебхука
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}/deliveries- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200 с пагинированной историей доставок.
Повторная доставка вебхука
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}/deliveries/{delivery}/resend- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200. Вручную повторить можно только доставку в статусе failed; для других состояний backend возвращает 422.
Ротация секрета вебхука
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{application}/webhooks/{webhook}/rotate-secret- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Генерирует новый 64-символьный секрет для следующих доставок. Ротация ограничена одним запросом в 60 секунд.
Ответ
При успешном действии возвращается HTTP код 200 с новым секретом.
Контракт доставки order.paid
Gigma отправляет POST на настроенный URL с JSON body и заголовками:
Content-Type: application/json
X-Webhook-Event: order.paid
X-Webhook-Event-Id: order.paid:<order_id>:<opaque_payment_part>
X-Webhook-Delivery-Id: <delivery_id>
X-Webhook-Timestamp: <unix_timestamp>
X-Signature: sha256=<hex_hmac> Подпись рассчитывается по исходному телу запроса:
expected = "sha256=" + HMAC_SHA256(secret, timestamp + "." + raw_body) Перед обработкой проверьте полный X-Signature по raw_body. Gigma считает доставку успешной при любом ответе 2xx. При ином ответе или транспортной ошибке она повторяет ту же delivery через 1, 5, 30, 120 и 720 минут.
event_id — непрозрачный ключ идемпотентности: сохраните его и не обрабатывайте одно событие дважды. event_id и X-Webhook-Delivery-Id не меняются между попытками, а timestamp и HMAC вычисляются заново. Возвращайте 2xx только после того, как событие принято вашим бэкендом.
Пример payload:
{
"event": "order.paid",
"event_id": "order.paid:456:2f8d...",
"occurred_at": "2026-07-18T10:00:00+00:00",
"order": {
"id": 456,
"final_price": "990.00",
"paid_at": "2026-07-18T10:00:00+00:00",
"products": [
{
"id": 34786,
"name": "AI assistant monthly",
"quantity": 1
}
]
},
"counterparty": {
"id": 123,
"phone_1": "79999999990",
"email": null
},
"shop": {
"id": 10
}
} Webhook сообщает об оплате, но не заменяет проверку актуального состояния. Для выдачи доступа используйте правило на странице списка подписок.
Категории приложения
Получение списка категорий приложения (табличное)
- Метод
- GET
- URL
https://api.gigma.ru/api/tables/applications/{id}/categories- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Получение списка категорий приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{id}/categories- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Добавление категории в приложение
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/categories- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
category_id— ID категории
Ответ
При успешном действии возвращается HTTP код 200.
Получение категории приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{id}/categories/{category_id}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Удаление категории из приложения
- Метод
- DELETE
- URL
https://api.gigma.ru/api/applications/{id}/categories/{category_id}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200 с сообщением подтверждения.
Повышение приоритета категории
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/categories/{category_id}/up- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Понижение приоритета категории
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/categories/{category_id}/down- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Бренды приложения
Получение списка брендов приложения (табличное)
- Метод
- GET
- URL
https://api.gigma.ru/api/tables/applications/{id}/brands- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Получение списка брендов приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{id}/brands- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Добавление бренда в приложение
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/brands- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Параметры запроса
brand_id— ID бренда
Ответ
При успешном действии возвращается HTTP код 200.
Получение бренда приложения
- Метод
- GET
- URL
https://api.gigma.ru/api/applications/{id}/brands/{brand_id}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Удаление бренда из приложения
- Метод
- DELETE
- URL
https://api.gigma.ru/api/applications/{id}/brands/{brand_id}- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200 с сообщением подтверждения.
Повышение приоритета бренда
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/brands/{brand_id}/up- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.
Понижение приоритета бренда
- Метод
- POST
- URL
https://api.gigma.ru/api/applications/{id}/brands/{brand_id}/down- Авторизация
- Bearer token
- Headers
Authorization: Bearer {token}
Ответ
При успешном действии возвращается HTTP код 200.