Paying for AI in rubles: SBP, a dollar balance and the exchange rate
Rubles paid via SBP turn into a dollar balance at the rate on the payment date plus the payment page fee. The formula, a top-up table and the price of requests in rubles.
5 min · · payments · экономия
Paying for AI in rubles comes down to a simple scheme in practice: you choose a top-up amount in dollars, the payment page converts it to rubles at the market rate on the payment date, adds a fee, and you pay via SBP. Exactly the dollar amount you chose arrives on the balance, and tokens are then charged in dollars. Below: the formula, a top-up table and how to convert the price of requests into rubles. All calculations are tied to prices as of October 18, 2026.
How paying for AI from Russia works: rubles, dollars, tokens
Zukko works as an API gateway: one fetch_... key, a single dollar balance, payment per token, no subscription. The chain looks like this:
- Top-up. You choose an amount in dollars (minimum $1).
- Payment via SBP. The amount is converted to rubles at the market rate on the payment date, and the payment page adds an 8.5% fee on top.
- Balance. The dollar amount you chose is credited to the account; the fee does not affect the balance.
- Charging. Each request charges dollars at the token price of the chosen model.
There are three ways to pay from Russia: SBP, MasterCard cards and cryptocurrency.
An important consequence: the balance is stored in dollars, so a change in the exchange rate after top-up does not change how many tokens you can buy with money already paid in. The rate only affects the next top-up.
The formula: how many rubles a top-up takes
rubles = amount in dollars × 1.085 × ruble-to-dollar rate on the payment date
You do not know the rate in advance: it is a market rate and it changes. So the examples below use a conditional rate of 95 rubles per dollar. This is an assumption for the calculation, not a forecast: substitute today's rate.
The coefficient for the example: 1.085 × 95 = 103.075 rubles per dollar of balance.
| Balance top-up | 8.5% fee | To pay in dollar terms | In rubles at a rate of 95 |
|---|---|---|---|
| $1 | $0.085 | $1.085 | about 103.08 RUB |
| $5 | $0.425 | $5.425 | about 515.38 RUB |
| $10 | $0.85 | $10.85 | about 1,030.75 RUB |
| $50 | $4.25 | $54.25 | about 5,153.75 RUB |
| $100 | $8.50 | $108.50 | about 10,307.50 RUB |
The payment page shows the final ruble amount before confirmation: compare it with the calculation. If the amount differs noticeably, stop and check the rate and the chosen amount.
How to top up the balance step by step
- Log in to the dashboard.
- Open balance top-up and enter an amount in dollars (from $1).
- Choose payment via SBP.
- On the payment page check the final ruble amount; it should match the formula.
- Confirm the payment in your bank's app that supports SBP.
- Return to the dashboard and check the balance.
- Create a key on the API keys page and make a first request.
If the balance is not enough, the API returns a 402 error. A step-by-step SBP guide is in paying via SBP.
You can also check the balance from code, handy for your own dashboard (method description):
import requests
r = requests.get(
"https://api.zukko.pro/v1/balance",
headers={"Authorization": "Bearer fetch_your_key"},
timeout=30,
)
print(r.status_code, r.json())See the method documentation for the response format.
What requests cost in rubles
Zukko prices are set in dollars per 1M tokens. To get rubles, multiply by the same coefficient (103.075 in the example). Prices as of October 18, 2026:
| Model | Input / output, $ per 1M | In rubles per 1M at a rate of 95 |
|---|---|---|
claude-sonnet-5-5 | 0.4 / 2 | about 41.23 / 206.15 RUB |
gpt-6.1-sol | 0.27 / 1.32 | about 27.83 / 136.06 RUB |
deepseek-v4.1-flash | 0.013 / 0.038 | about 1.34 / 3.92 RUB |
An example of one request: 20,000 input tokens and 1,000 output tokens.
claude-sonnet-5-5: 0.02 × $0.4 + 0.001 × $2 = $0.008 + $0.002 = $0.01, which is 0.01 × 103.075 ≈ 1.03 RUB.gpt-6.1-sol: 0.02 × $0.27 + 0.001 × $1.32 = $0.0054 + $0.00132 = $0.00672, about 0.69 RUB.deepseek-v4.1-flash: 0.02 × $0.013 + 0.001 × $0.038 = $0.00026 + $0.000038 = $0.000298, about 0.03 RUB.
The calculation ignores cache. In agents that work in the Anthropic format, Claude cache reads are counted separately and cost less than input (for claude-sonnet-5-5, $0.05 per 1M instead of $0.4). Current prices: GET https://api.zukko.pro/v1/models or the "Models" page in the dashboard. See your real charges in the "Usage" section.
AI subscriptions versus paying for tokens: the difference
The query "paying for AI subscriptions" often mixes two different ways to pay. A subscription (for example to a chat service) gives access to an app and an included amount under the plan's rules. The terms, prices and payment methods for such subscriptions are set by the service itself and change, so see the current plan on its website. We do not sign up for subscriptions to third-party services.
Paying for tokens through an API works differently: you pay exactly for what you used. To see which is better for you, compare using the method in subscription or pay per token on your own usage profile.
Other ways to top up
- Cryptocurrency (USDT and others). Fits if you already hold crypto. Check the fee and available networks on the payment page. Details: paying with crypto.
- MasterCard cards. A fee of about 13%, amounts from $2 to $594. For a $10 top-up that is roughly $10 × 1.13 = $11.30 equivalent.
"Via MTS": among Zukko's payment methods there is no charge to a mobile phone balance. If your bank, including a telecom operator's bank, supports SBP, you can pay through its app.
There is no sign-up bonus. Once, you can get $0.50 for subscribing to the @zukkopro Telegram channel: one time per Telegram account, after linking Telegram in the dashboard.
FAQ
Why is the amount on the payment page higher than the balance?
The payment page adds an 8.5% fee on top. The dollar amount you chose is credited to the balance: top up $10, receive $10.
Is the rate fixed in advance?
The rate is a market rate taken at the payment date. You see the final ruble amount before paying, but it may differ at your next top-up.
What happens to my balance if the rate changes?
The balance is stored in dollars, so the number of tokens available for money already paid in does not change. The rate only affects the next top-up.
Can I pay a large amount at once?
The minimum top-up is $1. Whether to add more at once is up to your spending; you can set a daily and monthly dollar limit on a key to control costs.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- Buying AI tokens: how a dollar balance works and what $5 gets youTokens at a gateway are not a package but a dollar balance. We look at what is charged to it and calculate how many requests $5 covers.
- Paying for AI without a fee: is it possible and how to calculate the overpaymentThere is almost always a fee when you top up. We show what it consists of, calculate it for SBP and card, and give a formula for how many rubles you need for N dollars.
- opencode agents: setting up roles, models and toolsA custom agent in opencode is a role, a model and a set of permissions. A working config where a cheap model handles routine work and a stronger one edits code.
- Plan mode in Claude Code: plan first, then edit the codeIn plan mode Claude Code reads your code and proposes a plan but edits nothing until you agree. How to enable it, use it and what it costs.