Зарплатный проект (tbank.salary)

Зарплатные выплаты сотрудникам: регистрация анкет, платёжные реестры, их создание, подписание (в т.ч. «создать и подписать» одним вызовом), оплата и отмена. Операции асинхронные: инициатор возвращает клиентский correlationId (оплата — ключ идемпотентности id), по которому опрашивается результат.

  • Хосты: анкеты, создание черновика реестра и карточка — на business.tbank.ru/openapi по Bearer-токену; подписание, создание-и-подписание, оплата, отмена и список реестров — на secured-openapi.tbank.ru по mTLS (cert).

  • Суммы: Decimal в рублях. Провод: camelCase.

  • Клиенты: tbank.salary.SalaryClient (async) и tbank.salary.sync.SalaryClient (sync).

Сценарий выплаты зарплаты

from decimal import Decimal
from tbank.salary import SalaryClient
from tbank.salary.models import (
    CreateSubmitRegistryRequest, RegistryPayment, RegistryEmployeeInfo, PayRegistryRequest,
)

client = SalaryClient(
    token="self-service-token",
    cert=("client.pem", "client-key.pem"),   # mTLS для подписания/оплаты
)

# создать и сразу подписать реестр (mTLS) → correlationId
cid = await client.create_and_submit_registry(CreateSubmitRegistryRequest(
    payments=[RegistryPayment(
        number=1, account_number="40817810000000000001",
        payment_purpose="Зарплата за июнь",
        employee_info=RegistryEmployeeInfo(first_name="Иван", last_name="Петров"),
        sum=Decimal("50000.75"),
        period_start="2026-06-01", period_end="2026-06-30",
    )],
))
res = await client.get_create_submit_result(cid)     # → paymentRegistryId, ACCEPTED

# оплатить (mTLS) → возвращает ключ идемпотентности id
await client.pay_payment_registry(PayRegistryRequest(
    payment_registry_id=res.payment_registry_id,
    account_number="40702810000000000000", purpose="Зарплата за июнь",
))

Раздельный поток тоже доступен: create_payment_registrysubmit_payment_registrypay_payment_registry; отменить отправку — cancel_payment_registry.

Сотрудники

from tbank.salary.models import (
    AddEmployeesByRequisitesRequest, EmployeeByRequisites, EmployeeBankInfo,
    CreateEmployeesRequest, EmployeeDraft, JobInfo, ListEmployeesRequest,
)

# добавить по реквизитам → correlationId, затем опросить результат
cid = await client.add_employees_by_requisites(AddEmployeesByRequisitesRequest(
    employees=[EmployeeByRequisites(
        number=1, first_name="Иван", last_name="Петров",
        bank_info=EmployeeBankInfo(account_number="40817810000000000001"),
    )],
))
await client.get_add_employees_result(cid)

# полная анкета (черновик)
await client.create_employees(CreateEmployeesRequest(employees=[EmployeeDraft(
    number=1, first_name="Иван", last_name="Петров",
    birth_date="1990-01-02", birth_place="Москва", citizenship="РФ",
    job_info=JobInfo(position="Инженер"),
)]))

# информация по сотрудникам
await client.list_employees(ListEmployeesRequest(employee_ids=[7, 8]))

Реестры

from tbank.salary.models import ListRegistriesRequest
from tbank.salary.enums import RegistryStatus

await client.list_payment_registries(ListRegistriesRequest(
    statuses=[RegistryStatus.EXECUTED], period_start="2026-01-01", period_end="2026-06-30",
))
info = await client.get_payment_registry(registry_id)   # суммы, статусы, платежи

Клиент

class tbank.salary.aio.SalaryClient(token, *, base_url=None, secured_base_url=None, sandbox=False, cert=None, verify=True, retry=None, transport=None, secured_transport=None)[исходный код]

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

Асинхронный клиент зарплатного проекта: анкеты сотрудников, платёжные реестры, их создание/подписание/оплата/отмена.

Подписание, создание-и-подписание, оплата, отмена и список реестров идут на secured-хост и требуют mTLS-сертификата (cert); анкеты и создание черновика реестра — на обычном хосте по Bearer-токену. Инициирующие методы возвращают клиентский correlationId (оплата — ключ идемпотентности id), по которому опрашивается *_result.

Параметры:
decimal_body: ClassVar[bool] = True

True → тело парсится с parse_float=Decimal (точные денежные суммы).

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

Добавить сотрудников по реквизитам.

Параметры:

request (AddEmployeesByRequisitesRequest)

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

str

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

Результат добавления сотрудников по реквизитам.

Параметры:

correlation_id (str)

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

AddEmployeesResult

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

Создать черновики анкет сотрудников.

Параметры:

request (CreateEmployeesRequest)

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

str

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

Результат создания черновиков анкет сотрудников.

Параметры:

correlation_id (str)

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

CreateEmployeesResult

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

Информация по сотрудникам по их идентификаторам.

Параметры:

request (ListEmployeesRequest)

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

ListEmployeesResult

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

Создать черновик платёжного реестра.

Параметры:

request (CreatePaymentRegistryRequest)

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

str

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

Результат создания черновика реестра (paymentRegistryId + ошибки).

Параметры:

correlation_id (str)

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

CreateRegistryResult

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

Создать и сразу подписать платёжный реестр (mTLS).

Параметры:

request (CreateSubmitRegistryRequest)

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

str

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

Результат создания-и-подписания реестра (mTLS).

Параметры:

correlation_id (str)

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

CreateSubmitResult

async submit_payment_registry(registry_id, *, correlation_id=None)[исходный код]

Подписать платёжный реестр (mTLS).

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

  • correlation_id (str | None)

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

str

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

Результат подписания реестра (mTLS).

Параметры:

correlation_id (str)

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

SubmitResult

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

Оплатить платёжный реестр (mTLS). Возвращает ключ идемпотентности id.

Параметры:

request (PayRegistryRequest)

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

str

async cancel_payment_registry(payment_order_number, *, correlation_id=None)[исходный код]

Отменить отправку платёжного реестра (mTLS).

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

  • correlation_id (str | None)

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

str

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

Результат отмены отправки реестра (mTLS).

Параметры:

correlation_id (str)

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

CancelResult

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

Список платёжных реестров за период (mTLS).

Параметры:

request (ListRegistriesRequest)

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

ListRegistriesResult

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

Карточка платёжного реестра: суммы, статусы, платежи.

Параметры:

registry_id (int)

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

PaymentRegistryInfo

Модели

class tbank.salary.models.SalaryModel[исходный код]

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

Базовая модель домена: 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.salary.models.CorrelatedRequest(*, correlationId=<factory>)[исходный код]

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

Запрос-инициатор async-операции с клиентским correlationId.

Параметры:

correlationId (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.salary.models.FieldError(*, fieldName, errorDescription)[исходный код]

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

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

  • errorDescription (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.salary.models.CodeMessageError(*, errorCode, errorMessage)[исходный код]

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

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

  • errorMessage (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.salary.models.CodeDescriptionError(*, errorCode, errorDescription=None)[исходный код]

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

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

  • errorDescription (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.salary.models.PaymentError(*, number, accountNumber=None, errors=<factory>)[исходный код]

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

Параметры:
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.salary.models.EmployeeResult(*, number, firstName, lastName, status, employeeId=None, middleName=None, errors=<factory>)[исходный код]

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

Параметры:
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.salary.models.EmployeeBankInfo(*, accountNumber, bankBic=None)[исходный код]

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

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

  • bankBic (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.salary.models.EmployeeByRequisites(*, number, firstName, lastName, bankInfo, middleName=None, birthDate=None, passportSerial=None, passportNumber=None, mobileNumber=None, email=None)[исходный код]

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

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

  • firstName (str)

  • lastName (str)

  • bankInfo (EmployeeBankInfo)

  • middleName (str | None)

  • birthDate (date | None)

  • passportSerial (str | None)

  • passportNumber (str | None)

  • mobileNumber (str | None)

  • email (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.salary.models.AddEmployeesByRequisitesRequest(*, correlationId=<factory>, employees)[исходный код]

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

Параметры:
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.salary.models.AddEmployeesResult(*, employeesResults=<factory>)[исходный код]

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

Параметры:

employeesResults (List[EmployeeResult])

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.salary.models.EmployeePhone(*, type, number)[исходный код]

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

Параметры:
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.salary.models.EmployeeAddress(*, type, postalCode, state, country=None, city=None, district=None, settlement=None, street=None, house=None, building=None, construction=None, apartment=None)[исходный код]

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

Параметры:
  • type (AddressKind)

  • postalCode (str)

  • state (str)

  • country (str | None)

  • city (str | None)

  • district (str | None)

  • settlement (str | None)

  • street (str | None)

  • house (str | None)

  • building (str | None)

  • construction (str | None)

  • apartment (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.salary.models.EmployeeDocument(*, type, serial, date, organization, number=None, division=None, expireDate=None)[исходный код]

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

Параметры:
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.salary.models.JobInfo(*, position=None)[исходный код]

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

Параметры:

position (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.salary.models.EmployeeDraft(*, number, firstName, lastName, birthDate, birthPlace, citizenship, jobInfo, middleName=None, email=None, latinFirstName=None, latinLastName=None, phones=None, addresses=None, documents=None)[исходный код]

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

Параметры:
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.salary.models.CreateEmployeesRequest(*, correlationId=<factory>, employees)[исходный код]

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

Параметры:
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.salary.models.CreateEmployeesResult(*, employeeResults=<factory>)[исходный код]

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

Параметры:

employeeResults (List[EmployeeResult])

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.salary.models.EmployeeBankInfoFull(*, accountNumber=None, agreementNumber=None)[исходный код]

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

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

  • agreementNumber (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.salary.models.EmployeeInfo(*, id, status, firstName, lastName, bankInfo, middleName=None, birthDate=None, phones=None, documents=None, jobInfo=None)[исходный код]

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

Параметры:
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.salary.models.ListEmployeesRequest(*, employeeIds)[исходный код]

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

Параметры:

employeeIds (List[int])

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.salary.models.ListEmployeesResult(*, employees=<factory>)[исходный код]

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

Параметры:

employees (List[EmployeeInfo])

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.salary.models.RegistryEmployeeInfo(*, firstName, lastName, middleName=None, employeeId=None)[исходный код]

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

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

  • lastName (str)

  • middleName (str | None)

  • employeeId (int | 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.salary.models.RegistryPayment(*, number, accountNumber, paymentPurpose, employeeInfo, sum, periodStart=None, periodEnd=None, revenueTypeCode=None, collectionAmount=None)[исходный код]

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

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

  • accountNumber (str)

  • paymentPurpose (str)

  • employeeInfo (RegistryEmployeeInfo)

  • sum (Annotated[Decimal, PlainSerializer(func=~tbank.salary.models.<lambda>, return_type=float, when_used=json)])

  • periodStart (date | None)

  • periodEnd (date | None)

  • revenueTypeCode (RevenueTypeCode | None)

  • collectionAmount (Annotated[Decimal, PlainSerializer(func=~tbank.salary.models.<lambda>, return_type=float, when_used=json)] | 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.salary.models.CreatePaymentRegistryRequest(*, correlationId=<factory>, payments=None, companyAccountNumber=None, loadDate=None, registryCreateType=None)[исходный код]

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

Параметры:
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.salary.models.CreateSubmitRegistryRequest(*, correlationId=<factory>, payments, companyAccountNumber=None, loadDate=None, registryCreateType=None)[исходный код]

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

Параметры:
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.salary.models.CreateRegistryResult(*, status, paymentRegistryId=None, error=None, paymentErrors=<factory>)[исходный код]

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

Параметры:
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.salary.models.CreateSubmitResult(*, status, paymentRegistryId=None, error=None, paymentErrors=<factory>)[исходный код]

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

Параметры:
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.salary.models.RegistryActionRequest(*, correlationId=<factory>, paymentRegistryId)[исходный код]

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

Тело submit: {correlationId, paymentRegistryId}.

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

  • paymentRegistryId (int)

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.salary.models.SubmitResult(*, paymentRegistryId, status, error=None, paymentErrors=<factory>)[исходный код]

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

Параметры:
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.salary.models.PayRegistryRequest(*, paymentRegistryId, accountNumber, purpose, id=<factory>, documentNumber=None, executionOrder=None, dueDate=None, meta=None)[исходный код]

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

Оплата реестра: id — ключ идемпотентности (генерируется автоматически).

Параметры:
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.salary.models.CancelRequest(*, correlationId=<factory>, paymentOrderNumber)[исходный код]

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

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

  • paymentOrderNumber (int)

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.salary.models.CancelResult(*, status, error=None)[исходный код]

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

Параметры:
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.salary.models.ListRegistriesRequest(*, offset=None, statuses=None, periodStart=None, periodEnd=None)[исходный код]

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

Параметры:
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.salary.models.PaymentOrder(*, number, date, count, sum, status)[исходный код]

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

Параметры:
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.salary.models.ListRegistriesResult(*, paymentOrders=<factory>)[исходный код]

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

Параметры:

paymentOrders (List[PaymentOrder])

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.salary.models.RegistryPaymentInfo(*, status, employeeInfo, sum, number=None, accountNumber=None, paymentPurpose=None, periodStart=None, periodEnd=None)[исходный код]

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

Параметры:
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.salary.models.PaymentRegistryInfo(*, status, paymentsCount, totalSum, companyAccountNumber=None, loadDate=None, payments=<factory>)[исходный код]

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

Параметры:
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.salary.models.CorrelationRef(*, correlationId)[исходный код]

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

Ссылка по correlationId (query для GET-результатов).

Параметры:

correlationId (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.salary.enums.RegistryCreateType(*values)[исходный код]

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

Поведение при ошибках в платежах реестра.

IGNORE_ERRORS = 'IGNORE_ERRORS'
FAIL_ERRORS = 'FAIL_ERRORS'
class tbank.salary.enums.RevenueTypeCode(*values)[исходный код]

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

Код вида выплаты (1–5).

CODE_1 = '1'
CODE_2 = '2'
CODE_3 = '3'
CODE_4 = '4'
CODE_5 = '5'
class tbank.salary.enums.DraftStatus(*values)[исходный код]

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

Статус черновика (анкеты сотрудника / реестра) в async-результате.

QUEUED = 'QUEUED'
CREATED = 'CREATED'
ERROR = 'ERROR'
class tbank.salary.enums.SubmitResultStatus(*values)[исходный код]

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

Статус подписания (или создания-и-подписания) реестра.

IN_PROGRESS = 'IN_PROGRESS'
ACCEPTED = 'ACCEPTED'
ERROR = 'ERROR'
class tbank.salary.enums.CancelStatus(*values)[исходный код]

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

Статус отмены отправки реестра.

QUEUED = 'QUEUED'
DONE = 'DONE'
ERROR = 'ERROR'
class tbank.salary.enums.RegistryStatus(*values)[исходный код]

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

Статус платёжного реестра (список / карточка).

DRAFT = 'DRAFT'
ERROR = 'ERROR'
SUBMITTED = 'SUBMITTED'
PROCESSING = 'PROCESSING'
ACCEPTED = 'ACCEPTED'
EXECUTED = 'EXECUTED'
PART_EXEC = 'PART_EXEC'
REJECTED = 'REJECTED'
CANCELLED = 'CANCELLED'
DELETED = 'DELETED'
class tbank.salary.enums.PaymentInfoStatus(*values)[исходный код]

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

Статус отдельного платежа в карточке реестра.

WAITING = 'WAITING'
ACCEPTED = 'ACCEPTED'
EXECUTED = 'EXECUTED'
REJECTED = 'REJECTED'
CANCELLED = 'CANCELLED'
DELETED = 'DELETED'
class tbank.salary.enums.EmployeeStatus(*values)[исходный код]

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

Статус карточки сотрудника.

DRAFT = 'DRAFT'
PROCESSING = 'PROCESSING'
PROCESSING_ERROR = 'PROCESSING_ERROR'
ACTIVE = 'ACTIVE'
ERROR = 'ERROR'
REJECTED = 'REJECTED'
FIRED = 'FIRED'
DELETED = 'DELETED'
MTNG_SCHD = 'MTNG_SCHD'
MTNG_WAIT = 'MTNG_WAIT'
MTNG_CANC = 'MTNG_CANC'
class tbank.salary.enums.PhoneType(*values)[исходный код]

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

Тип телефона (значения на проводе — на русском).

MOBILE = 'Мобильный'
HOME = 'По месту жительства'
WORK = 'Рабочий'
class tbank.salary.enums.AddressKind(*values)[исходный код]

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

Тип адреса анкеты (значения на проводе — на русском).

RESIDENCE = 'Жительства'
REGISTRATION = 'Регистрации'
WORK = 'Работы'
class tbank.salary.enums.DocumentType(*values)[исходный код]

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

Тип документа анкеты (значения на проводе — на русском).

PASSPORT = 'Паспорт'
FOREIGN_PASSPORT = 'Иностранный паспорт'
FOREIGN_TRAVEL_PASSPORT = 'Загр. паспорт иностранного гр.'
SERVICE_PASSPORT = 'Служебный/официальный паспорт'
DIPLOMATIC_PASSPORT = 'Дипломатический паспорт'
MIGRATION_CARD = 'Миграционная карта'
TEMPORARY_RESIDENCE_PERMIT = 'Разр. на временное проживание'
VISA = 'Виза'
RESIDENCE_PERMIT = 'Вид на жительство'