---
title: "Оплата тарифу — лінк на оплату (лише Україна, грн)"
method: POST
path: "/topup"
---

# Оплата тарифу — лінк на оплату (лише Україна, грн)

`POST /topup`

## Request

- Base URL: `https://rombik.app/api/v1`
- URL: `https://rombik.app/api/v1/topup`
- Auth: API key in header `X-API-Key`

Створює pending-платіж і повертає посилання на оплату plata by mono (картка / Apple·Google Pay). ⚠️ УВАГА: оплата тут — ЛИШЕ для України (у гривні). Міжнародним користувачам: оформлюйте тариф на сайті rombik.app — там є оплата карткою в USD (Paddle), а API-ключем далі користуйтесь як завжди (тариф той самий). Тіло: {kind: plan, id} — id особистого тарифу з /products. 409 plan_conflict — Студент, поки діє Pro.

## Request body

- TopupRequest
  - `kind` 'plan', required
  - `id` integer, required: id особистого тарифу (Студент або Pro) з /products
  - `provider` 'plata' | 'jar' | 'paddle': необов'язково: paddle → оплата в USD через Paddle (міжнародна); порожньо → серверний дефолт (plata/jar, ₴)

## Response `200`

Лінк на оплату

- TopupResponse: ЄДИНА форма для всіх провайдерів — ключі однакові, різняться лише значення (гілкуйся по provider, а не по наявності полів). plata by mono (активний): payUrl — платіжна сторінка, iframe=true у вебі. jar (запасний): payUrl — банка, iframe=false, invoiceId порожній, code — коментар для ручного переказу.
  - `provider` 'plata' | 'jar': Провайдер оплати: plata by mono (картка / Apple·Google Pay) або jar (monobank-банка)
  - `payUrl` string: Посилання на оплату — відкрий у браузері (plata: сторінка; jar: банка з готовими сумою+кодом)
  - `iframe` boolean: Чи можна вбудувати payUrl в iframe (plata у вебі → true; CLI/API та jar → false — відкривай лінком)
  - `invoiceId` string: id інвойса для звірки статусу/повернення (plata; для jar — порожній рядок)
  - `code` string: Код платежу для звірки статусу через /pay/verify (для jar — ще й коментар до ручного переказу)
  - `label` string: Людська назва покупки (напр. «Студент · місяць (30 дн.)»)
  - `plan` 'student' | 'pro'
  - `days` integer: Скільки днів тарифу дасть оплата
  - `amountKop` integer: Сума в копійках
  - `amountUah` number: Сума в гривнях

## Other responses

- `400`: Помилка
- `401`: Помилка
- `429`: Помилка
- `500`: Помилка
- `503`: Помилка

---

[API](https://skmtc.dev/rombik/apis/rombik-api.md) · [All operations](https://skmtc.dev/rombik/apis/rombik-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rombik/apis/rombik-api/revisions/acaa43ba308c?raw)
