Быстрый старт¶
Эквайринг — приём платежа¶
import asyncio
from tbank.acquiring import AcquiringClient
from tbank.acquiring.models import InitRequest
async def main() -> None:
async with AcquiringClient(terminal_key="...", password="...") as client:
payment = await client.init(InitRequest(amount=150000, order_id="A-1"))
print(payment.payment_url) # редиректим покупателя сюда
state = await client.get_state(payment.payment_id)
print(state.status)
asyncio.run(main())
Синхронный клиент — тот же API без async/await:
from tbank.acquiring.sync import AcquiringClient
from tbank.acquiring.models import InitRequest
with AcquiringClient(terminal_key="...", password="...") as client:
payment = client.init(InitRequest(amount=150000, order_id="A-1"))
Совет
Суммы в эквайринге — в копейках (int): 150000 = 1500 ₽.
Открытый банк — счета и выписки¶
from datetime import datetime, timezone
from tbank.business import BusinessClient
from tbank.business.models import StatementParams
async def main() -> None:
client = BusinessClient(token="...") # self-service токен из ЛК
for acc in await client.get_accounts(): # счета + балансы (Decimal)
print(acc.account_number, acc.balance.otb if acc.balance else None)
params = StatementParams(
account_number="40802...",
from_=datetime(2026, 1, 1, tzinfo=timezone.utc),
)
async for op in client.iter_statement(params): # авто-пагинация по nextCursor
print(op.operation_id, op.operation_amount)
await client.aclose()
Совет
Суммы в открытом банке — Decimal в рублях (без float-погрешности).
Что дальше¶
Аутентификация — Token-подпись, Bearer, mTLS.
Обработка ошибок — иерархия исключений.
Эквайринг и Открытый банк — полный справочник методов.