T-ID (tbank.tid)¶
T-ID — единая точка входа и идентификации Т-Банка. Пакет закрывает две части:
OAuth 2.0 / OIDC (
TidOAuth) — «Войти через Т-Банк»: страница согласия, обмен кода на токены, refresh, introspect, revoke и userinfo наid.tbank.ru.Data-эндпоинты (
TidClient) — учётные данные, документы, адреса, счета, статусы (идентификация, самозанятость, иноагент, ПДЛ, чёрные списки), информация о компании (T-Business ID) и делегированная идентификация наbusiness.tbank.ru/openapi.
Хосты:
https://id.tbank.ru(OAuth) иhttps://business.tbank.ru/openapi(данные).Аутентификация:
client_secret_basicдля OAuth; Bearer self-service токен (скоупыopensme/..., опционально mTLS) для data-эндпоинтов.Провод:
snake_case(OAuth, по RFC/OIDC) иcamelCase(данные T-API).Клиенты:
tbank.tid.TidOAuth/tbank.tid.TidClient(async) и их аналоги вtbank.tid.sync.
Вход через Т-Банк (OAuth 2.0)¶
from tbank.tid import TidOAuth
oauth = TidOAuth(client_id="...", client_secret="...")
# 1) отправляем пользователя на страницу согласия (можно с PKCE):
url = oauth.build_authorization_url(
redirect_uri="https://myapp.ru/auth/complete",
scope=["openid", "phone", "profile"],
state="csrf-token",
code_challenge="...", # опционально, метод по умолчанию S256
)
# 2) на redirect_uri прилетают code и state → меняем код на токены:
token = await oauth.fetch_token("the-code", "https://myapp.ru/auth/complete")
print(token.access_token, token.refresh_token, token.expires_in)
# 3) проверяем выданные скоупы и получаем данные пользователя:
intro = await oauth.introspect(token.access_token)
assert intro.active and "phone" in intro.scopes
user = await oauth.get_userinfo(token.access_token)
print(user.sub, user.phone_number)
# обновление и отзыв:
fresh = await oauth.refresh_token(token.refresh_token)
await oauth.revoke(token.refresh_token)
client_credentials-поток (сервис-сервис) — fetch_client_credentials_token(scope=...).
Учётные данные и документы¶
from tbank.tid import TidClient
from tbank.tid.enums import IdDocumentType
async with TidClient(token="self-service-token") as client:
user = await client.get_userinfo() # ФИО, телефон, пол, дата рождения
inn = await client.get_inn()
snils = await client.get_snils()
passport = await client.get_passport([IdDocumentType.PASSPORT])
licenses = await client.get_driver_licenses()
addresses = await client.get_addresses("REGISTRATION_ADDRESS")
accounts = await client.get_debit_accounts()
Статусы физлица¶
await client.get_identification_status() # is_identified
await client.get_self_employed_status() # is_self_employed
await client.get_foreign_agent_status() # is_foreign_agent
await client.get_pdl_status() # публичное должностное лицо
await client.get_blacklist_status() # чёрные списки
Компания (T-Business ID)¶
company = await client.get_company() # реквизиты, банк, статус, СНО
signer = await client.get_signer_status() # is_signer
Кобренд, счётчики и подписки¶
await client.get_cobrand(program_id=42)
await client.get_detail_counters()
await client.set_detail_counters(SetCounterRequest(count=5))
await client.get_subscription() # тип активной подписки
await client.get_subscription_grade() # код подписки + грейд
Делегированная идентификация¶
await client.get_delegated_identification() # паспорт, адрес, флаги
await client.get_personal_data("request-uuid") # app-сценарий
await client.get_remote_identification_result("res-secret") # web-сценарий
Примечание
Data-эндпоинты вызываются в максимальной доступной версии (v2 там, где она есть;
иначе v1). Схемы v1 и v2 идентичны.
Клиенты¶
- class tbank.tid.aio.TidOAuth(client_id, client_secret, *, client=None, timeout=30.0)[исходный код]¶
Базовые классы:
_OAuthBaseАсинхронный OAuth 2.0 / OIDC клиент T-ID (id.tbank.ru): вход и токены.
- async fetch_token(code, redirect_uri, *, code_verifier=None)[исходный код]¶
Обменять authorization code на access/refresh токены.
- Параметры:
- Тип результата:
- async refresh_token(refresh_token)[исходный код]¶
Обновить access-токен по refresh-токену.
- Параметры:
refresh_token (str)
- Тип результата:
- async fetch_client_credentials_token(scope=None)[исходный код]¶
Получить токен по client_credentials (сервис-сервис).
- Параметры:
- Тип результата:
- async introspect(token)[исходный код]¶
Проверить токен и получить его скоупы/claim’ы (RFC 7662).
- Параметры:
token (str)
- Тип результата:
- async revoke(token, *, token_type_hint=None)[исходный код]¶
Отозвать access- или refresh-токен (RFC 7009).
- Параметры:
token (str)
token_type_hint (TokenTypeHint | None)
- Тип результата:
None
- async get_userinfo(access_token)[исходный код]¶
Claim’ы пользователя из userinfo-эндпоинта по access-токену.
- Параметры:
access_token (str)
- Тип результата:
- class tbank.tid.aio.TidClient(token, *, base_url=None, cert=None, verify=True, retry=None, transport=None)[исходный код]¶
Базовые классы:
BaseAsyncClientАсинхронный клиент data-эндпоинтов T-ID (business.tbank.ru/openapi).
Аутентификация — Bearer self-service токен со скоупами
opensme/...(опционально mTLS-сертификат передаётся вcert). Для OAuth-потока входа используйтеTidOAuth.- Параметры:
token (str)
base_url (Optional[str])
cert (Optional[CertTypes])
verify (VerifyTypes)
retry (Optional[RetryPolicy])
transport (Optional[AsyncTransport])
- async get_company()[исходный код]¶
Информация о компании: реквизиты, банк, статус.
- Тип результата:
- async get_signer_status()[исходный код]¶
Является ли пользователь подписантом компании.
- Тип результата:
- async get_userinfo()[исходный код]¶
Учётные данные пользователя (ФИО, телефон, пол, дата рождения).
- Тип результата:
- async get_inn()[исходный код]¶
ИНН физлица.
- Тип результата:
- async get_snils()[исходный код]¶
СНИЛС физлица.
- Тип результата:
- async get_passport(id_type=None)[исходный код]¶
Паспортные данные (опционально фильтр по типам документа).
- Параметры:
id_type (List[IdDocumentType] | None)
- Тип результата:
- async get_driver_licenses()[исходный код]¶
Водительские удостоверения.
- Тип результата:
- async get_addresses(address_type=None)[исходный код]¶
Адреса физлица (опционально фильтр по типу адреса).
- Параметры:
address_type (str | None)
- Тип результата:
- async get_debit_accounts()[исходный код]¶
Активные дебетовые счета клиента.
- Тип результата:
- async get_identification_status()[исходный код]¶
Идентифицирован ли пользователь.
- Тип результата:
- async get_self_employed_status()[исходный код]¶
Статус самозанятого.
- Тип результата:
- async get_foreign_agent_status()[исходный код]¶
Признак иностранного агента.
- Тип результата:
- async get_pdl_status()[исходный код]¶
Признак публичного должностного лица.
- Тип результата:
- async get_blacklist_status()[исходный код]¶
Наличие в чёрных списках.
- Тип результата:
- async get_cobrand(program_id)[исходный код]¶
Признак кобренда по идентификатору программы.
- Параметры:
program_id (int)
- Тип результата:
- async get_detail_counters()[исходный код]¶
Значение счётчика услуги клиента.
- Тип результата:
- async set_detail_counters(request)[исходный код]¶
Изменить значение счётчика услуги клиента.
- Параметры:
request (SetCounterRequest)
- Тип результата:
- async get_subscription()[исходный код]¶
Активная подписка клиента.
- Тип результата:
- async get_subscription_grade()[исходный код]¶
Код активной главной подписки и грейд клиента.
- Тип результата:
- async get_delegated_identification()[исходный код]¶
Провести делегированную идентификацию (паспорт, адрес, флаги).
- Тип результата:
- async get_personal_data(request_id)[исходный код]¶
Результат удалённой идентификации в app-сценарии по requestId.
- Параметры:
request_id (str)
- Тип результата:
- async get_remote_identification_result(res_secret)[исходный код]¶
Результат удалённой идентификации в web-сценарии по resSecret.
- Параметры:
res_secret (str)
- Тип результата:
Модели¶
- class tbank.tid.models.TidModel[исходный код]¶
Базовые классы:
BaseModelБазовая модель данных T-ID: snake_case в Python, camelCase на проводе.
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CompanyRequisites(*, fullName, foreignName=None, address, legalAddress, inn, kpp=None, ogrn=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CompanyBank(*, bankName, bankAddress, corrAccount, bankInn, bankBic)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CompanyInfo(*, name, city, requisites, bank, legalStatus, registrationDate=None, opf=None, taxationScheme=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
name (str)
city (str)
requisites (CompanyRequisites)
bank (CompanyBank)
legalStatus (LegalStatus)
registrationDate (date | None)
opf (str | None)
taxationScheme (TaxationScheme | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SignerStatus(*, isSigner)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isSigner (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.UserAccountInfo(*, sub, phoneNumber=None, givenName=None, middleName=None, familyName=None, gender=None, birthDate=None)[исходный код]¶
Базовые классы:
TidModelУчётные данные пользователя (userinfo T-ID data endpoint).
- Параметры:
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.InnResponse(*, inn=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
inn (str | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SnilsResponse(*, snils=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
snils (str | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.PassportData(*, birthDate=None, birthPlace=None, citizenship=None, issueDate=None, maritalStatus=None, marriageDate=None, numberOfChildren=None, resident=None, serialNumber=None, unitCode=None, unitName=None, validTo=None, idType=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
birthDate (date | None)
birthPlace (str | None)
citizenship (str | None)
issueDate (date | None)
maritalStatus (str | None)
marriageDate (date | None)
numberOfChildren (int | None)
resident (bool | None)
serialNumber (str | None)
unitCode (str | None)
unitName (str | None)
validTo (date | None)
idType (IdDocumentType | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DriverLicense(*, docNumber, issueDate=None)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DriverLicensesResponse(*, licenses=<factory>)[исходный код]¶
Базовые классы:
TidModel- Параметры:
licenses (List[DriverLicense])
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.Address(*, addressType, primary, apartment=None, building=None, city=None, claddrCode=None, country=None, district=None, fiasCode=None, house=None, housing=None, latitude=None, longitude=None, region=None, settlement=None, street=None, zipCode=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
addressType (AddressType)
primary (bool)
apartment (str | None)
building (str | None)
city (str | None)
claddrCode (str | None)
country (str | None)
district (str | None)
fiasCode (str | None)
house (str | None)
housing (str | None)
latitude (float | None)
longitude (float | None)
region (str | None)
settlement (str | None)
street (str | None)
zipCode (str | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.AddressesResponse(*, addresses=<factory>)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DebitAccountBank(*, bik, corAccount, name)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DebitAccount(*, name, accountNumber, bank)[исходный код]¶
Базовые классы:
TidModel- Параметры:
name (str)
accountNumber (str)
bank (DebitAccountBank)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DebitAccountsResponse(*, accounts=<factory>)[исходный код]¶
Базовые классы:
TidModel- Параметры:
accounts (List[DebitAccount])
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.IdentificationStatus(*, isIdentified)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isIdentified (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SelfEmployedStatus(*, isSelfEmployed)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isSelfEmployed (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.ForeignAgentStatus(*, isForeignAgent)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isForeignAgent (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.PdlStatus(*, isPublicOfficialPerson)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isPublicOfficialPerson (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.BlacklistStatus(*, isBlacklisted)[исходный код]¶
Базовые классы:
TidModel- Параметры:
isBlacklisted (bool)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CobrandAccount(*, cardType, loyaltyId=None)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CobrandResponse(*, programStatus, accounts=<factory>)[исходный код]¶
Базовые классы:
TidModel- Параметры:
programStatus (bool)
accounts (List[CobrandAccount])
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CounterClientInfo(*, grade, isFulfillConditions)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CounterPeriod(*, validFrom, validUntil, repeatability)[исходный код]¶
Базовые классы:
TidModel- Параметры:
validFrom (str)
validUntil (str)
repeatability (CounterRepeatability)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.CounterInfo(*, count, isInfinity, period)[исходный код]¶
Базовые классы:
TidModel- Параметры:
count (int)
isInfinity (bool)
period (CounterPeriod)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DetailCounters(*, clientInfo, counterInfo)[исходный код]¶
Базовые классы:
TidModel- Параметры:
clientInfo (CounterClientInfo)
counterInfo (CounterInfo)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SetCounterExtraFields(*, description)[исходный код]¶
Базовые классы:
TidModel- Параметры:
description (str)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SetCounterRequest(*, count, extraFields=None, requestId=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
count (int)
extraFields (SetCounterExtraFields | None)
requestId (str | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SetCounterResponse(*, count, isInfinity)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SubscriptionResponse(*, type)[исходный код]¶
Базовые классы:
TidModel- Параметры:
type (BundleCode)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.SubscriptionGrade(*, bundleCode=None, gradeCode=None)[исходный код]¶
Базовые классы:
TidModel- model_config = {'alias_generator': <function to_camel>, '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.tid.models.DelegatedIdentification(*, dateTimeDelegatedIdentified, sub, phoneNumber, familyName, givenName, passportBirthDate, issueDate, serialNumber, unitCode, unitName, idType, addressType, middleName=None, apartment=None, city=None, claddrCode=None, country=None, fiasCode=None, house=None, latitude=None, longitude=None, isPrimary=None, region=None, street=None, zipCode=None, inn=None, snils=None, isForeignAgent=None, isPublicOfficialPerson=None, isBlacklisted=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
dateTimeDelegatedIdentified (datetime)
sub (str)
phoneNumber (str)
familyName (str)
givenName (str)
passportBirthDate (date)
issueDate (date)
serialNumber (str)
unitCode (str)
unitName (str)
idType (str)
addressType (str)
middleName (str | None)
apartment (str | None)
city (str | None)
claddrCode (str | None)
country (str | None)
fiasCode (str | None)
house (str | None)
latitude (float | None)
longitude (float | None)
isPrimary (bool | None)
region (str | None)
street (str | None)
zipCode (str | None)
inn (str | None)
snils (str | None)
isForeignAgent (bool | None)
isPublicOfficialPerson (bool | None)
isBlacklisted (bool | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.IdentificationAddress(*, addressType=None, country=None, region=None, district=None, city=None, settlement=None, street=None, house=None, housing=None, building=None, apartment=None, zipCode=None, claddrCode=None, fiasCode=None, latitude=None, longitude=None, isPrimary=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
addressType (AddressType | None)
country (str | None)
region (str | None)
district (str | None)
city (str | None)
settlement (str | None)
street (str | None)
house (str | None)
housing (str | None)
building (str | None)
apartment (str | None)
zipCode (str | None)
claddrCode (str | None)
fiasCode (str | None)
latitude (float | None)
longitude (float | None)
isPrimary (bool | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.IdentificationDocument(*, documentType=None, serNo=None, issuedBy=None, issueDate=None, subdivisionCode=None, documentCheckStatus=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.PersonalInfo(*, firstName=None, lastName=None, middleName=None, birthDate=None, address=None, document=<factory>, phone=None, inn=None, snils=None, sub=None)[исходный код]¶
Базовые классы:
TidModel- Параметры:
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.IdentificationData(*, result=None, personalInfo=None)[исходный код]¶
Базовые классы:
TidModelРезультат удалённой идентификации (web/app сценарии).
- Параметры:
result (IdentificationResult | None)
personalInfo (PersonalInfo | None)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.RemoteIdentificationRequest(*, resSecret)[исходный код]¶
Базовые классы:
TidModel- Параметры:
resSecret (str)
- model_config = {'alias_generator': <function to_camel>, '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.tid.models.OAuthModel(*, raw=<factory>)[исходный код]¶
Базовые классы:
BaseModelБазовая модель OAuth-ответа: snake_case; полный сырой ответ — в
raw.- model_config = {'extra': 'ignore'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tbank.tid.models.TokenResponse(*, raw=<factory>, access_token, token_type, expires_in=None, refresh_token=None, refresh_expires_in=None, id_token=None, scope=None)[исходный код]¶
Базовые классы:
OAuthModel- Параметры:
- model_config = {'extra': 'ignore'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tbank.tid.models.IntrospectionResponse(*, raw=<factory>, active, scope=None, client_id=None, token_type=None, exp=None, iat=None, sub=None, aud=None, iss=None, jti=None)[исходный код]¶
Базовые классы:
OAuthModelОтвет /auth/introspect (RFC 7662). Кастомные claim’ы — в model_extra.
- Параметры:
- model_config = {'extra': 'ignore'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class tbank.tid.models.OidcUserInfo(*, raw=<factory>, sub, name=None, given_name=None, family_name=None, middle_name=None, phone_number=None, email=None, birthdate=None, gender=None)[исходный код]¶
Базовые классы:
OAuthModelClaim’ы пользователя из userinfo-эндпоинта id.tbank.ru.
- Параметры:
- model_config = {'extra': 'ignore'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Перечисления¶
- class tbank.tid.enums.AddressType(*values)[исходный код]¶
-
Тип адреса физлица.
- RESIDENCE = 'RESIDENCE_ADDRESS'¶
- REGISTRATION = 'REGISTRATION_ADDRESS'¶
- WORK = 'WORK_ADDRESS'¶
- DELIVERY = 'DELIVERY_ADDRESS'¶
- class tbank.tid.enums.IdDocumentType(*values)[исходный код]¶
-
Тип документа, удостоверяющего личность.
- PASSPORT = 'PASSPORT'¶
- FOREIGN_PASSPORT = 'FOREIGN_PASSPORT'¶
- FOREIGN_INTERNATIONAL_PASSPORT = 'FOREIGN_INTERNATIONAL_PASSPORT'¶
- RF_INTERNATIONAL_PASSPORT = 'RF_INTERNATIONAL_PASSPORT'¶
- BIRTH_CERTIFICATE = 'BIRTH_CERTIFICATE'¶
- RF_RESIDENCE_PERMIT = 'RF_RESIDENCE_PERMIT'¶
- class tbank.tid.enums.DocumentCheckStatus(*values)[исходный код]¶
-
Результат проверки документа при удалённой идентификации.
- NOT_CHECKED = 'NOT_CHECKED'¶
- VALID = 'VALID'¶
- INVALID = 'INVALID'¶
- class tbank.tid.enums.IdentificationResult(*values)[исходный код]¶
-
Итог удалённой идентификации.
- SUCCESS = 'SUCCESS'¶
- FAILED = 'FAILED'¶
- class tbank.tid.enums.TaxationScheme(*values)[исходный код]¶
-
Система налогообложения компании.
- USN_INCOMES = 'USN_INCOMES'¶
- USN_INCOMES_MINUS_EXPENSES = 'USN_INCOMES_MINUS_EXPENSES'¶
- AUSN_INCOMES_MINUS_EXPENSES = 'AUSN_INCOMES_MINUS_EXPENSES'¶
- AUSN_INCOMES = 'AUSN_INCOMES'¶
- OSNO = 'OSNO'¶
- NPD = 'NPD'¶
- ESHN = 'ESHN'¶
- ENVD = 'ENVD'¶
- class tbank.tid.enums.LegalStatus(*values)[исходный код]¶
-
Правовой статус компании.
- ACTIVE = 'active'¶
- LIQUIDATING = 'liquidating'¶
- LIQUIDATED = 'liquidated'¶
- BANKRUPTING = 'bankrupting'¶
- BANKRUPTED = 'bankrupted'¶
- UNKNOWN = 'unknown'¶
- class tbank.tid.enums.Grade(*values)[исходный код]¶
-
Грейд клиента (уровень программы привилегий).
- NONE = 'NONE'¶
- FIRST = 'FIRST'¶
- SECOND = 'SECOND'¶
- THIRD = 'THIRD'¶
- FOURTH = 'FOURTH'¶
- class tbank.tid.enums.CounterRepeatability(*values)[исходный код]¶
-
Периодичность обнуления счётчика услуги.
- MONTH = 'MONTH'¶
- YEAR = 'YEAR'¶
- class tbank.tid.enums.BundleCode(*values)[исходный код]¶
-
Тип активной подписки.
- PRO = 'PRO'¶
- PREMIUM = 'PREMIUM'¶
- PRIVATE = 'PRIVATE'¶
- TEAM_PRO = 'TEAM_PRO'¶
- TEAM_SELECT = 'TEAM_SELECT'¶
- TEAM_PREMIUM = 'TEAM_PREMIUM'¶
- TEAM_PRIVATE = 'TEAM_PRIVATE'¶
- DEFAULT = 'DEFAULT'¶
- class tbank.tid.enums.CardType(*values)[исходный код]¶
-
Тип карты — кредитная или дебетовая.
- CREDIT = 'CREDIT'¶
- DEBIT = 'DEBIT'¶
- class tbank.tid.enums.GrantType(*values)[исходный код]¶
-
Тип OAuth 2.0 grant при обмене на токен.
- AUTHORIZATION_CODE = 'authorization_code'¶
- REFRESH_TOKEN = 'refresh_token'¶
- CLIENT_CREDENTIALS = 'client_credentials'¶