Storefront API · Оформлення
Оформити замовлення
Ще раз перевіряє весь кошик (наявність, ціни, доставку, правила магазину) й оформлює замовлення. Передайте суми, які бачив покупець: якщо кошик тим часом змінився, відповідь буде 422 і нічого не списується.
redirect_url — сторінка платіжного провайдера: відправте покупця туди; дані картки ніколи не проходять через ваш застосунок. Сторінка приймає оплату 30 хвилин. Без redirect_url замовлення вже оформлене (наприклад, оплата при отриманні).
Той самий Idempotency-Key повертає те саме замовлення замість другого — навіть після обриву зв’язку. Ключ, використаний для іншого кошика чи суми, дає 422 idempotency_key; для нової спроби потрібен новий ключ.
POST /carts: X-Cart-Token: {token}.
Idempotency-Key: повтор із тим самим ключем повертає першу відповідь.Тіло запиту application/json
expected_subtotalintegerобов'язковеexpected_totalintegerобов'язковеpayment_driverstringpayment_tokenstringcontact_emailstringnotesstringmarketing_opt_inbooleanПриклад
{
"expected_subtotal": 599900,
"expected_total": 599900,
"contact_email": "[email protected]",
"notes": "Подзвоніть перед відправкою"
}
Відповіді
201Замовлення; redirect_url — якщо покупець платить онлайн.
{
"data": {
"id": "101",
"reference": "2026-001045",
"status": "awaiting-payment",
"placed_at": null,
"payment_driver": "app:com.storeforma.wayforpay",
"redirect_url": "https://your-store.storeforma.shop/payments/8b1e…/start"
}
} 422Кошик змінився, товар закінчився, доставка більше недоступна або ключ використано для іншого замовлення.
{
"message": "Сума кошика змінилася.",
"errors": {
"checkout": [
"Сума кошика змінилася. Перевірте кошик і спробуйте ще раз."
]
}
} 401Немає X-Cart-Token, токен прострочений або кошик уже оформлено.
{
"message": "A valid X-Cart-Token header is required.",
"errors": {
"cart_token": [
"Кошик не знайдено, строк доступу минув або його вже оформлено."
]
}
} 429Забагато запитів (створення кошика 20/хв з IP, запити кошика 120/хв, оформлення 10/хв).
{
"message": "Too Many Attempts."
}