mndev
EN/UA/IT
Платіжна інфраструктура · Мультивалютні виплати

Система виплат

"Ручні виплати стали маршрутизатором — 40+ напрямків «валюта × метод», без жодного втраченого колбека."

40+
Напрямків виплат
0
Втрачених колбеків
24/7
Робота без нагляду

Обмінник, де кожна виплата проходила через людину — картки, IBAN, Wise, PayPal, Revolut, Interac, Idram, UZCARD, Humo. Перебудовано як шар маршрутизації з надійною доставкою, тож ніщо не залежить від того, чи хтось не спить.

Роль: Бекенд та інтеграції — сервіси виплат, плагін на боці біржі, інструменти для операторів, деплой.

Проблема

Доставка була best-effort у буквальному сенсі: одна спроба туди, одна назад, помилка в лог і забули. Рестарт посеред виплати лишав гроші відправленими, а заявку — завислою назавжди, і кожна нова валюта означала правки коду в трьох місцях.

Підхід

  • 01Описав напрямки як дані — пара «валюта + метод» мапиться на маршрут, тож новий це рядок у таблиці, а не деплой.
  • 02Зробив доставку надійною: результат пишеться до колбека і знімається лише після підтвердження, а фоновий дрейн дотискає решту.
  • 03Повторюю лише те, що лікує час — мережу, 5xx, протерміновану авторизацію — і закріпив правило юніт-тестом.
  • 04Додав на боці біржі сканер перевідправки за розкладом; приймач дедуплікує за UUID, тож повторний POST це просто ретрай.
  • 05Переніс роботу операторів у Telegram замість панелі, яку ніхто не тримав відкритою.
  • 06Прибрав демо-секрет із коду в оточення, що підставляється через CI.

Результат

  • Результати виплат переживають рестарти, деплої та мережеві збої — черга дренується й доставляє.
  • 40+ напрямків «валюта × метод» у продакшні: від GBP і CAD до UZS, TJS, GEL, AMD та NGN.
  • Заявки більше не губляться між біржею і сервісом виплат: дедуплікація за UUID робить перевідправку безпечною.
  • Депозити, які раніше заводили руками, тепер проводяться автоматично.
  • Операційний процес живе в Telegram, а адмінка стала поверхнею аудиту, а не вузьким місцем.

Бізнес-вплив

Відділ виплат перестав бути людиною: заявки маршрутизуються самі й підтверджуються назад без нагляду, зокрема крізь рестарти, які раніше коштували завислої заявки. Новий ринок тепер це конфігурація — тому напрямків уже за сорок.

Під капотом

Сервіси виплат

  • Rust · надійна черга колбеків
  • SQL-міграції · таблиця відкладених результатів
  • Політика ретраїв під юніт-тестом
  • Telegram-боти для операторів

Інтеграція з біржею

  • Laravel-плагін · сканер перевідправки за розкладом
  • Дедуплікація за UUID · 409 як сигнал ретраю
  • Парсери провайдерів (Node)
  • Секрети через CI, жодного в коді

Платформні сервіси

  • NestJS · Prisma · Telegraf
  • Вітрина обмінника на Nuxt · i18n · PWA
  • Java · Spring P2P-сервіс
  • Сервіс генерації PDF (NestJS)

Інфраструктура

  • Docker Compose на сервіс
  • GitHub Actions · секрети в оточення
  • Скрипти самоперевірки на хості
  • Структуровані логи для трасування доставки

Є система, яку треба збудувати?

Платежі, інтеграції, мобільні застосунки, пайплайни даних — якщо це має працювати без нагляду і бути коректним, це моя робота. Від архітектури до запуску, і далі — підтримка.

Написати в Telegram