---
name: vakhunter_platega_live
description: VakHunter — Platega платежи БОЕВЫЕ; Callback URL бесплатно через Tailscale Funnel (приём для NAT-сервиса без VPS)
metadata: 
  node_type: memory
  type: project
  originSessionId: 805ead91-dfa3-49d2-a5e6-01a980e715fd
---

VakHunter принимает оплату через **Platega** боевыми кредами (с 2026-06-22, commit fd2bd84). Креды `X-MerchantId`/`X-Secret` — в `.env` на мини (НЕ в git).

**API (docs.platega.io, Apidog — машиночитаемо в `/llms.txt`):**
- Создание: `POST https://app.platega.io/v2/transaction/process` (метод-less, плательщик сам выбирает СБП/карта/крипта). Тело: `paymentDetails{amount,currency}`+`description`+`return`+`failedUrl`+`payload`+`metadata{userId}`. **`id` НЕ слать.** Ответ: `url`(редирект)+`transactionId`.
- Callback: Platega POST'ит на наш URL с заголовками `X-MerchantId`+`X-Secret` (HMAC тела НЕТ — auth = совпадение этих заголовков, constant-time, fail-closed) + JSON `{id,amount,currency,status,paymentMethod,payload}`. Статусы `CONFIRMED/CANCELED/CHARGEBACKED`. **metadata в callback НЕ приходит** → user/tariff берём из строки `payments` по invoice_id(=transactionId); `payload="uid:tid"` резерв. Нужен 200 за 60с, иначе 3 ретрая ×5мин.

**Callback URL = бесплатно через Tailscale Funnel** (переиспользуемый приём для любого NAT-сервиса без VPS): на мини уже крутится `tailscaled`-ops (Funnel для ops_dashboard на `https://cebers-mini.tail2f8be2.ts.net`). Добавлен path-маршрут `funnel --bg --set-path=/payment/platega → http://127.0.0.1:8080`. `.ts.net` = настоящий Let's Encrypt-серт. **Грабли:** (1) `--set-path` СРЕЗАЕТ префикс → бэкенд видит `/` (продублировал aiohttp-роут `/` и `/payment/platega`); (2) `serve` (без `funnel`) снимает Funnel со всего :443 — использовать ТОЛЬКО `funnel --bg`. CLI: `/opt/homebrew/bin/tailscale --socket=/Users/cebers_mini/Services/ops_dashboard/tailscale/tailscaled.sock ...`. Маршрут в `restore_funnel.sh`.

URL для вставки в ЛК Platega (Настройки → Callback URLs): **`https://cebers-mini.tail2f8be2.ts.net/payment/platega`** — это ручной шаг юзера (ЛК за логином).

E2E через публичный URL пройден (403 без/с неверными заголовками; 200+активация с верными; идемпотентность). Зависимость: жив mini + `com.cebers.tailscaled-ops`. См. [[vakhunter_legal_docs]], [[ops_dashboard_tailscale_funnel]], [[vakhunter_overview]]. Obsidian D28/D31.
