Аутентификация¶
У продуктов Т-Банка три разные схемы аутентификации — SDK берёт их на себя.
Эквайринг — Token-подпись (SHA-256)¶
Эквайринг подписывает каждый запрос: SDK берёт корневые поля тела, добавляет
Password, сортирует по ключу, конкатенирует значения и считает SHA-256.
Вложенные объекты (Receipt, Items, …) в подпись не входят. Тебе достаточно
передать terminal_key и password из ЛК:
from tbank.acquiring import AcquiringClient
client = AcquiringClient(terminal_key="TinkoffMerchantKey", password="password123")
Тот же алгоритм используется для проверки подписи входящих вебхуков — см. Вебхуки.
Открытый банк — Bearer-токен¶
Для чтения (счета, выписки) и части операций достаточно self-service токена из ЛК Т-Бизнеса (Интеграции → T-API → «Выпустить токен», с привязкой IP):
from tbank.business import BusinessClient
client = BusinessClient(token="t.xxxxxxxx")
Открытый банк — mTLS¶
Операции движения денег (например create_ruble_payment) идут на защищённый хост
secured-openapi.tbank.ru и требуют взаимного TLS — клиентского сертификата
из ЛК. Передай его в cert (и при необходимости CA-бандл в verify):
client = BusinessClient(
token="t.xxxxxxxx",
cert=("client.pem", "client-key.pem"), # или один combined .pem
)
Примечание
mTLS настраивается на транспорте, а не в заголовке: при рукопожатии банк
криптографически проверяет, что соединение установил именно твой сервер.
Без сертификата secured-метод поднимет MutualTLSRequiredError.
Read-методы (счета/выписки) работают и без сертификата — он нужен только для защищённых операций.