Платіжна інфраструктура без привʼязки до постачальника
Стек багатьох провайдерів для українських ФОП-3 SaaS. WayForPay для підписок і разових покупок, LiqPay + Monobank для повернень. Stripe залишається в репо для Y2 EU expansion.
Архітектура, незалежна від постачальника — переключення між провайдерами через одну змінну середовища. PCI DSS Рівень 1, 3-D Secure 2.0, інтеграція ПРРО з коробки.
Чому не Stripe як основний?
Stripe — це стандарт галузі для SaaS на Заході, але для українського ФОП-3 він не є практичним вибором у V1. Stripe не приймає прямо реєстрацію UA ФОП — потрібно або EU LLC (Estonia OÜ ~€600 + щорічні витрати, Польща sp. z o.o. ~₴80k налаштування), або Stripe Atlas (US Delaware LLC, $500 налаштування + щорічна звітність до IRS).
До того ж повторюваний платіж у UAH через Stripe має 1.5-2% втрат обмінних курсів при кожному перетворенні в USD. Для плану $49/місяць це ~$0.70-1.00 втрати на місяць на клієнта — гроші які краще лишити у клієнта або в продукті.
WayForPay приймає українського ФОП-3 за 1-3 робочі дні перевірки, нативно стягує в UAH без обмінних курсів, і має автоматичну інтеграцію ПРРО. Для повернень використовуємо API повернення LiqPay (action=refund) та Monobank як резервний варіант. Це дає нам повну можливість обробляти повернення для замовлень, оплачених через будь-який провайдер.
Stripe не "відкинутий" — він активний у кодовій базі як третій провайдер. Коли матимемо EU LLC або Stripe Atlas (Y2 — після PMF в UA), активуємо одним параметром середовища. Дивись ADR-039 для повної декомпозиції.
П'ять провайдерів — одна абстракція
Кожен провайдер закриває специфічний випадок використання. Маршрутизація відбувається на рівні оркестратора через інтерфейс <code class="font-mono text-primary-500">SubscriptionProvider</code> + перемикач багатьох провайдерів <code class="font-mono text-primary-500">refund-providers.ts</code>.
WayForPay
live (після KYC)Повторюваний токенізований збір, інтеграція ПРРО, місячні/річні плани, повторні спроби платежу + нарахування.
- • Хмара підписок (повторюваний без ручної токенізації)
- • Карта + Apple Pay + Google Pay
- • 3-D Secure 2.0 обовʼязковий
- • Інтеграція ПРРО на KYC — фіскальні квитанції автоматично
- • PCI DSS Рівень 1
- • Шлях розширення ЄС через перебрендинг Flitt
LiqPay
live (перемикач багатьох провайдерів)Найнадійніший UA шлюз (PrivatBank). Використовуємо для виконання повернення для замовлень оплачених через LiqPay.
- • API повернення (sha1 підпис)
- • Багатовалютна: UAH, USD, EUR
- • Apple Pay + Google Pay
- • Потік зворотного платежу для повернень
Monobank Acquiring
відстрочено (P2)Найдешевший UA придбавець (1.4-2.5%). Повторюваний обмежений — використаємо для одноразових платежів коли воронка покупців стабілізується.
- • API скасування/повернення рахунків
- • X-Token авторизація
- • Найдешевша комісія на UA ринку
- • Повторюваний потребує окремої банкерської угоди
Stripe
відстрочено (Y2 ЄС)Третій провайдер у репо. Активується коли буде EU LLC або Stripe Atlas + обсяг клієнтів ЄС/США виправдовує вартість.
- • Підписка + Податок + Портал біллінгу
- • Найкращий розробницький досвід
- • Багатовалютна рідна
- • Активувати через BILLING_PROVIDER=stripe
ФОП-3 + ПРРО — без ручної звітності
Українські SaaS на ФОП-3 (спрощена система 5% від обороту) при продажу послуг резидентам України зобов'язані використовувати програмну РРО — реєстратор розрахункових операцій. Це фіскальний чек, який автоматично йде у податкову при кожній транзакції.
- ✓ Автоматичне формування ПРРО чека на кожну успішну транзакцію
- ✓ Емейл клієнту з фіскальним чеком (юридично закриваючий документ)
- ✓ Передача чека в податкову через API кабінету платника
- ✓ Розрахунок єдиного податку (5%) автоматично з вхідного обороту
- ✓ Активувати інтеграцію ПРРО під час WayForPay KYC (~10 хв розмови)
- ✓ Подати квартальну ФОП-3 декларацію — наш Tax Auto-Pilot агент генерує
- ✓ Тримати ФОП-3 ліміт у межах ~₴8.3M/рік оборот (~$200k)
- ✓ При наближенні до ліміту — переходити на ТОВ (плануй заздалегідь)
Якщо плануєш scale > $200k ARR — починай реєстрацію ТОВ паралельно з launch. Y1 mantra $30k MRR = $360k ARR перевищує ФОП-3 ліміт через ~6 місяців. Це не блокер для launch, але враховуй у роадмепі.
Що під капотом
Інтерфейс SubscriptionProvider
interface SubscriptionProvider {
id: 'demo' | 'wayforpay' | 'stripe';
isConfigured(): boolean;
createCheckout(args): Promise<{ url }>;
createPortal(args): Promise<
| { kind: 'hosted'; url }
| { kind: 'unsupported'; reason }
>;
} Кожен провайдер реалізує цей інтерфейс. Реєстр у <code class="font-mono">billing/provider.ts</code>, вибір через змінну середовища <code class="font-mono">BILLING_PROVIDER</code>. Непідтриманий портал (WayForPay не має розташованого портала біллінгу) — fallback інтерфейсу на /dashboard/settings.
Виконання повернення (багатопровайдерські)
type RefundProviderId =
| 'liqpay' | 'monobank'
| 'stripe' | 'manual';
executePaymentRefund(provider, {
paymentIntentId,
amountUah,
reason,
idempotencyKey,
}) => Promise<RefundResult> Маршрутизація на провайдера яким було сплачено замовлення. Ідемпотентність через <code class="font-mono">refund-log id</code> — безпечна для повторного відтворення. Помилки повертають структурований результат (успіх/невдача/потрібно вручну), ніколи не викидають.
Перевірка підпису вебсайту
- WayForPay: HMAC-MD5 на
merchantSecretKey - LiqPay: sha1(secret + data + secret) base64
- Monobank: X-Token header + body match
- Stripe: Stripe-Signature header + secret
Кожен webhook route окремий — <code class="font-mono">/webhooks/<provider></code>. Signatures верифікуються до того як зворушити DB.
Outcome billing meters
- $0.50 / closed_deal
- $0.10 / ttn_generated
- 1-2% / ad_budget_managed
- $1.00 / return_resolved
- $2.00 / recovered_oos_sale
Метрики випускаються з runtime агента → агрегуються у <code class="font-mono">billing-meters</code> → щотижневі пункти рахунків у WayForPay. Помилки у retry-циклі cron. Оператор бачить використання в реальному часі у панелі.
Кодова база відкрита на GitHub — apps/orchestrator/src/billing/.
Що далі
FAQ — Платежі
-
Чому ви не використовуєте Stripe як основний, як усі західні SaaS?
Stripe для UA ФОП-3 потребує або EU LLC (Estonia OÜ / Польща sp. z o.o.), або Stripe Atlas (US LLC). Обидва шляхи коштують грошей і часу, який ми зараз вкладаємо в продукт. WayForPay приймає українського ФОП-3, інтегрується з ПРРО для автоматичних чеків і має рідний повторюваний UAH без обмінних курсів. Stripe залишається в кодовій базі — активуємо під час розширення Y2 ЄС.
-
Чи безпечно платити через WayForPay?
WayForPay має сертифікацію PCI DSS Рівень 1 (найвищий рівень для платіжних провайдерів). Дані картки ніколи не торкаються наших серверів — ви вводите їх на розташованому оформленні замовлення WayForPay; ми отримуємо лише токенізований ідентифікатор для повторюваних зборів. 3-D Secure 2.0 обовʼязковий. Те саме для LiqPay, Monobank та інших провайдерів.
-
Як автоматизуються повернення?
Повернення виконуються через провайдера, яким було сплачено оригінальне замовлення. Якщо замовлення оплачено WayForPay — повернення йде до API повернення WayForPay. Якщо LiqPay — до дії повернення LiqPay тощо. Це забезпечує прямі грошові потоки без посередників. ШІ-агент розпізнає повернення через KeyCRM або подію Нови Пошти (зміна статусу ТТН) → запускає робочий процес повернення → автоматично скеровує повернення до вірного провайдера. Жодних додаткових витрат, жодного тертя.
-
Що з ПРРО (програмною РРО) і фіскальними чеками?
WayForPay має нативну інтеграцію з ПРРО (Кабінет платника податків) — кожна підписка автоматично виставляє фіскальний чек клієнту по email. Активується під час KYC. Для ФОП-3 на спрощеній системі (5%) це обовʼязково при продажу послуг резидентам України. Ми передаємо метадані замовлення (категорія послуги, ставка ПДВ "без ПДВ для ФОП-3"), решта — у WayForPay automation.
-
Чи можу я платити криптою / Apple Pay / Google Pay?
Apple Pay + Google Pay — так, через підтримку портмоне WayForPay. Криптовалюти — ні у V1; розглянемо в Y2 коли буде регуляторна ясність по директиві НБУ щодо віртуальних активів.
-
А якщо WayForPay тимчасово недоступний?
Архітектура, незалежна від постачальника (див. ADR-039) — ми можемо аварійно перейти на Stripe за одну змінну середовища (BILLING_PROVIDER=stripe), якщо WayForPay має тривале відключення. Існуючі підписки залишаються в WayForPay; нові реєстрації йдуть через Stripe до відновлення. Це задокументовано у посібнику розгортання виробництва.
-
Скільки відсотків бере WayForPay? Це вплине на мою ціну?
Комісія WayForPay ~2.7-3% від суми + збір ПРРО (~₴1-2 на чек). Ці витрати ми покриваємо з маржі ринку, ваша ціна на Unitelia не змінюється від цього. Для порівняння: Stripe для UA ФОП — 2.9% + $0.30 фіксована комісія на транзакцію, що для плану $49/міс становить ~$1.72 vs WayForPay ~$1.32-1.47. Дешевше для маленьких сум.
-
Виставляєте акти, рахунки, ПДВ-накладні?
Підписки на ФОП-3 — ми ФОП-3 на спрощеній системі (5%), без ПДВ. WayForPay автоматично формує фіскальний чек через ПРРО — він юридично є закриваючим документом для більшості випадків. Якщо ваша бухгалтерія потребує акт виконаних робіт у форматі docx — пишіть на m.nazar77@gmail.com, виставимо вручну. Юридичним особам з ПДВ (рідкісне для UA SMB) — окремий шлях, на старті не оптимізовано.
Питання по платіжній архітектурі?
30-хвилинне демо — покажу оформлення замовлення песочниці WayForPay, потік повернення LiqPay, зразок квитанції ПРРО. Якщо ти оцінюєш Unitelia з технічної сторони — це найшвидший спосіб переконатись що ми не розмахуємо рукою.