Files
raptor-trading/invest-python-master/protos/t_tech/invest/grpc/users.proto

249 lines
12 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
syntax = "proto3";
package tinkoff.public.invest.api.contract.v1;
option go_package = "./;investapi";
option java_package = "ru.tinkoff.piapi.contract.v1";
option java_multiple_files = true;
option csharp_namespace = "Tinkoff.InvestApi.V1";
option objc_class_prefix = "TIAPI";
option php_namespace = "Tinkoff\\Invest\\V1";
import "google/protobuf/timestamp.proto";
import "t_tech/invest/grpc/google/api/field_behavior.proto";
import "t_tech/invest/grpc/common.proto";
service UsersService { /*С помощью сервиса можно получить: <br/> 1.
список счетов пользователя; <br/> 2. маржинальные показатели по счeту.*/
//GetAccounts — счета пользователя
//Получить список счетов.
rpc GetAccounts (GetAccountsRequest) returns (GetAccountsResponse);
//GetMarginAttributes — маржинальные показатели по счeту
//Метод позволяет получить маржинальные показатели и ликвидность по заданному счeту.
rpc GetMarginAttributes (GetMarginAttributesRequest) returns (GetMarginAttributesResponse);
//GetUserTariff — тариф пользователя
//Получить информацию о текущих лимитах на подклчение, согласно текущему тарифу пользователя.
rpc GetUserTariff (GetUserTariffRequest) returns (GetUserTariffResponse);
//GetInfo — информация о пользователе
//Получить информацию о пользователе: тариф, признак квалификации, пройденные тесты и др.
rpc GetInfo (GetInfoRequest) returns (GetInfoResponse);
//GetBankAccounts — банковские счета пользователя
//Получить список счетов пользователя, в том числе и банковских.
rpc GetBankAccounts(GetBankAccountsRequest) returns (GetBankAccountsResponse);
//CurrencyTransfer — перевод денежных средств между счетами
//Перевести денежные средства между брокерскими счетами
rpc CurrencyTransfer(CurrencyTransferRequest) returns (CurrencyTransferResponse);
//PayIn — пополнение брокерского счета
//Пополнить брокерский счёт с банковского
rpc PayIn(PayInRequest) returns (PayInResponse);
//GetAccountValues — дополнительные показатели счетов
//Метод предназначен для получения дополнительных показателей счетов
rpc GetAccountValues(GetAccountValuesRequest) returns (GetAccountValuesResponse);
}
//Запрос получения счетов пользователя.
message GetAccountsRequest {
optional AccountStatus status = 1; //Статус счета.
}
//Список счетов пользователя.
message GetAccountsResponse {
// Массив счетов клиента.
repeated Account accounts = 1;
}
//Информация о счeте.
message Account {
// Идентификатор счeта.
string id = 1;
// Тип счeта.
AccountType type = 2;
// Название счeта.
string name = 3;
// Статус счeта.
AccountStatus status = 4;
// Дата открытия счeта в часовом поясе UTC.
google.protobuf.Timestamp opened_date = 5;
// Дата закрытия счeта в часовом поясе UTC.
google.protobuf.Timestamp closed_date = 6;
// Уровень доступа к текущему счeту (определяется токеном).
AccessLevel access_level = 7;
}
//Тип счeта.
enum AccountType {
ACCOUNT_TYPE_UNSPECIFIED = 0; //Тип аккаунта не определeн.
ACCOUNT_TYPE_TINKOFF = 1; //Брокерский счeт Т-Инвестиций.
ACCOUNT_TYPE_TINKOFF_IIS = 2; //ИИС.
ACCOUNT_TYPE_INVEST_BOX = 3; //Инвесткопилка.
ACCOUNT_TYPE_INVEST_FUND = 4; //Фонд денежного рынка.
ACCOUNT_TYPE_DEBIT = 5; //Дебетовый карточный счeт.
ACCOUNT_TYPE_SAVING = 6; //Накопительный счeт.
ACCOUNT_TYPE_DFA = 7; //Смарт-счет.
}
//Статус счeта.
enum AccountStatus {
ACCOUNT_STATUS_UNSPECIFIED = 0; //Статус счeта не определeн.
ACCOUNT_STATUS_NEW = 1; //Новый, в процессе открытия.
ACCOUNT_STATUS_OPEN = 2; //Открытый и активный счeт.
ACCOUNT_STATUS_CLOSED = 3; //Закрытый счeт.
ACCOUNT_STATUS_ALL = 4; //Все счета.
}
//Запрос маржинальных показателей по счeту.
message GetMarginAttributesRequest {
// Идентификатор счeта пользователя.
string account_id = 1 [(google.api.field_behavior) = REQUIRED];
}
//Маржинальные показатели по счeту.
message GetMarginAttributesResponse {
// Ликвидная стоимость портфеля. [Подробнее про ликвидный портфель](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q4).
MoneyValue liquid_portfolio = 1;
// Начальная маржа — начальное обеспечение для совершения новой сделки. [Подробнее про начальную и минимальную маржу](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q6).
MoneyValue starting_margin = 2;
// Минимальная маржа — это минимальное обеспечение для поддержания позиции, которую вы уже открыли. [Подробнее про начальную и минимальную маржу](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q6).
MoneyValue minimal_margin = 3;
// Уровень достаточности средств. Соотношение стоимости ликвидного портфеля к начальной марже.
Quotation funds_sufficiency_level = 4;
// Объем недостающих средств. Разница между стартовой маржой и ликвидной стоимости портфеля.
MoneyValue amount_of_missing_funds = 5;
// Скорректированная маржа. Начальная маржа, в которой плановые позиции рассчитываются с учeтом активных заявок на покупку позиций лонг или продажу позиций шорт.
MoneyValue corrected_margin = 6;
// Размер гарантийного обеспечения, заблокированного под фьючерсы.
MoneyValue guarantee_for_futures = 7;
}
//Запрос текущих лимитов пользователя.
message GetUserTariffRequest {
}
//Текущие лимиты пользователя.
message GetUserTariffResponse {
repeated UnaryLimit unary_limits = 1; //Массив лимитов пользователя по unary-запросам.
repeated StreamLimit stream_limits = 2; //Массив лимитов пользователей для stream-соединений.
}
//Лимит unary-методов.
message UnaryLimit {
int32 limit_per_minute = 1; //Количество unary-запросов в минуту.
repeated string methods = 2; //Названия методов.
optional int32 limit_per_second = 3; //Количество unary-запросов в секунду.
}
//Лимит stream-соединений.
message StreamLimit {
int32 limit = 1; //Максимальное количество stream-соединений.
repeated string streams = 2; //Названия stream-методов.
int32 open = 3; //Текущее количество открытых stream-соединений.
}
//Запрос информации о пользователе.
message GetInfoRequest {
}
//Информация о пользователе.
message GetInfoResponse {
bool prem_status = 1; //Признак премиум клиента.
bool qual_status = 2; //Признак квалифицированного инвестора.
repeated string qualified_for_work_with = 3; //Набор требующих тестирования инструментов и возможностей, с которыми может работать пользователь. [Подробнее](/invest/services/accounts/faq_users).
string tariff = 4; //Наименование тарифа пользователя.
string user_id = 9; //Идентификатор пользователя.
string risk_level_code = 12; // Категория риска.
}
//Уровень доступа к счeту.
enum AccessLevel {
ACCOUNT_ACCESS_LEVEL_UNSPECIFIED = 0; //Уровень доступа не определeн.
ACCOUNT_ACCESS_LEVEL_FULL_ACCESS = 1; //Полный доступ к счeту.
ACCOUNT_ACCESS_LEVEL_READ_ONLY = 2; //Доступ с уровнем прав «только чтение».
ACCOUNT_ACCESS_LEVEL_NO_ACCESS = 3; //Доступа нет.
}
//Запрос списка банковских счетов пользователя.
message GetBankAccountsRequest {
}
//Список банковских счетов пользователя.
message GetBankAccountsResponse {
repeated BankAccount bank_accounts = 1; //Массив банковских счетов.
}
//Банковский счeт.
message BankAccount {
string id = 1; //Идентификатор счeта.
string name = 2; //Название счeта.
repeated MoneyValue money = 3; //Список валютных позиций на счeте.
google.protobuf.Timestamp opened_date = 4; //Дата открытия счeта в часовом поясе UTC.
AccountType type = 5; //Тип счeта.
}
message CurrencyTransferRequest {
string from_account_id = 1 [(google.api.field_behavior) = REQUIRED]; // Номер счета списания.
string to_account_id = 2 [(google.api.field_behavior) = REQUIRED]; // Номер счета зачисления.
MoneyValue amount = 3 [(google.api.field_behavior) = REQUIRED]; // Сумма перевода с указанием валюты.
string transaction_id = 4; // Идентификатор запроса выставления поручения для целей идемпотентности в формате UUID.
}
message CurrencyTransferResponse {
}
message PayInRequest {
string from_account_id = 1 [(google.api.field_behavior) = REQUIRED]; // Номер счета списания.
string to_account_id = 2 [(google.api.field_behavior) = REQUIRED]; // Номер брокерского счета зачисления.
MoneyValue amount = 3 [(google.api.field_behavior) = REQUIRED]; // Сумма перевода с указанием валюты.
}
message PayInResponse {
}
enum AccountValue {
ACCOUNT_VALUE_UNSPECIFIED = 0; // Не определён.
ACCOUNT_VALUE_MARGIN_FEE = 1; // Размер комиссии за маржинальное кредитование.
ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE = 2; // Остаток доступного лимита с текущей комиссией.
}
message GetAccountValuesRequest {
repeated string accounts = 1; // Массив счетов пользователя.
repeated AccountValue values = 2; // Массив запрашиваемых параметров.
}
message GetAccountValuesResponse {
repeated AccountValuesWithParameters accounts = 1; // Массив счетов с параметрами.
}
message AccountValuesWithParameters {
string account_id = 1; // Номер счета.
repeated InstrumentParameter values = 2; // Массив параметров инструмента.
}
message InstrumentParameter {
AccountValue name = 1; // Тип запрашиваемого параметра.
MoneyValue value = 2; // Значение запрашиваемого параметра.
}