# Побудувала рівень платежів і прав доступу — Stripe поряд із внутрішньозастосунковими покупками Apple і Google — обмеживши каталог, пошук та експорт моделлю доступу з 11 таблиць, яку перевіряє сервер.

2025

**Ситуація.** Гроші — це та частина платформи, до якої нікому не дозволено ставитися недбало. Підписка мусить пережити закінчення строку дії картки, повернення коштів, зміну тарифу, вебхук, що прийшов двічі, і вебхук, що прийшов не в тому порядку. Щойно оплата починає відбуватися на трьох вітринах — карткою у вебі, через Apple в одному app store, через Google в іншому, — з'являються три різні версії того, що саме людина купила, а продуктові все одно потрібна одна відповідь на одне запитання: що цій людині дозволено робити просто зараз?

**Завдання.** Приймання грошей і надання прав мали стати двома системами, а не однією, щоб додавання ще однієї вітрини не означало переписування кожного гейта в продукті.

**Дія.** Stripe опрацьовує картки й підписки через 18 файлів Go, а in‑app‑покупки Apple і Google приходять через власну перевірку квитанцій. Усі три сходяться в схемі payments із 9 таблиць і 34 функцій — і на цьому спиняються. Те, про що продукт запитує насправді, — це окрема схема access, 11 таблиць і 34 функції, яка відповідає на «чи можна цьому обліковому запису зробити це?», не знаючи й не цікавлячись, яка саме вітрина за це заплатила. Ця відповідь закриває каталог компаній, пошук і експорт даних, і вона перевіряється сервером повторно на кожен запит, бо прихована кнопка — це ввічливість, а не механізм контролю.

**Результат.** Додавання вітрини тепер зачіпає бік payments і лишає гейти в спокої, а питання підтримки про чийсь доступ має одну таблицю, у яку треба зазирнути, замість трьох. Ціна — це дві схеми там, де меншому продуктові вистачило б однієї, плюс перевірка прав на тих запитах, які інакше були б безкоштовними.

---

- Роль: Backend‑інженер
- Категорії: [Backend‑розробка](https://platform.engineer.company/uk/categories/backend/), [API та інтеграції](https://platform.engineer.company/uk/categories/api/), [Бази даних](https://platform.engineer.company/uk/categories/databases/), [PostgreSQL](https://platform.engineer.company/uk/categories/postgresql/), [Безпека](https://platform.engineer.company/uk/categories/security/), [Продукт і вимоги](https://platform.engineer.company/uk/categories/product/)
- Послуги: [Backend- та API‑розробка](https://platform.engineer.company/uk/services/backend-development/), [Проєктування та моделювання баз даних](https://platform.engineer.company/uk/services/database-design/), [Безпека та керування доступом](https://platform.engineer.company/uk/services/security-access/), [Продуктова стратегія та вимоги](https://platform.engineer.company/uk/services/product-strategy/)

<https://platform.engineer.company/uk/portfolio/built-the-payments-and-entitlements-layer-96/>
