RozetkaPay Україна
Картки, Apple Pay, Google Pay, hold (двостадійна оплата), hosted-сторінка. Офіційна документація: https://docs.rozetkapay.com/. Комісія шлюзу: за тарифом RozetkaPay.
Доступи
Логін і пароль мерчанта (HTTP Basic). Пароль також є ключем підпису callback. Пісочниця: https://api-epdev.rozetkapay.com (ROZETKAPAY_SANDBOX=1).
- Змінні середовища
ROZETKAPAY_LOGINROZETKAPAY_PASSWORDROZETKAPAY_SANDBOX=0|1 (опц.)ROZETKAPAY_API_BASE (опц.)- Вебхук
POST /webhooks/rozetkapay, JSON; заголовокX-ROZETKAPAY-SIGNATURE= base64url(sha1(password + base64url(тіло) + password)). Відповідь200 OK; статус перечитується з /info.
Що викликає Місток
| Запит | Поля / сенс |
|---|---|
POST /api/payments/v1/new | external_id, amount, currency=UAH, mode=hosted, confirm (false = hold), callback_url, result_url, customer{email, phone, locale}, checkout_ttl → {id, action.value = сторінка оплати} |
GET /api/payments/v1/info?external_id | агрегований стан (purchase / confirmation / cancellation / refund details); 404 data_not_found = ще ніхто не платив |
POST /api/payments/v1/refund | повернення (повне/часткове) |
POST /api/payments/v1/confirm | списання холду |
POST /api/payments/v1/cancel | зняття холду / анулювання |
Статуси
init, pending → processing · success → success (hold до confirm для двостадійного) · failure → failure · failure + session_expired → expired · cancel / повне повернення → reversed.
Модель Містка: created → processing → (hold →) success | failure | expired | reversed. Замовлення в Shopify отримує оплату лише на success і лише після звірки суми й валюти з нашим записом.
Пісочниця
Тестові картки: 4242 4242 4242 4242 (3DS, успіх), 4111 1111 1111 1111 (успіх), 4200 0000 0000 0000 (відмова), 4000 0000 0000 0044 (недостатньо коштів).
Обмеження
- тільки UAH
- external_id унікальний для кожної спроби
- комісія у відповідях API не повертається
Не підтверджено живим прогоном
Реалізовано за офіційними доками та SDK; перший прогін на тестових ключах обов’язковий.
- поле operation у callback (payment|confirm|cancel|refund)
- назва поля checkout_ttl (хвилини)
- публічні sandbox-дані можуть повертати 401 — запитайте власні; docs.rozetkapay.com недоступний з нашої мережі, формати взято з офіційного php-sdk