Тариф — главный объект покупки; права его наполняют; цена — офер на пейволе.
Тарифы и цены
Тариф (plan) — центр модели. Пользователь покупает тариф (через цену на пейволе).
Права привязаны к тарифу и выдаются при успешной оплате / ключе.
Цена (plan_price) — конкретный офер (месяц / год / lifetime / free) на витрине.
Пейвол
└── plan_price ← то, что выбирают и передают в createPayment
└── plan ← тариф (срок, lifetime, название)
└── entitlements[] ← что откроется после покупки
Тариф (plan)
| Поле | Заметки |
|---|---|
code | Стабильный id (arken_pro_year, free) |
name | На пейволе |
billing_type | one_time | recurring | lifetime | free |
duration_days | Срок для временных тарифов |
is_lifetime | Без expiry |
status | На публичный пейвол — active |
| entitlements | Какие права даёт этот тариф |
Цена (plan_prices)
| Поле | Заметки |
|---|---|
amount | Реальная сумма. 0 = free |
currency | например RUB |
discount_percent | Только UI (зачёркнутая цена) |
payment_provider | yookassa или free |
is_active | Должен быть true |
В ответе API: compare_at_amount, has_discount, display, is_free, requires_purchase, works_offline.
Free
billing_type: freeи/илиamount: 0- На пейволе для сравнения
- Не покупается —
createPayment→free_plan_offline - Базовые фичи free — локально в приложении
Платный
amount > 0- Успех → subscription-период + выдача прав тарифа
- Доступ добавляется к free-локальным фичам
Что делать в SDK
getPaywall— показать офферы (тарифы/цены).- Для UI буллетов читать
plan.plan_entitlements/ entitlement codes. createPayment({ plan_price_id })— только платные.- После оплаты —
getMyEntitlements/hasEntitlement(code)для гейтов.