# Як live.tips поводиться з грошима (ніяк)

> Немає жодного балансу live.tips, жодного графіка виплат і жодної комісії. Ось архітектура, яка робить ці три твердження нудними, а не сміливими.

Canonical: https://live.tips/uk/blog/yak-live-tips-povodytsia-z-groshyma/
Published: 2026-07-02
Updated: 2026-07-15
Language: uk
Tags: Stripe, privacy, open source

---

Будь-яка скарбничка для чайових може написати «0% комісії» на своїй головній
сторінці. Цікавіше запитання — що програмному забезпеченню довелося б зробити,
щоб *почати* брати свою частку, і скільки з цього ти зміг би побачити.

Для live.tips відповідь така: його довелося б переписати з нуля. Це не обіцянка
про наші наміри, це опис того, куди йдуть гроші.

## Гроші ніколи не проходять через нас

Коли шанувальник торкається суми на картці, платіж створюється для **твого**
акаунта Stripe, осідає на **твоєму** балансі Stripe і виплачується за **твоїм**
графіком Stripe. Єдина комісія — це стандартна комісія Stripe за обробку, яку
Stripe стягує з тебе напряму, точно так само, як і тоді, якби ти інтегрував
Stripe самостійно.

На нашому боці немає жодної облікової книги, бо нічого записувати. Ми не могли б
відщипнути відсоток, не побудувавши спершу те, що тримає гроші, — а такого немає.

Це справедливо незалежно від того, увійшов ти чи ні. Вхід змінює шлях *даних*, а
не шлях грошей, і наступні два розділи чесно пояснюють, як саме.

## Твої ключі, і де вони живуть

Під час налаштування ми просимо *обмежений* ключ API Stripe, а не робочий
секретний ключ — такі ми відхиляємо навідріз. «Обмежений» означає, що ключ може
робити дві речі: створювати посилання на чайові за принципом «плати скільки
хочеш» і стежити за надходженням чайових. Він не може прочитати твій баланс,
запустити виплати, оформити повернення коштів чи торкнутися даних клієнтів. Якби
він завтра витік, радіус ураження — одне посилання на чайові.

**Без акаунта цей ключ ніколи не залишає твій пристрій.** Він лежить у власному
сховищі ключів твого пристрою й надсилається лише на `api.stripe.com` через TLS.
Жодного сервера live.tips на цьому шляху немає взагалі.

**Коли ти входиш в акаунт, ключ переходить до нас** — бо ключ, який існує лише на
одному телефоні, не може обслуговувати ще й планшет на сцені. Ми шифруємо його
(окремий для кожного секрету ключ AES-256, який, своєю чергою, загорнутий у Google
Cloud KMS) і зберігаємо там, звідки його ніхто не може прочитати назад: ні інший
акаунт, ні ми, зазирнувши в базу даних, ні навіть ти сам. Його розпечатують лише
всередині наших функцій, використовують, щоб спілкуватися зі Stripe від твого
імені, і більше ніколи не віддають на пристрій. Скажімо це прямо: вхід в акаунт
ставить сервер live.tips на шлях між Stripe і твоєю історією чайових. Ніколи гроші
— дані.

## Сервери, і чого вони не можуть

Їх два, і обидва мінімальні.

**Ретранслятор** існує тому, що Revolut і MobilePay не можна керувати з браузера
так, як Stripe. Їхнє увімкнення запускає жменьку функцій Firebase, які віддають
твою сторінку чайових на `tip.live.tips`. Він зберігає публічний профіль твоєї
сторінки чайових — відображуване ім'я та платіжні реквізити, які ти вирішив
оприлюднити — і, для сторінки, за якою немає акаунта, не веде історії чайових:
чайові чекають лише доти, доки їх не покаже твій сценічний пристрій, а все, по що
ніхто не повернувся, вимітається протягом години. Він не бачить грошей і
самознищується після 90 днів бездіяльності. Якщо ти користуєшся лише Stripe і
ніколи не входиш в акаунт, до ретранслятора взагалі ніколи не звертаються.

**Вебхук** існує лише тоді, коли ти увійшов в акаунт. Оскільки твій ключ тепер
живе в нас, Stripe повідомляє про кожні чайові невеликій нашій функції, яка
записує їх у твою власну історію, щоб їх могли показати твої інші пристрої. Це
копія події, а не копія грошей. Вона не може зрушити ні цента й може писати лише в
той один акаунт, якому належить.

Жоден із серверів не може взяти собі частку, бо жоден навіть близько не стоїть біля
грошей. Найбільше, на що здатен будь-який із них, — це відмовити, а налаштування
лише зі Stripe без акаунта не залежить від жодного.

## Акаунт, якого можна не заводити

Застосунок і далі стартує з локальним профілем на пристрої — тим самим, яким він
завжди й був: твоя банка чайових, твій ключ і твоя історія чайових живуть на
пристрої та більше ніде. Реєструватися немає для чого.

Вхід — через Apple, через Google або як гість — тепер можливий, і існує він заради
одного: другого пристрою. Якщо планшет на сцені й телефон у кишені мають показувати
той самий вечір, між ними щось має стояти, і це щось — Firestore, під ідентифікатором
користувача, який можеш читати лише ти. Туди синхронізуються твої гурти,
налаштування, історія чайових — і, зашифрований як вище, твій ключ Stripe. Це
справжня зміна в історії про приватність, і про неї варто сказати прямо, а не
чекати, доки ти натрапиш на неї сам: без акаунта жоден сервер ніколи не бачить
чайових; з акаунтом їх бачить твій власний куток нашого, і саме наш вебхук записує
їх туди. Це ціна другого пристрою, і платити її чи відмовитися — вирішувати тобі.
Чого він не торкається ніколи, то це грошей: акаунт переносить твої дані, а не твій
баланс, і частки, як і раніше, немає.

## Чому не варто вірити нам на слово

Усе вищесказане можна перевірити. Кодова база має ліцензію MIT і є відкритою, а
сайт — це статична збірка, яку GitHub Actions розгортає на GitHub Pages: жодної
прихованої інфраструктури, нічого скомпільованого за зачиненими дверима. Відкрий
вкладку мережі під час демонстраційних чайових і почитай запити. Їх менше, ніж ти
очікуєш.

Ось у чому справжня обіцянка продукту. Не в тому, що нам можна довіряти, а в тому,
що тобі це й не потрібно.
</content>
</invoke>
