Приложения

Раздел 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.

Пункты меню

Получение списка пунктов меню (табличное)

Метод
GET
URL
https://api.gigma.ru/api/tables/applications/{id}/menu_items
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

Ответ

При успешном действии возвращается HTTP код 200.

Создание пункта меню

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

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

  • name — название пункта меню
  • slug — slug
  • parent_id — ID родительского пункта
  • avatar_id — ID файла аватара
  • preview_id — ID файла превью

Ответ

При успешном действии возвращается HTTP код 200.

Обновление пункта меню

Метод
PUT
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

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

Те же параметры, что и в эндпоинте создания.

Ответ

При успешном действии возвращается HTTP код 200.

Удаление пункта меню

Метод
DELETE
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

Ответ

При успешном действии возвращается HTTP код 200 с сообщением подтверждения.

Повышение приоритета пункта меню

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}/up
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

Ответ

При успешном действии возвращается HTTP код 200.

Понижение приоритета пункта меню

Метод
POST
URL
https://api.gigma.ru/api/applications/{id}/menu_items/{menu_item_id}/down
Авторизация
Bearer token
Headers
Authorization: Bearer {token}

Ответ

При успешном действии возвращается HTTP код 200.

© 2026 Gigma