REST, JSON і один вебхук.
Мінімум, якого достатньо для продакшену: створити платіж, отримати підтвердження, закрити замовлення.
- 01
Ключі
Залиште заявку, підключіть IBAN і візьміть sk_test у дешборді.
- 02
Платіж
POST /v1/invoices із сумою і номером замовлення. Отримуєте pay_url.
- 03
Вебхук
Приймайте invoice.paid, перевірте підпис — і закривайте замовлення.
Створити платіж
Сума у копійках, reference — ваш номер замовлення. Повторний запит з тим самим reference повертає той самий платіж.
curl -X POST https://api.kvitnyk.com/v1/invoices \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 124000,
"currency": "UAH",
"reference": "A-10427",
"description": "Замовлення A-10427",
"callback_url": "https://shop.ua/hooks/kvitnyk"
}'
{
"id": "inv_8Qk2m",
"status": "pending",
"pay_url": "https://pay.kvitnyk.com/8Qk2m",
"qr_payload": "BCD002UCT...",
"expires_at": "2026-09-12T18:40:00Z"
}Підтвердження платежу
Приходить після того, як надходження зійшлося з виставленим платежем. Перевіряйте підпис у заголовку перед обробкою.
POST /hooks/kvitnyk
{
"event": "invoice.paid",
"invoice_id": "inv_8Qk2m",
"reference": "A-10427",
"amount": 124000,
"paid_amount": 124000,
"currency": "UAH",
"payer_bank": "monobank",
"payer_name": "І*** К***",
"matched_by": "reference",
"verified_at": "2026-09-12T18:12:41Z"
}
HTTP 200 → доставлено
інакше: 5 повторів, 1m → 1hСтатуси платежу
| pending | Платіж виставлено, надходження ще немає. |
|---|---|
| paid | Сума зійшлася — платіж підтверджено, вебхук надіслано. |
| review | Надходження є, але автоматично не звелося: інше призначення, платіж від третьої особи або кілька схожих сум. Чекає на рішення в дешборді — підтвердити вручну можна одним кліком, вебхук піде після цього. |
| underpaid | Зайшло менше, ніж виставлено. У payload — фактична сума. |
| overpaid | Зайшло більше, ніж виставлено. Різницю повертаєте самостійно. |
| expired | Термін платежу минув, надходження не було. |
| refunded | Ви повернули кошти клієнту — позначено вручну або через API. |
Sandbox
Окремі ключі й емуляція надходжень: можна прогнати всі статуси, не переказуючи реальні кошти.
Ідемпотентність
Reference — ключ унікальності. Повторні запити не створюють другий платіж і не дублюють вебхук.
Готові модулі
WooCommerce, Prom, Shopify та приклади для Node, PHP, Python і Laravel.
Ліміти API
100 запитів/хв на ключ. Вебхуки — 5 повторів із наростаючою затримкою до однієї години.
Ключі й sandbox — того ж дня.
Заявка без дзвінків і договорів. Тестові ключі видаємо того ж дня, продакшн — після підключення рахунку.