Эквайринг (tbank.acquiring)

Интернет-эквайринг Т-Банка (EACQ): приём платежей, рекуррент, управление клиентами и картами, СБП QR, фискализация 54-ФЗ, привязка карт.

  • Хост: https://securepay.tinkoff.ru/v2/

  • Аутентификация: Token-подпись

  • Суммы: копейки (int)

  • Клиенты: tbank.acquiring.AcquiringClient (async) и tbank.acquiring.sync.AcquiringClient (sync) — одинаковый набор методов.

Приём платежа

from tbank.acquiring import AcquiringClient
from tbank.acquiring.models import InitRequest

async with AcquiringClient(terminal_key="...", password="...") as client:
    payment = await client.init(InitRequest(amount=150000, order_id="A-1"))
    # payment.payment_url — редирект покупателя
    await client.get_state(payment.payment_id)
    await client.confirm(payment.payment_id)   # для двухстадийного
    await client.cancel(payment.payment_id)    # отмена/возврат

Рекуррентные платежи

# 1) при первом платеже сохраняем карту:
await client.init(InitRequest(amount=150000, order_id="A-1", customer_key="c1", recurrent="Y"))
# → RebillId придёт в вебхуке на статус AUTHORIZED

# 2) последующие списания без покупателя:
await client.charge(new_payment_id, rebill_id)

Клиенты и карты

await client.add_customer("c1", email="client@example.com")
cards = await client.get_card_list("c1")          # список сохранённых карт
await client.remove_card("c1", cards[0].card_id)
await client.remove_customer("c1")

СБП QR

from tbank.acquiring.enums import QrDataType

payment = await client.init(InitRequest(amount=150000, order_id="A-1"))
qr = await client.get_qr(payment.payment_id, data_type=QrDataType.PAYLOAD)
print(qr.data)                                    # ссылка qr.nspk.ru
banks = await client.get_qr_members(payment.payment_id)

СБП-рекуррент (автоплатежи по привязанному счёту):

add = await client.add_account_qr("Привязка счёта")     # QR + request_key
state = await client.get_add_account_qr_state(add.request_key)  # ждём ACTIVE
await client.charge_qr(new_payment_id, state.account_token)

Фискализация (54-ФЗ)

from tbank.acquiring.models import Receipt, ReceiptItem
from tbank.acquiring.enums import Tax, Taxation, PaymentObject

receipt = Receipt(
    taxation=Taxation.USN_INCOME, email="client@example.com",
    items=[ReceiptItem(name="Товар", price=100000, quantity=1, amount=100000,
                       tax=Tax.VAT_22, payment_object=PaymentObject.COMMODITY)],
)
await client.init(InitRequest(amount=100000, order_id="A-1", receipt=receipt))
# двухстадийный сценарий — чек при подтверждении:
await client.send_closing_receipt(payment_id, receipt)

Привязка карты (без оплаты)

from tbank.acquiring.enums import CheckType

add = await client.add_card("c1", check_type=CheckType.THREE_DS)
# add.payment_url — форма ввода карты
state = await client.get_add_card_state(add.request_key)   # COMPLETED → card_id/rebill_id

Альтернативная оплата и служебные методы

# T-Pay / SberPay / MirPay по созданному через init платежу:
status = await client.get_tinkoff_pay_status()               # доступность + версия
link = await client.get_tinkoff_pay_link(payment_id, status.params.version)
svg = await client.get_tinkoff_pay_qr(payment_id)            # QR (SVG) для десктопа
await client.get_sber_pay_link(payment_id)
await client.get_mir_pay_deeplink(payment_id)

# служебное:
await client.check_order(order_id)                           # статусы всех платежей заказа
await client.resend()                                        # переотправить вебхуки

Клиент

class tbank.acquiring.aio.AcquiringClient(terminal_key, password, *, base_url='https://securepay.tinkoff.ru/v2', retry=None, transport=None)[исходный код]

Базовые классы: BaseAsyncClient

Асинхронный клиент интернет-эквайринга Т-Банка (redirect-поток).

Параметры:
async charge(payment_id, rebill_id, *, ip=None, send_email=None, info_email=None, receipt=None)[исходный код]

Рекуррентный платёж по сохранённой карте (RebillId), без участия покупателя.

Параметры:
  • payment_id (str)

  • rebill_id (str)

  • ip (str | None)

  • send_email (bool | None)

  • info_email (str | None)

  • receipt (Receipt | None)

Тип результата:

ChargeResponse

async add_customer(customer_key, *, email=None, phone=None, ip=None)[исходный код]

Зарегистрировать покупателя (для сохранения карт).

Параметры:
  • customer_key (str)

  • email (str | None)

  • phone (str | None)

  • ip (str | None)

Тип результата:

Customer

async get_customer(customer_key, *, ip=None)[исходный код]

Данные покупателя.

Параметры:
  • customer_key (str)

  • ip (str | None)

Тип результата:

Customer

async remove_customer(customer_key, *, ip=None)[исходный код]

Удалить покупателя.

Параметры:
  • customer_key (str)

  • ip (str | None)

Тип результата:

Customer

async get_card_list(customer_key, *, saved_card=None, ip=None)[исходный код]

Список сохранённых карт покупателя (ответ — массив, включая удалённые).

Параметры:
  • customer_key (str)

  • saved_card (bool | None)

  • ip (str | None)

Тип результата:

List[Card]

async remove_card(customer_key, card_id, *, ip=None)[исходный код]

Удалить карту покупателя.

Параметры:
  • customer_key (str)

  • card_id (str)

  • ip (str | None)

Тип результата:

RemoveCardResponse

async get_qr(payment_id, *, data_type=None, bank_id=None)[исходный код]

Сгенерировать СБП QR/ссылку по платежу (после init).

Параметры:
Тип результата:

GetQrResponse

async get_qr_members(payment_id)[исходный код]

Список банков-участников СБП для платежа.

Параметры:

payment_id (str)

Тип результата:

QrMembersListResponse

async add_account_qr(description, *, data_type=None, bank_id=None, redirect_due_date=None)[исходный код]

Привязать счёт покупателя для СБП-автоплатежей (вернёт QR + RequestKey).

Параметры:
  • description (str)

  • data_type (QrDataType | None)

  • bank_id (str | None)

  • redirect_due_date (str | None)

Тип результата:

AddAccountQrResponse

async get_add_account_qr_state(request_key)[исходный код]

Статус привязки счёта (AccountToken появляется при ACTIVE).

Параметры:

request_key (str)

Тип результата:

AddAccountQrState

async charge_qr(payment_id, account_token, *, ip=None, send_email=None, info_email=None, bank_member_id=None, receipt=None)[исходный код]

СБП-автоплатёж по привязанному счёту (AccountToken).

Параметры:
  • payment_id (str)

  • account_token (str)

  • ip (str | None)

  • send_email (bool | None)

  • info_email (str | None)

  • bank_member_id (str | None)

  • receipt (Receipt | None)

Тип результата:

ChargeQrResponse

async send_closing_receipt(payment_id, receipt)[исходный код]

Отправить чек при подтверждении двухстадийного платежа.

Параметры:
Тип результата:

SendClosingReceiptResponse

async add_card(customer_key, *, check_type=None, ip=None, resident_state=None)[исходный код]

Инициировать привязку карты покупателя (redirect на PaymentURL, без оплаты).

Параметры:
  • customer_key (str)

  • check_type (CheckType | None)

  • ip (str | None)

  • resident_state (bool | None)

Тип результата:

AddCardResponse

async get_add_card_state(request_key)[исходный код]

Статус привязки карты (COMPLETED → card_id/rebill_id).

Параметры:

request_key (str)

Тип результата:

AddCardState

async get_qr_state(payment_id)[исходный код]

Статус возврата платежа по СБП.

Параметры:

payment_id (str)

Тип результата:

QrState

async get_tinkoff_pay_status()[исходный код]

Доступность T-Pay и версия терминала (для выбора link/QR).

Тип результата:

AltPayResponse

Ссылка T-Pay для редиректа в приложение банка (мобильный).

Параметры:
  • payment_id (str)

  • version (str)

Тип результата:

AltPayResponse

async get_tinkoff_pay_qr(payment_id)[исходный код]

T-Pay QR (SVG-изображение) для десктопа.

Параметры:

payment_id (str)

Тип результата:

str

Ссылка SberPay для редиректа (мобильный). Путь без версии — досверить.

Параметры:

payment_id (str)

Тип результата:

AltPayResponse

async get_sber_pay_qr(payment_id)[исходный код]

SberPay QR (SVG) для десктопа.

Параметры:

payment_id (str)

Тип результата:

str

MirPay deeplink в приложение Mir Pay.

Параметры:

payment_id (str)

Тип результата:

AltPayResponse

async check_order(order_id)[исходный код]

Статусы всех платежей по OrderId.

Параметры:

order_id (str)

Тип результата:

CheckOrderResponse

async resend()[исходный код]

Переотправить недоставленные нотификации.

Тип результата:

ResendResponse

Модели

class tbank.acquiring.models.Payments(*, Electronic, Cash=None, AdvancePayment=None, Credit=None, Provision=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Electronic (int)

  • Cash (int | None)

  • AdvancePayment (int | None)

  • Credit (int | None)

  • Provision (int | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ReceiptItem(*, Name, Price, Quantity, Amount, Tax, PaymentMethod=None, PaymentObject=None, Ean13=None, ShopCode=None, MeasurementUnit=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.Receipt(*, Taxation, Items, Email=None, Phone=None, FfdVersion=None, Payments=None, Customer=None, CustomerInn=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.InitRequest(*, Amount, OrderId, Description=None, CustomerKey=None, SuccessURL=None, FailURL=None, NotificationURL=None, RedirectDueDate=None, PayType=None, Recurrent=None, Receipt=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Amount (int)

  • OrderId (str)

  • Description (str | None)

  • CustomerKey (str | None)

  • SuccessURL (str | None)

  • FailURL (str | None)

  • NotificationURL (str | None)

  • RedirectDueDate (str | None)

  • PayType (str | None)

  • Recurrent (str | None)

  • Receipt (Receipt | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.PaymentResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.InitResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None, PaymentURL=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

  • PaymentURL (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetStateRequest(*, PaymentId)[исходный код]

Базовые классы: TBankModel

Параметры:

PaymentId (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetStateResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ConfirmRequest(*, PaymentId, Amount=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • PaymentId (str)

  • Amount (int | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ConfirmResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CancelRequest(*, PaymentId, Amount=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • PaymentId (str)

  • Amount (int | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CancelResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None, OriginalAmount=None, NewAmount=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

  • OriginalAmount (int | None)

  • NewAmount (int | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ChargeRequest(*, PaymentId, RebillId, IP=None, SendEmail=None, InfoEmail=None, Receipt=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • PaymentId (str)

  • RebillId (str)

  • IP (str | None)

  • SendEmail (bool | None)

  • InfoEmail (str | None)

  • Receipt (Receipt | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ChargeResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddCustomerRequest(*, CustomerKey, Email=None, Phone=None, IP=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • CustomerKey (str)

  • Email (str | None)

  • Phone (str | None)

  • IP (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CustomerRequest(*, CustomerKey, IP=None)[исходный код]

Базовые классы: TBankModel

Запрос GetCustomer / RemoveCustomer.

Параметры:
  • CustomerKey (str)

  • IP (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.Customer(*, Success, ErrorCode, TerminalKey=None, CustomerKey=None, Email=None, Phone=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • CustomerKey (str | None)

  • Email (str | None)

  • Phone (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetCardListRequest(*, CustomerKey, SavedCard=None, IP=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • CustomerKey (str)

  • SavedCard (bool | None)

  • IP (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.Card(*, CardId, Pan, Status, CardType, RebillId=None, ExpDate=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.RemoveCardRequest(*, CustomerKey, CardId, IP=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • CustomerKey (str)

  • CardId (str)

  • IP (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.RemoveCardResponse(*, Success, ErrorCode, TerminalKey=None, CustomerKey=None, CardId=None, Status=None, CardType=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetQrRequest(*, PaymentId, DataType=None, BankId=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetQrResponse(*, Success, ErrorCode, TerminalKey=None, OrderId=None, Data=None, PaymentId=None, RequestKey=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • OrderId (str | None)

  • Data (str | None)

  • PaymentId (str | None)

  • RequestKey (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.QrMembersListRequest(*, PaymentId)[исходный код]

Базовые классы: TBankModel

Параметры:

PaymentId (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.QrMember(*, MemberId=None, MemberName=None, IsPayee=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • MemberId (str | None)

  • MemberName (str | None)

  • IsPayee (bool | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.QrMembersListResponse(*, Success, ErrorCode, TerminalKey=None, OrderId=None, Members=<factory>, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddAccountQrRequest(*, Description, DataType=None, BankId=None, RedirectDueDate=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Description (str)

  • DataType (QrDataType | None)

  • BankId (str | None)

  • RedirectDueDate (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddAccountQrResponse(*, Success, ErrorCode, TerminalKey=None, Data=None, RequestKey=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Data (str | None)

  • RequestKey (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetAddAccountQrStateRequest(*, RequestKey)[исходный код]

Базовые классы: TBankModel

Параметры:

RequestKey (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddAccountQrState(*, Success, ErrorCode, TerminalKey=None, RequestKey=None, AccountToken=None, BankMemberId=None, BankMemberName=None, Status=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • RequestKey (str | None)

  • AccountToken (str | None)

  • BankMemberId (str | None)

  • BankMemberName (str | None)

  • Status (AccountQrStatus | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ChargeQrRequest(*, PaymentId, AccountToken, IP=None, SendEmail=None, InfoEmail=None, BankMemberId=None, Receipt=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • PaymentId (str)

  • AccountToken (str)

  • IP (str | None)

  • SendEmail (bool | None)

  • InfoEmail (str | None)

  • BankMemberId (str | None)

  • Receipt (Receipt | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ChargeQrResponse(*, Success, ErrorCode, TerminalKey=None, Status=None, PaymentId=None, OrderId=None, Amount=None, Message=None, Details=None, Currency=None)[исходный код]

Базовые классы: PaymentResponse

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • Status (PaymentStatus | None)

  • PaymentId (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

  • Details (str | None)

  • Currency (int | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.SendClosingReceiptRequest(*, PaymentId, Receipt)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.SendClosingReceiptResponse(*, Success, ErrorCode, TerminalKey=None, PaymentId=None, Status=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • PaymentId (str | None)

  • Status (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddCardRequest(*, CustomerKey, CheckType=None, IP=None, ResidentState=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddCardResponse(*, Success, ErrorCode, TerminalKey=None, CustomerKey=None, RequestKey=None, PaymentURL=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • CustomerKey (str | None)

  • RequestKey (str | None)

  • PaymentURL (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetAddCardStateRequest(*, RequestKey)[исходный код]

Базовые классы: TBankModel

Параметры:

RequestKey (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AddCardState(*, Success, ErrorCode, TerminalKey=None, CustomerKey=None, RequestKey=None, Status=None, CardId=None, RebillId=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • TerminalKey (str | None)

  • CustomerKey (str | None)

  • RequestKey (str | None)

  • Status (AddCardStatus | None)

  • CardId (str | None)

  • RebillId (str | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.GetQrStateRequest(*, PaymentId)[исходный код]

Базовые классы: TBankModel

Параметры:

PaymentId (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.QrState(*, Success, ErrorCode, Status=None, QrCancelCode=None, QrCancelMessage=None, OrderId=None, Amount=None, Message=None)[исходный код]

Базовые классы: TBankModel

Статус возврата платежа по СБП.

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • Status (str | None)

  • QrCancelCode (str | None)

  • QrCancelMessage (str | None)

  • OrderId (str | None)

  • Amount (int | None)

  • Message (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AltPayParams(*, Allowed=None, Version=None, RedirectUrl=None, WebQR=None, Deeplink=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Allowed (bool | None)

  • Version (str | None)

  • RedirectUrl (str | None)

  • WebQR (str | None)

  • Deeplink (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.AltPayResponse(*, Success, ErrorCode, Params=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.MirPayRequest(*, PaymentId)[исходный код]

Базовые классы: TBankModel

Параметры:

PaymentId (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CheckOrderRequest(*, OrderId)[исходный код]

Базовые классы: TBankModel

Параметры:

OrderId (str)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CheckOrderPayment(*, PaymentId=None, Amount=None, Status=None, Rrn=None, Success=None, ErrorCode=None, Message=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • PaymentId (str | None)

  • Amount (int | None)

  • Status (str | None)

  • Rrn (str | None)

  • Success (bool | None)

  • ErrorCode (str | None)

  • Message (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.CheckOrderResponse(*, Success, ErrorCode, TerminalKey=None, OrderId=None, Payments=<factory>, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ResendRequest[исходный код]

Базовые классы: TBankModel

Переотправка недоставленных нотификаций (тело без параметров).

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class tbank.acquiring.models.ResendResponse(*, Success, ErrorCode, Count=None, Message=None, Details=None)[исходный код]

Базовые классы: TBankModel

Параметры:
  • Success (bool)

  • ErrorCode (str)

  • Count (int | None)

  • Message (str | None)

  • Details (str | None)

model_config = {'alias_generator': <function to_pascal>, 'extra': 'ignore', 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Перечисления

class tbank.acquiring.enums.PaymentStatus(*values)[исходный код]

Базовые классы: str, Enum

NEW = 'NEW'
FORM_SHOWED = 'FORM_SHOWED'
AUTHORIZING = 'AUTHORIZING'
AUTHORIZED = 'AUTHORIZED'
CONFIRMING = 'CONFIRMING'
CONFIRMED = 'CONFIRMED'
REVERSING = 'REVERSING'
REVERSED = 'REVERSED'
REFUNDING = 'REFUNDING'
REFUNDED = 'REFUNDED'
PARTIAL_REFUNDED = 'PARTIAL_REFUNDED'
REJECTED = 'REJECTED'
DEADLINE_EXPIRED = 'DEADLINE_EXPIRED'
CANCELED = 'CANCELED'
class tbank.acquiring.enums.CardStatus(*values)[исходный код]

Базовые классы: str, Enum

ACTIVE = 'A'
DELETED = 'D'
INACTIVE = 'I'
class tbank.acquiring.enums.CardType(*values)[исходный код]

Базовые классы: int, Enum

DEBIT = 0
CREDIT = 1
DEBIT_CREDIT = 2
class tbank.acquiring.enums.QrDataType(*values)[исходный код]

Базовые классы: str, Enum

PAYLOAD = 'PAYLOAD'
IMAGE = 'IMAGE'
class tbank.acquiring.enums.AccountQrStatus(*values)[исходный код]

Базовые классы: str, Enum

NEW = 'NEW'
PROCESSING = 'PROCESSING'
ACTIVE = 'ACTIVE'
INACTIVE = 'INACTIVE'
class tbank.acquiring.enums.FfdVersion(*values)[исходный код]

Базовые классы: str, Enum

FFD_105 = '1.05'
FFD_12 = '1.2'
class tbank.acquiring.enums.Taxation(*values)[исходный код]

Базовые классы: str, Enum

OSN = 'osn'
USN_INCOME = 'usn_income'
USN_INCOME_OUTCOME = 'usn_income_outcome'
ENVD = 'envd'
ESN = 'esn'
PATENT = 'patent'
class tbank.acquiring.enums.Tax(*values)[исходный код]

Базовые классы: str, Enum

NONE = 'none'
VAT_0 = 'vat0'
VAT_5 = 'vat5'
VAT_7 = 'vat7'
VAT_10 = 'vat10'
VAT_20 = 'vat20'
VAT_22 = 'vat22'
VAT_105 = 'vat105'
VAT_107 = 'vat107'
VAT_110 = 'vat110'
VAT_120 = 'vat120'
VAT_122 = 'vat122'
class tbank.acquiring.enums.PaymentMethod(*values)[исходный код]

Базовые классы: str, Enum

FULL_PREPAYMENT = 'full_prepayment'
PREPAYMENT = 'prepayment'
ADVANCE = 'advance'
FULL_PAYMENT = 'full_payment'
PARTIAL_PAYMENT = 'partial_payment'
CREDIT = 'credit'
CREDIT_PAYMENT = 'credit_payment'
class tbank.acquiring.enums.PaymentObject(*values)[исходный код]

Базовые классы: str, Enum

COMMODITY = 'commodity'
EXCISE = 'excise'
JOB = 'job'
SERVICE = 'service'
GAMBLING_BET = 'gambling_bet'
GAMBLING_PRIZE = 'gambling_prize'
LOTTERY = 'lottery'
LOTTERY_PRIZE = 'lottery_prize'
INTELLECTUAL_ACTIVITY = 'intellectual_activity'
PAYMENT = 'payment'
AGENT_COMMISSION = 'agent_commission'
COMPOSITE = 'composite'
ANOTHER = 'another'
class tbank.acquiring.enums.CheckType(*values)[исходный код]

Базовые классы: str, Enum

NO = 'NO'
HOLD = 'HOLD'
THREE_DS = '3DS'
THREE_DS_HOLD = '3DSHOLD'
class tbank.acquiring.enums.AddCardStatus(*values)[исходный код]

Базовые классы: str, Enum

NEW = 'NEW'
FORM_SHOWED = 'FORM_SHOWED'
THREE_DS_CHECKING = '3DS_CHECKING'
THREE_DS_CHECKED = '3DS_CHECKED'
AUTHORIZING = 'AUTHORIZING'
AUTHORIZED = 'AUTHORIZED'
COMPLETED = 'COMPLETED'
REJECTED = 'REJECTED'