Tranzzo Україна
Агрегатор: картки, Apple/Google Pay, hold, hosted-сторінка оплати. Офіційна документація: https://docs.tranzzo.com. Комісія шлюзу: за договором Tranzzo.
Доступи
Тестовий проєкт і ключі доступні одразу після реєстрації в кабінеті Tranzzo: POS_ID, API_KEY, API_SECRET (бойові — після створення live-проєкту).
- Змінні середовища
TRANZZO_POS_IDTRANZZO_API_KEYTRANZZO_API_SECRETTRANZZO_ENDPOINTS_KEY (опц.)TRANZZO_WEBHOOK_SECRET (опц.)TRANZZO_API_BASE (опц.)- Вебхук
POST /webhooks/tranzzo, form-urlencodeddata(base64url JSON) +signature= base64url(sha1(API_SECRET + data + API_SECRET)). Запити до API підписуютьсяX-API-AUTH: CPAY-HMAC-SHA256 API_KEY:hex(hmac_sha256(API_SECRET, тіло)).
Що викликає Місток
| Запит | Поля / сенс |
|---|---|
POST /api/v1/payment | pos_id, mode=hosted, method=purchase|auth, amount, currency, description, order_id (≤ 32), order_timeout, server_url, result_url → HTTP 303 Location = сторінка оплати |
GET /api/v1/pos/{POS_ID}/orders/{order_id} | усі транзакції замовлення (purchase/auth + capture/void/refund) — Місток згортає їх в один статус і перечитує після кожного вебхука |
POST /api/v1/refund | повернення (повне/часткове) |
POST /api/v1/capture | списання холду при orders/fulfilled |
POST /api/v1/pos/{POS_ID}/order/{order_id}/cancel | анулювання неоплаченого платежу |
Статуси
init → created · pending → processing · success (purchase/capture) → success · success (auth) → hold · success (refund/void) → reversed · failure → failure, коди 6006/6007/4149 → expired.
Модель Містка: created → processing → (hold →) success | failure | expired | reversed. Замовлення в Shopify отримує оплату лише на success і лише після звірки суми й валюти з нашим записом.
Пісочниця
Окремого хоста пісочниці немає — тестовий проєкт у кабінеті працює на cpay.tranzzo.com. Тестові картки: 4111 1111 1111 1111 (успіх), 4242 4242 4242 4242 (3DS), 4000 0000 0000 0044 (недостатньо коштів).
Обмеження
- order_id ≤ 32 символи
- холд авто-анулюється за правилом проєкту
- рекомендований таймаут запитів ≥ 30 с
Не підтверджено живим прогоном
Реалізовано за офіційними доками та SDK; перший прогін на тестових ключах обов’язковий.
- підпис GET-запитів (підписуємо порожнє тіло)
- секрет вебхука: API_SECRET чи окремий SECRET_KEY — є TRANZZO_WEBHOOK_SECRET
- формат поля fee у відповідях