Заказы и оплата
С помощью этих методов вы можете рассчитать корзину, создать заказ от имени клиента, отправить его на оплату и показать актуальное состояние.
Для регулярных списаний и периодов доступа используйте отдельный сервис управления подписками.
Подготовка
Перед созданием заказа:
- Получите товары из каталога.
- Получите актуальные ID доставки, оплаты и магазина из справочников витрины.
- Рассчитайте корзину.
- Авторизуйте клиента и получите Counterparty Bearer.
Для расчёта корзины достаточно App Token. Для создания и чтения заказа дополнительно нужен Counterparty Bearer клиента.
Порядок работы
- Отправьте товары в
POST /api/counterparty/orders/precalculate. - Покажите клиенту
final_priceи возможную ошибку промокода. - Создайте заказ через
POST /api/counterparty/orders. - Если в ответе есть
payment_link, перенаправьте клиента на оплату. - После возврата получите заказ методом
GET /api/counterparty/orders/{id}. - Выдавайте товар или доступ только по состоянию, подтверждённому Gigma.
Возврат клиента с платёжной страницы не подтверждает оплату.
Рассчитать корзину
- Метод
- POST
- URL
https://api.gigma.ru/api/counterparty/orders/precalculate- Авторизация
- App Token
- Headers
Token: {application_token}; Content-Type: application/json- Успешный ответ
200
Метод рассчитывает стоимость и проверяет товары, остатки, упаковку и промокод до создания заказа.
Параметры запроса
products(array, обязательный) — позиции корзины;products[].id(integer, обязательный) — ID товара;products[].quantity(integer, обязательный) — количество, от1;promo_code(string, опционально) — промокод: латинские буквы, цифры и дефис, до 64 символов.
Пример запроса
{
"products": [
{
"id": 28504,
"quantity": 3
}
],
"promo_code": "WELCOME-10"
} Ответ
{
"price": 1952.4,
"discount": 195.24,
"total": 1657.16,
"quantity_pack": 3,
"original_price": 1952.4,
"product_discount_amount": 195.24,
"promo_discount_amount": 100,
"total_discount_amount": 295.24,
"final_price": 1657.16,
"applied_discount": {
"id": 7,
"code": "WELCOME-10",
"name": "Приветственная скидка",
"type": "fixed",
"value": 100
},
"discount_error": null,
"products": [
{
"id": 28504,
"price": 650.8,
"quantity": 3,
"pieces_per_pack": 1,
"quantity_pack": 3,
"wholesale": false
}
]
} Для нового интерфейса используйте original_price, product_discount_amount, promo_discount_amount, total_discount_amount и final_price. Поля price, discount и total сохранены для совместимости.
Если промокод нельзя применить, Gigma вернёт цены без промо-скидки и объект discount_error. Ошибка товара или остатка возвращается с кодом 422.
Создать заказ
- Метод
- POST
- URL
https://api.gigma.ru/api/counterparty/orders- Авторизация
- App Token + Bearer token
- Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}; Content-Type: application/json- Успешный ответ
200
Передавайте ID только из справочников текущего Application. Состав тела зависит от выбранного способа доставки.
Параметры запроса
delivery_type_id(integer, обязательный) — ID способа доставки;delivery_subtype_id(integer, опционально) — требуется приdelivery_type_id = 2;delivery_subtype_param_id(integer, опционально) — требуется приdelivery_subtype_id = 1;shop_id(integer, опционально) — требуется приdelivery_type_id = 1;address(string, опционально) — требуется приdelivery_subtype_id = 2;payment_type_id(integer, опционально) — ID способа оплаты;payment_method_type(string, опционально) — тип онлайн-оплаты; в ответе возвращается какyookassa_payment_method_type;promo_code(string, опционально) — промокод;products(array, обязательный) — позиции корзины;products[].id(integer, обязательный) — ID товара;products[].quantity(integer, обязательный) — количество, от1.
Пример запроса
{
"delivery_type_id": 2,
"delivery_subtype_id": 2,
"payment_type_id": 2,
"address": "115477, г Москва, ул Деловая, д 20",
"promo_code": "WELCOME-10",
"products": [
{
"id": 28504,
"quantity": 3
}
]
} Ответ
{
"order": {
"id": 169,
"status": {
"id": 1,
"name": "Ожидает оплаты"
},
"price": "1657.16",
"promo_code": "WELCOME-10",
"original_price": 1952.4,
"product_discount_amount": 195.24,
"promo_discount_amount": 100,
"total_discount_amount": 295.24,
"final_price": 1657.16,
"delivery_type": {},
"delivery_subtype": {},
"delivery_subtype_param": null,
"payment_type": {},
"yookassa_payment_method_type": null,
"address": "115477, г Москва, ул Деловая, д 20",
"shop": null,
"products": [],
"payment_link": "https://yoomoney.ru/checkout/...",
"created_at": "2026-08-16T10:00:00+00:00",
"redeem_token": null,
"redeemed_count": 0,
"total_tickets": 0,
"last_redeemed_at": null
}
} Сохраните order.id. Если payment_link не равен null, перенаправьте клиента по этой ссылке.
Если платёж не удалось создать, Gigma отменит заказ и вернёт 502. Ошибки цены, промокода, доставки или остатка возвращаются с кодом 422.
Если результат запроса неизвестен из-за тайм-аута или 5xx, сначала получите список заказов клиента. Не повторяйте создание, пока не убедитесь, что заказ отсутствует.
Получить заказы клиента
- Метод
- GET
- URL
https://api.gigma.ru/api/counterparty/orders- Авторизация
- App Token + Bearer token
- Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}- Успешный ответ
200
Gigma вернёт только заказы текущего клиента в текущем Application.
Ответ
{
"orders": [
{
"id": 169,
"status": {
"id": 1,
"name": "Ожидает оплаты"
},
"final_price": 1657.16,
"payment_link": "https://yoomoney.ru/checkout/...",
"created_at": "2026-08-16T10:00:00+00:00"
}
],
"ordersCount": 1
} Ошибки
401— App Token или Counterparty Bearer отсутствует либо недействителен.
Получить заказ
- Метод
- GET
- URL
https://api.gigma.ru/api/counterparty/orders/{id}- Авторизация
- App Token + Bearer token
- Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}- Успешный ответ
200
Передайте order.id в адресе запроса. Gigma проверит клиента и Application.
Параметры пути
id(integer, обязательный) — ID заказа.
Ответ
{
"order": {
"id": 169,
"status": {
"id": 1,
"name": "Ожидает оплаты"
},
"final_price": 1657.16,
"payment_link": "https://yoomoney.ru/checkout/...",
"redeem_token": null,
"redeemed_count": 0,
"total_tickets": 0,
"last_redeemed_at": null
}
} Для билетов и пропусков ответ может содержать redeem_token, redeemed_count, total_tickets и last_redeemed_at.
Ошибки
401— App Token или Counterparty Bearer отсутствует либо недействителен;404— заказа нет, он принадлежит другому клиенту или другому Application.
Заказ без входа
Создать заказ из контактной формы
- Метод
- POST
- URL
https://api.gigma.ru/api/counterparty/contact_form- Авторизация
- App Token
- Headers
Token: {application_token}; Content-Type: application/json- Успешный ответ
200
Используйте этот метод только для простой формы заявки. Он создаёт клиента и заказ без предварительного входа, но фиксирует курьерскую доставку и не поддерживает полный сценарий оформления заказа.
Параметры запроса
first_name(string, обязательный) — имя клиента;last_name(string, обязательный) — фамилия клиента;middle_name(string|null, опционально) — отчество;phone(string, обязательный) — телефон;address(string, обязательный) — адрес;payment_type_id(integer, обязательный) — ID способа оплаты;products(array, обязательный) — позиции заказа;products[].id(integer, обязательный) — ID товара;products[].quantity(integer, обязательный) — количество.
Пример запроса
{
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": null,
"phone": "79991234567",
"address": "г Москва, ул Деловая, д 20",
"payment_type_id": 2,
"products": [
{
"id": 28504,
"quantity": 1
}
]
} Ответ
API возвращает объект order той же формы, что и обычное создание заказа.
Запрос ограничен отдельными лимитами по IP и телефону. Для личного кабинета, истории и повторных покупок используйте обычный вход клиента.
После оплаты
- Получите заказ методом
GET /api/counterparty/orders/{id}. - Проверьте
order.status. - При наличии вебхука
order.paidповторно запросите заказ после получения события. - Только после проверки выдайте товар, билет или доступ.
Дальнейшие шаги
- Настройте вебхук
order.paid. - Добавьте промокоды.
- Для повторных списаний перейдите в сервис управления подписками.