Перейти до вмісту

Payments — Monobank

ПолеЗначення
ПровайдерMonobank (Acquiring API)
Хто використовуєAbitly API (Studsearch — TODO: уточнити, можливо ні)
Token/abitly/{env}/backend/MONOBANK_TOKEN (SSM SecureString)
DashboardTODO: (https://api.monobank.ua/ + Mono account)
ТипСтворенняWebhook → statusRedirect після
SubscriptionPOST /payments/subscriptionSUBSCRIPTION_WEBHOOK_URLSUBSCRIPTION_REDIRECT_URL
Premium (one-off)POST /payments/premiumPREMIUM_WEBHOOK_URLPREMIUM_REDIRECT_URL
Token purchasePOST /payments/tokensTOKEN_PURCHASE_WEBHOOK_URLTOKEN_PURCHASE_REDIRECT_URL

Точні ендпоїнти/назви скоупів — TODO: (звірити з кодом abitly-api-v2).

Sequence-діаграма → data-flows#оплата.

  • Webhook не доходить → перевірити Cloudflare rule (orange-cloud не блокує POST з IP Monobank), валідність підпису, лог у Telegram-logger.
  • Платіж завис у pending → перевірити статус інвойсу через Monobank API (getInvoiceStatus); якщо в Mono — paid, але у нас не активовано — повторити обробку webhook вручну.
  • Невалідний підписMONOBANK_TOKEN міг ротуватись; перевірити збіг з Mono account.
  • MONOBANK_TOKEN — лише в SSM SecureString, ніколи в git.
  • Webhook signature verification обов’язкова (Monobank підписує SHA256(body + secret)).
  • IP allowlist у Cloudflare — TODO: чи увімкнено.