647 lines
43 KiB
Protocol Buffer
647 lines
43 KiB
Protocol Buffer
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/common.proto";
|
||
import "t_tech/invest/grpc/google/api/field_behavior.proto";
|
||
|
||
service OperationsService {/*С помощью методов сервиса можно получить:<br/><br/> **1**. Список операций по счету.<br/> **2**.
|
||
Портфель по счету.<br/> **3**. Позиции ценных бумаг на счете.<br/> **4**.
|
||
Доступный остаток для вывода средств.<br/> **5**. Различные отчеты.*/
|
||
//GetOperations — список операций по счету
|
||
//При работе с методом учитывайте [особенности взаимодействия](/invest/services/operations/operations_problems).
|
||
rpc GetOperations(OperationsRequest) returns (OperationsResponse);
|
||
|
||
//GetPortfolio — портфель по счету
|
||
rpc GetPortfolio(PortfolioRequest) returns (PortfolioResponse);
|
||
|
||
//GetPositions — список позиций по счету
|
||
rpc GetPositions(PositionsRequest) returns (PositionsResponse);
|
||
|
||
//GetWithdrawLimits — доступный остаток для вывода средств
|
||
rpc GetWithdrawLimits(WithdrawLimitsRequest) returns (WithdrawLimitsResponse);
|
||
|
||
//GetBrokerReport — брокерский отчет.
|
||
rpc GetBrokerReport(BrokerReportRequest) returns (BrokerReportResponse);
|
||
|
||
//GetDividendsForeignIssuer — отчет «Справка о доходах за пределами РФ»
|
||
rpc GetDividendsForeignIssuer(GetDividendsForeignIssuerRequest) returns (GetDividendsForeignIssuerResponse);
|
||
|
||
//GetOperationsByCursor — список операций по счету с пагинацией
|
||
//При работе с методом учитывайте [особенности взаимодействия](/invest/services/operations/operations_problems).
|
||
rpc GetOperationsByCursor(GetOperationsByCursorRequest) returns (GetOperationsByCursorResponse);
|
||
}
|
||
|
||
service OperationsStreamService {
|
||
//PortfolioStream — стрим обновлений портфеля
|
||
rpc PortfolioStream(PortfolioStreamRequest) returns (stream PortfolioStreamResponse);
|
||
|
||
//PositionsStream — стрим обновлений информации по изменению позиций портфеля
|
||
rpc PositionsStream(PositionsStreamRequest) returns (stream PositionsStreamResponse);
|
||
|
||
//OperationsStream — стрим обновлений операций
|
||
rpc OperationsStream(OperationsStreamRequest) returns (stream OperationsStreamResponse);
|
||
}
|
||
|
||
//Запрос получения списка операций по счету.
|
||
message OperationsRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента.
|
||
optional google.protobuf.Timestamp from = 2; //Начало периода по UTC.
|
||
optional google.protobuf.Timestamp to = 3; //Окончание периода по UTC.
|
||
optional OperationState state = 4; //Статус запрашиваемых операций.
|
||
optional string figi = 5; //FIGI-идентификатор инструмента для фильтрации.
|
||
}
|
||
|
||
//Список операций.
|
||
message OperationsResponse {
|
||
repeated Operation operations = 1; //Массив операций.
|
||
}
|
||
|
||
//Данные по операции.
|
||
message Operation {
|
||
string id = 1; //Идентификатор операции.
|
||
string parent_operation_id = 2; //Идентификатор родительской операции.
|
||
string currency = 3; //Валюта операции.
|
||
MoneyValue payment = 4; //Сумма операции.
|
||
MoneyValue price = 5; //Цена операции за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
|
||
OperationState state = 6; //Статус операции.
|
||
int64 quantity = 7; //Количество единиц инструмента.
|
||
int64 quantity_rest = 8; //Неисполненный остаток по сделке.
|
||
string figi = 9; //FIGI-идентификатор инструмента, связанного с операцией.
|
||
string instrument_type = 10; //Тип инструмента. Возможные значения: <br/><br/>`bond` — облигация; <br/>`share` — акция; <br/>`currency` — валюта; <br/>`etf` — фонд; <br/>`futures` — фьючерс.
|
||
google.protobuf.Timestamp date = 11; //Дата и время операции в формате часовом поясе UTC.
|
||
string type = 12; //Текстовое описание типа операции.
|
||
OperationType operation_type = 13; //Тип операции.
|
||
repeated OperationTrade trades = 14; //Массив сделок.
|
||
string asset_uid = 16; //Идентификатор актива
|
||
string position_uid = 17; //Уникальный идентификатор позиции.
|
||
string instrument_uid = 18; //Уникальный идентификатор инструмента.
|
||
repeated ChildOperationItem child_operations = 19; //Массив дочерних операций.
|
||
}
|
||
|
||
//Сделка по операции.
|
||
message OperationTrade {
|
||
string trade_id = 1; //Идентификатор сделки.
|
||
google.protobuf.Timestamp date_time = 2; //Дата и время сделки по UTC.
|
||
int64 quantity = 3; //Количество инструментов.
|
||
MoneyValue price = 4; //Цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
|
||
}
|
||
|
||
//Запрос получения текущего портфеля по счету.
|
||
message PortfolioRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета пользователя.
|
||
optional CurrencyRequest currency = 2; //Валюта, в которой нужно рассчитать портфель.
|
||
enum CurrencyRequest {
|
||
RUB = 0; //Рубли
|
||
USD = 1; //Доллары
|
||
EUR = 2; //Евро
|
||
}
|
||
}
|
||
|
||
//Текущий портфель по счету.
|
||
message PortfolioResponse {
|
||
MoneyValue total_amount_shares = 1; //Общая стоимость акций в портфеле.
|
||
MoneyValue total_amount_bonds = 2; //Общая стоимость облигаций в портфеле.
|
||
MoneyValue total_amount_etf = 3; //Общая стоимость фондов в портфеле.
|
||
MoneyValue total_amount_currencies = 4; //Общая стоимость валют в портфеле.
|
||
MoneyValue total_amount_futures = 5; //Общая стоимость фьючерсов в портфеле.
|
||
Quotation expected_yield = 6; //Текущая относительная доходность портфеля в %.
|
||
repeated PortfolioPosition positions = 7; //Список позиций портфеля.
|
||
string account_id = 8; //Идентификатор счета пользователя.
|
||
|
||
MoneyValue total_amount_options = 9; //Общая стоимость опционов в портфеле.
|
||
MoneyValue total_amount_sp = 10; //Общая стоимость структурных нот в портфеле.
|
||
MoneyValue total_amount_portfolio = 11; //Общая стоимость портфеля.
|
||
repeated VirtualPortfolioPosition virtual_positions = 12; //Массив виртуальных позиций портфеля.
|
||
MoneyValue daily_yield = 15; // Рассчитанная доходность портфеля за день в рублях.
|
||
Quotation daily_yield_relative = 16; //Относительная доходность в день в %.
|
||
MoneyValue total_amount_dfa = 17; //Общая стоимость смарт-активов в портфеле в рублях.
|
||
}
|
||
|
||
//Запрос позиций портфеля по счету.
|
||
message PositionsRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета пользователя.
|
||
}
|
||
|
||
//Список позиций по счету.
|
||
message PositionsResponse {
|
||
repeated MoneyValue money = 1; //Массив валютных позиций портфеля.
|
||
repeated MoneyValue blocked = 2; //Массив заблокированных валютных позиций портфеля.
|
||
repeated PositionsSecurities securities = 3; //Список ценно-бумажных позиций портфеля.
|
||
bool limits_loading_in_progress = 4; //Признак идущей выгрузки лимитов в данный момент.
|
||
repeated PositionsFutures futures = 5; //Список фьючерсов портфеля.
|
||
repeated PositionsOptions options = 6; //Список опционов портфеля.
|
||
string account_id = 15; //Идентификатор счёта пользователя.
|
||
}
|
||
|
||
//Запрос доступного остатка для вывода.
|
||
message WithdrawLimitsRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета пользователя.
|
||
}
|
||
|
||
//Доступный остаток для вывода.
|
||
message WithdrawLimitsResponse {
|
||
repeated MoneyValue money = 1; //Массив валютных позиций портфеля.
|
||
repeated MoneyValue blocked = 2; //Массив заблокированных валютных позиций портфеля.
|
||
repeated MoneyValue blocked_guarantee = 3; //Заблокировано под гарантийное обеспечение фьючерсов.
|
||
}
|
||
|
||
//Позиции портфеля.
|
||
message PortfolioPosition {
|
||
string figi = 1; //FIGI-идентификатор инструмента.
|
||
string instrument_type = 2; //Тип инструмента.
|
||
Quotation quantity = 3; //Количество инструмента в портфеле в штуках.
|
||
MoneyValue average_position_price = 4; //Средневзвешенная цена позиции. Для пересчета возможна задержка до одной секунды.
|
||
Quotation expected_yield = 5; //Текущая рассчитанная доходность позиции.
|
||
MoneyValue current_nkd = 6; // Текущий НКД.
|
||
Quotation average_position_price_pt = 7 [ deprecated = true ]; // Deprecated Средняя цена позиции в пунктах (для фьючерсов). Для пересчета возможна задержка до одной секунды.
|
||
MoneyValue current_price = 8; //Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
|
||
MoneyValue average_position_price_fifo = 9; //Средняя цена позиции по методу FIFO. Для пересчета возможна задержка до одной секунды.
|
||
Quotation quantity_lots = 10 [ deprecated = true ]; //Deprecated Количество лотов в портфеле.
|
||
bool blocked = 21; //Заблокировано на бирже.
|
||
Quotation blocked_lots = 22; //Количество бумаг, заблокированных выставленными заявками.
|
||
string position_uid = 24; //Уникальный идентификатор позиции.
|
||
string instrument_uid = 25; //Уникальный идентификатор инструмента.
|
||
MoneyValue var_margin = 26; //Вариационная маржа.
|
||
Quotation expected_yield_fifo = 27; //Текущая рассчитанная доходность позиции.
|
||
MoneyValue daily_yield = 31; // Рассчитанная доходность портфеля за день.
|
||
string ticker = 32; //Тикер инструмента.
|
||
string class_code = 33; //Класс-код (секция торгов).
|
||
}
|
||
|
||
message VirtualPortfolioPosition {
|
||
string position_uid = 1; //Уникальный идентификатор позиции.
|
||
string instrument_uid = 2; //Уникальный идентификатор инструмента.
|
||
string figi = 3; //FIGI-идентификатор инструмента.
|
||
string instrument_type = 4; //Тип инструмента.
|
||
Quotation quantity = 5; //Количество инструмента в портфеле в штуках.
|
||
MoneyValue average_position_price = 6; //Средневзвешенная цена позиции. Для пересчета возможна задержка до одной секунды.
|
||
Quotation expected_yield = 7; //Текущая рассчитанная доходность позиции.
|
||
Quotation expected_yield_fifo = 8; //Текущая рассчитанная доходность позиции.
|
||
google.protobuf.Timestamp expire_date = 9; //Дата, до которой нужно продать виртуальные бумаги. После этой даты виртуальная позиция «сгораетт».
|
||
MoneyValue current_price = 10; //Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
|
||
MoneyValue average_position_price_fifo = 11; //Средняя цена позиции по методу FIFO. Для пересчета возможна задержка до одной секунды.
|
||
MoneyValue daily_yield = 31; // Рассчитанная доходность портфеля за день.
|
||
string ticker = 32; //Тикер инструмента.
|
||
string class_code = 33; //Класс-код (секция торгов).
|
||
}
|
||
|
||
//Баланс позиции ценной бумаги.
|
||
message PositionsSecurities {
|
||
string figi = 1; //FIGI-идентификатор бумаги.
|
||
int64 blocked = 2; //Количество бумаг, заблокированных выставленными заявками.
|
||
int64 balance = 3; //Текущий незаблокированный баланс.
|
||
string position_uid = 4; //Уникальный идентификатор позиции.
|
||
string instrument_uid = 5; //Уникальный идентификатор инструмента.
|
||
string ticker = 6; //Тикер инструмента.
|
||
string class_code = 7; //Класс-код (секция торгов).
|
||
bool exchange_blocked = 11; //Заблокировано на бирже.
|
||
string instrument_type = 16; //Тип инструмента.
|
||
}
|
||
|
||
//Баланс фьючерса.
|
||
message PositionsFutures {
|
||
string figi = 1; //FIGI-идентификатор фьючерса.
|
||
int64 blocked = 2; //Количество бумаг, заблокированных выставленными заявками.
|
||
int64 balance = 3; //Текущий незаблокированный баланс.
|
||
string position_uid = 4; //Уникальный идентификатор позиции.
|
||
string instrument_uid = 5; //Уникальный идентификатор инструмента.
|
||
string ticker = 6; //Тикер инструмента.
|
||
string class_code = 7; //Класс-код (секция торгов).
|
||
}
|
||
|
||
//Баланс опциона.
|
||
message PositionsOptions {
|
||
string position_uid = 1; //Уникальный идентификатор позиции опциона.
|
||
string instrument_uid = 2; //Уникальный идентификатор инструмента.
|
||
string ticker = 3; //Тикер инструмента.
|
||
string class_code = 4; //Класс-код (секция торгов).
|
||
int64 blocked = 11; //Количество бумаг, заблокированных выставленными заявками.
|
||
int64 balance = 21; //Текущий незаблокированный баланс.
|
||
}
|
||
|
||
message BrokerReportRequest {
|
||
oneof payload {
|
||
GenerateBrokerReportRequest generate_broker_report_request = 1;
|
||
GetBrokerReportRequest get_broker_report_request = 2;
|
||
}
|
||
}
|
||
|
||
message BrokerReportResponse {
|
||
oneof payload {
|
||
GenerateBrokerReportResponse generate_broker_report_response = 1;
|
||
GetBrokerReportResponse get_broker_report_response = 2;
|
||
}
|
||
}
|
||
|
||
message GenerateBrokerReportRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента.
|
||
google.protobuf.Timestamp from = 2 [(google.api.field_behavior) = REQUIRED]; //Начало периода по UTC.
|
||
google.protobuf.Timestamp to = 3 [(google.api.field_behavior) = REQUIRED]; //Окончание периода по UTC.
|
||
}
|
||
|
||
message GenerateBrokerReportResponse {
|
||
string task_id = 1; //Идентификатор задачи формирования брокерского отчета.
|
||
}
|
||
|
||
message GetBrokerReportRequest {
|
||
string task_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор задачи формирования брокерского отчета.
|
||
optional int32 page = 2; //Номер страницы отчета, начинается с 1. Значение по умолчанию — 0.
|
||
}
|
||
|
||
message GetBrokerReportResponse {
|
||
repeated BrokerReport broker_report = 1;
|
||
int32 itemsCount = 2; //Количество записей в отчете.
|
||
int32 pagesCount = 3; //Количество страниц с данными отчета, начинается с 0.
|
||
int32 page = 4; //Текущая страница, начинается с 0.
|
||
string task_id = 5; //Идентификатор задачи формирования брокерского отчета.
|
||
}
|
||
|
||
message BrokerReport {
|
||
string trade_id = 1;//Номер сделки.
|
||
string order_id = 2; //Номер поручения.
|
||
string figi = 3; //FIGI-идентификаторинструмента.
|
||
string execute_sign = 4; //Признак исполнения.
|
||
google.protobuf.Timestamp trade_datetime = 5; //Дата и время заключения по UTC.
|
||
string exchange = 6; //Торговая площадка.
|
||
string class_code = 7; //Режим торгов.
|
||
string direction = 8; //Вид сделки.
|
||
string name = 9; //Сокращенное наименование актива.
|
||
string ticker = 10; //Код актива.
|
||
MoneyValue price = 11; //Цена за единицу.
|
||
int64 quantity = 12; //Количество.
|
||
MoneyValue order_amount = 13; //Сумма без НКД.
|
||
Quotation aci_value = 14; //НКД.
|
||
MoneyValue total_order_amount = 15; //Сумма сделки.
|
||
MoneyValue broker_commission = 16; //Комиссия брокера.
|
||
MoneyValue exchange_commission = 17; //Комиссия биржи.
|
||
MoneyValue exchange_clearing_commission = 18; //Комиссия клирингового центра.
|
||
Quotation repo_rate = 19; //Ставка РЕПО, %.
|
||
string party = 20; //Контрагент или брокерарокер.
|
||
google.protobuf.Timestamp clear_value_date = 21; //Дата расчетов по UTC.
|
||
google.protobuf.Timestamp sec_value_date = 22; //Дата поставки по UTC.
|
||
string broker_status = 23; //Статус брокера.
|
||
string separate_agreement_type = 24; //Тип договора.
|
||
string separate_agreement_number = 25; //Номер договора.
|
||
string separate_agreement_date = 26; //Дата договора.
|
||
string delivery_type = 27; //Тип расчета по сделке.
|
||
}
|
||
|
||
//Статус запрашиваемых операций.
|
||
enum OperationState {
|
||
OPERATION_STATE_UNSPECIFIED = 0; //Статус операции не определен.
|
||
OPERATION_STATE_EXECUTED = 1; //Исполнена частично или полностью.
|
||
OPERATION_STATE_CANCELED = 2; //Отменена.
|
||
OPERATION_STATE_PROGRESS = 3; //Исполняется.
|
||
}
|
||
|
||
//Тип операции.
|
||
enum OperationType {
|
||
OPERATION_TYPE_UNSPECIFIED = 0; //Тип операции не определен.
|
||
OPERATION_TYPE_INPUT = 1; //Пополнение брокерского счета.
|
||
OPERATION_TYPE_BOND_TAX = 2; //Удержание НДФЛ по купонам.
|
||
OPERATION_TYPE_OUTPUT_SECURITIES = 3; //Вывод ЦБ.
|
||
OPERATION_TYPE_OVERNIGHT = 4; //Доход по сделке РЕПО овернайт.
|
||
OPERATION_TYPE_TAX = 5; //Удержание налога.
|
||
OPERATION_TYPE_BOND_REPAYMENT_FULL = 6; //Полное погашение облигаций.
|
||
OPERATION_TYPE_SELL_CARD = 7; //Продажа ЦБ с карты.
|
||
OPERATION_TYPE_DIVIDEND_TAX = 8; //Удержание налога по дивидендам.
|
||
OPERATION_TYPE_OUTPUT = 9; //Вывод денежных средств.
|
||
OPERATION_TYPE_BOND_REPAYMENT = 10; //Частичное погашение облигаций.
|
||
OPERATION_TYPE_TAX_CORRECTION = 11; //Корректировка налога.
|
||
OPERATION_TYPE_SERVICE_FEE = 12; //Удержание комиссии за обслуживание брокерского счета.
|
||
OPERATION_TYPE_BENEFIT_TAX = 13; //Удержание налога за материальную выгоду.
|
||
OPERATION_TYPE_MARGIN_FEE = 14; //Удержание комиссии за непокрытую позицию.
|
||
OPERATION_TYPE_BUY = 15; //Покупка ЦБ.
|
||
OPERATION_TYPE_BUY_CARD = 16; //Покупка ЦБ с карты.
|
||
OPERATION_TYPE_INPUT_SECURITIES = 17; //Перевод ценных бумаг из другого депозитария.
|
||
OPERATION_TYPE_SELL_MARGIN = 18; //Продажа в результате Margin-call.
|
||
OPERATION_TYPE_BROKER_FEE = 19; //Удержание комиссии за операцию.
|
||
OPERATION_TYPE_BUY_MARGIN = 20; //Покупка в результате Margin-call.
|
||
OPERATION_TYPE_DIVIDEND = 21; //Выплата дивидендов.
|
||
OPERATION_TYPE_SELL = 22; //Продажа ЦБ.
|
||
OPERATION_TYPE_COUPON = 23; //Выплата купонов.
|
||
OPERATION_TYPE_SUCCESS_FEE = 24; //Удержание комиссии SuccessFee.
|
||
OPERATION_TYPE_DIVIDEND_TRANSFER = 25; //Передача дивидендного дохода.
|
||
OPERATION_TYPE_ACCRUING_VARMARGIN = 26; //Зачисление вариационной маржи.
|
||
OPERATION_TYPE_WRITING_OFF_VARMARGIN = 27; //Списание вариационной маржи.
|
||
OPERATION_TYPE_DELIVERY_BUY = 28; //Покупка в рамках экспирации фьючерсного контракта.
|
||
OPERATION_TYPE_DELIVERY_SELL = 29; //Продажа в рамках экспирации фьючерсного контракта.
|
||
OPERATION_TYPE_TRACK_MFEE = 30; //Комиссия за управление по счету автоследования.
|
||
OPERATION_TYPE_TRACK_PFEE = 31; //Комиссия за результат по счету автоследования.
|
||
OPERATION_TYPE_TAX_PROGRESSIVE = 32; //Удержание налога по ставке 15%.
|
||
OPERATION_TYPE_BOND_TAX_PROGRESSIVE = 33; //Удержание налога по купонам по ставке 15%.
|
||
OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE = 34; //Удержание налога по дивидендам по ставке 15%.
|
||
OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE = 35; //Удержание налога за материальную выгоду по ставке 15%.
|
||
OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE = 36; //Корректировка налога по ставке 15%.
|
||
OPERATION_TYPE_TAX_REPO_PROGRESSIVE = 37; //Удержание налога за возмещение по сделкам РЕПО по ставке 15%.
|
||
OPERATION_TYPE_TAX_REPO = 38; //Удержание налога за возмещение по сделкам РЕПО.
|
||
OPERATION_TYPE_TAX_REPO_HOLD = 39; //Удержание налога по сделкам РЕПО.
|
||
OPERATION_TYPE_TAX_REPO_REFUND = 40; //Возврат налога по сделкам РЕПО.
|
||
OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE = 41; //Удержание налога по сделкам РЕПО по ставке 15%.
|
||
OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE = 42; //Возврат налога по сделкам РЕПО по ставке 15%.
|
||
OPERATION_TYPE_DIV_EXT = 43; //Выплата дивидендов на карту.
|
||
OPERATION_TYPE_TAX_CORRECTION_COUPON = 44; //Корректировка налога по купонам.
|
||
OPERATION_TYPE_CASH_FEE = 45; //Комиссия за валютный остаток.
|
||
OPERATION_TYPE_OUT_FEE = 46; //Комиссия за вывод валюты с брокерского счета.
|
||
OPERATION_TYPE_OUT_STAMP_DUTY = 47; //Гербовый сбор.
|
||
OPERATION_TYPE_OUTPUT_SWIFT = 50; // SWIFT-перевод.
|
||
OPERATION_TYPE_INPUT_SWIFT = 51; // SWIFT-перевод.
|
||
OPERATION_TYPE_OUTPUT_ACQUIRING = 53; // Перевод на карту.
|
||
OPERATION_TYPE_INPUT_ACQUIRING = 54; // Перевод с карты.
|
||
OPERATION_TYPE_OUTPUT_PENALTY = 55; // Комиссия за вывод средств.
|
||
OPERATION_TYPE_ADVICE_FEE = 56; // Списание оплаты за сервис Советов.
|
||
OPERATION_TYPE_TRANS_IIS_BS = 57; // Перевод ценных бумаг с ИИС на брокерский счет.
|
||
OPERATION_TYPE_TRANS_BS_BS = 58; // Перевод ценных бумаг с одного брокерского счета на другой.
|
||
OPERATION_TYPE_OUT_MULTI = 59; // Вывод денежных средств со счета.
|
||
OPERATION_TYPE_INP_MULTI = 60; // Пополнение денежных средств со счета.
|
||
OPERATION_TYPE_OVER_PLACEMENT = 61; // Размещение биржевого овернайта.
|
||
OPERATION_TYPE_OVER_COM = 62; // Списание комиссии.
|
||
OPERATION_TYPE_OVER_INCOME = 63; // Доход от оверанайта.
|
||
OPERATION_TYPE_OPTION_EXPIRATION = 64; // Экспирация опциона.
|
||
OPERATION_TYPE_FUTURE_EXPIRATION = 65; // Экспирация фьючерса.
|
||
OPERATION_TYPE_OTHER_FEE = 66; // Прочие комиссии;
|
||
OPERATION_TYPE_OTHER = 67; // Операция по счету;
|
||
OPERATION_TYPE_DFA_REDEMPTION = 68; // погашение ЦФА-токена;
|
||
OPERATION_TYPE_PRIMARY_ORDER =69; // отмена заявки на первичное размещение по ЦФА;
|
||
}
|
||
|
||
message GetDividendsForeignIssuerRequest {
|
||
oneof payload {
|
||
GenerateDividendsForeignIssuerReportRequest generate_div_foreign_issuer_report = 1; //Объект запроса формирования отчета.
|
||
GetDividendsForeignIssuerReportRequest get_div_foreign_issuer_report = 2; //Объект запроса сформированного отчета.
|
||
}
|
||
}
|
||
|
||
message GetDividendsForeignIssuerResponse {
|
||
oneof payload {
|
||
GenerateDividendsForeignIssuerReportResponse generate_div_foreign_issuer_report_response = 1; //Объект результата задачи запуска формирования отчета.
|
||
GetDividendsForeignIssuerReportResponse div_foreign_issuer_report = 2; //Отчет «Справка о доходах за пределами РФ».
|
||
}
|
||
}
|
||
|
||
//Объект запроса формирования отчета «Справка о доходах за пределами РФ».
|
||
message GenerateDividendsForeignIssuerReportRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента.
|
||
google.protobuf.Timestamp from = 2 [(google.api.field_behavior) = REQUIRED]; //Начало периода по UTC.
|
||
google.protobuf.Timestamp to = 3 [(google.api.field_behavior) = REQUIRED]; //Окончание периода по UTC. Как правило, можно сформировать отчет по дату на несколько дней меньше текущей. Начало и окончание периода должны быть в рамках одного календарного года.
|
||
}
|
||
|
||
// Объект запроса сформированного отчета «Справка о доходах за пределами РФ».
|
||
message GetDividendsForeignIssuerReportRequest {
|
||
string task_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор задачи формирования отчета.
|
||
optional int32 page = 2; //Номер страницы отчета (начинается с 0), значение по умолчанию: 0.
|
||
}
|
||
|
||
// Объект результата задачи запуска формирования отчета «Справка о доходах за пределами РФ».
|
||
message GenerateDividendsForeignIssuerReportResponse {
|
||
string task_id = 1; //Идентификатор задачи формирования отчета.
|
||
}
|
||
|
||
message GetDividendsForeignIssuerReportResponse {
|
||
repeated DividendsForeignIssuerReport dividends_foreign_issuer_report = 1;
|
||
int32 itemsCount = 2; //Количество записей в отчете.
|
||
int32 pagesCount = 3; //Количество страниц с данными отчета, начинается с 0.
|
||
int32 page = 4; //Текущая страница, начинается с 0.
|
||
}
|
||
|
||
// Отчет «Справка о доходах за пределами РФ».
|
||
message DividendsForeignIssuerReport {
|
||
google.protobuf.Timestamp record_date = 1; //Дата фиксации реестра.
|
||
google.protobuf.Timestamp payment_date = 2; //Дата выплаты.
|
||
string security_name = 3; //Наименование ценной бумаги.
|
||
string isin = 4; //ISIN-идентификатор ценной бумаги.
|
||
string issuer_country = 5; //Страна эмитента. Для депозитарных расписок указывается страна эмитента базового актива.
|
||
int64 quantity = 6; //Количество ценных бумаг.
|
||
Quotation dividend = 7; //Выплаты на одну бумагу
|
||
Quotation external_commission = 8; //Комиссия внешних платежных агентов.
|
||
Quotation dividend_gross = 9; //Сумма до удержания налога.
|
||
Quotation tax = 10; //Сумма налога, удержанного агентом.
|
||
Quotation dividend_amount = 11; //Итоговая сумма выплаты.
|
||
string currency = 12; //Валюта.
|
||
}
|
||
|
||
//Запрос установки stream-соединения.
|
||
message PortfolioStreamRequest {
|
||
repeated string accounts = 1; //Массив идентификаторов счетов пользователя.
|
||
PingDelaySettings ping_settings = 15; //Запрос настройки пинга.
|
||
}
|
||
|
||
//Информация по позициям и доходностям портфелей.
|
||
message PortfolioStreamResponse {
|
||
oneof payload {
|
||
PortfolioSubscriptionResult subscriptions = 1; //Объект результата подписки.
|
||
PortfolioResponse portfolio = 2; //Объект стриминга портфеля.
|
||
Ping ping = 3; //Проверка активности стрима.
|
||
}
|
||
}
|
||
|
||
//Объект результата подписки.
|
||
message PortfolioSubscriptionResult {
|
||
repeated AccountSubscriptionStatus accounts = 1; //Массив счетов клиента.
|
||
string tracking_id = 7; //Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id).
|
||
string stream_id = 8; //Идентификатор открытого соединения
|
||
}
|
||
|
||
//Счет клиента.
|
||
message AccountSubscriptionStatus {
|
||
string account_id = 1; //Идентификатор счета.
|
||
PortfolioSubscriptionStatus subscription_status = 6; //Результат подписки.
|
||
}
|
||
|
||
//Результат подписки.
|
||
enum PortfolioSubscriptionStatus {
|
||
PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED = 0; //Тип не определен.
|
||
PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS = 1; //Успешно.
|
||
PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2; //Счет не найден или недостаточно прав.
|
||
PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3; //Произошла ошибка.
|
||
}
|
||
|
||
//Запрос списка операций по счету с пагинацией.
|
||
message GetOperationsByCursorRequest {
|
||
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента, обязательный параметр. Остальные параметры опциональны.
|
||
optional string instrument_id = 2; //Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`.
|
||
optional google.protobuf.Timestamp from = 6; //Начало периода по UTC.
|
||
optional google.protobuf.Timestamp to = 7; //Окончание периода по UTC.
|
||
optional string cursor = 11; //Идентификатор элемента, с которого начать формировать ответ.
|
||
optional int32 limit = 12; //Лимит количества операций. По умолчанию — `100`, максимальное значение — `1000`.
|
||
repeated OperationType operation_types = 13; //Тип операции. Принимает значение из списка `OperationType`.
|
||
optional OperationState state = 14; //Статус запрашиваемых операций. Возможные значения указаны в `OperationState`.
|
||
optional bool without_commissions = 15; //Флаг возврата комиссии. По умолчанию — `false`.
|
||
optional bool without_trades = 16; //Флаг получения ответа без массива сделок.
|
||
optional bool without_overnights = 17; //Флаг показа overnight операций.
|
||
}
|
||
|
||
//Список операций по счету с пагинацией.
|
||
message GetOperationsByCursorResponse {
|
||
bool has_next = 1; //Признак, есть ли следующий элемент.
|
||
string next_cursor = 2; //Следующий курсор.
|
||
repeated OperationItem items = 6; //Список операций.
|
||
}
|
||
|
||
//Данные об операции.
|
||
message OperationItem {
|
||
string cursor = 1; //Курсор.
|
||
string broker_account_id = 6; //Номер счета клиента.
|
||
string id = 16; //Идентификатор операции, может меняться с течением времени.
|
||
string parent_operation_id = 17; //Идентификатор родительской операции. Может измениться, если изменился ID родительской операции.
|
||
string name = 18; //Название операции.
|
||
google.protobuf.Timestamp date = 21; //Дата поручения.
|
||
OperationType type = 22; //Тип операции.
|
||
string description = 23; //Описание операции.
|
||
OperationState state = 24; //Статус поручения.
|
||
string instrument_uid = 31; //Уникальный идентификатор инструмента.
|
||
string figi = 32; //FIGI.
|
||
string instrument_type = 33; //Тип инструмента.
|
||
InstrumentType instrument_kind = 34; //Тип инструмента.
|
||
string position_uid = 35; //Уникальный идентификатор позиции.
|
||
string ticker = 36; //Тикер инструмента.
|
||
string class_code = 37; //Класс-код (секция торгов).
|
||
MoneyValue payment = 41; //Сумма операции.
|
||
MoneyValue price = 42; //Цена операции за 1 инструмент.
|
||
MoneyValue commission = 43; //Комиссия.
|
||
MoneyValue yield = 44; //Доходность.
|
||
Quotation yield_relative = 45; //Относительная доходность.
|
||
MoneyValue accrued_int = 46; //Накопленный купонный доход.
|
||
int64 quantity = 51; //Количество единиц инструмента.
|
||
int64 quantity_rest = 52; //Неисполненный остаток по сделке.
|
||
int64 quantity_done = 53; //Исполненный остаток.
|
||
google.protobuf.Timestamp cancel_date_time = 56; //Дата и время снятия заявки.
|
||
string cancel_reason = 57; //Причина отмены операции.
|
||
OperationItemTrades trades_info = 61; //Массив сделок.
|
||
string asset_uid = 64; //Идентификатор актива.
|
||
repeated ChildOperationItem child_operations = 65; //Массив дочерних операций.
|
||
}
|
||
|
||
//Массив с информацией о сделках.
|
||
message OperationItemTrades {
|
||
repeated OperationItemTrade trades = 6;
|
||
}
|
||
|
||
//Сделка по операции.
|
||
message OperationItemTrade {
|
||
string num = 1; //Номер сделки.
|
||
google.protobuf.Timestamp date = 6; //Дата сделки.
|
||
int64 quantity = 11; //Количество в единицах.
|
||
MoneyValue price = 16; //Цена.
|
||
MoneyValue yield = 21; //Доходность.
|
||
Quotation yield_relative = 22; //Относительная доходность.
|
||
}
|
||
|
||
//Запрос установки stream-соединения позиций.
|
||
message PositionsStreamRequest {
|
||
repeated string accounts = 1; //Массив идентификаторов счетов пользователя.
|
||
bool with_initial_positions = 3; //Получение состояния позиций на момент подключения.
|
||
PingDelaySettings ping_settings = 15; //Запрос настройки пинга.
|
||
}
|
||
|
||
//Информация по изменению позиций портфеля.
|
||
message PositionsStreamResponse {
|
||
oneof payload {
|
||
PositionsSubscriptionResult subscriptions = 1; //Объект результата подписки.
|
||
PositionData position = 2; //Объект стриминга позиций.
|
||
Ping ping = 3; //Проверка активности стрима.
|
||
PositionsResponse initial_positions = 5; //Текущие позиции.
|
||
}
|
||
}
|
||
|
||
//Объект результата подписки.
|
||
message PositionsSubscriptionResult {
|
||
repeated PositionsSubscriptionStatus accounts = 1; //Массив счетов клиента.
|
||
string tracking_id = 7; //Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id).
|
||
string stream_id = 8; //Идентификатор открытого соединения
|
||
}
|
||
|
||
//Счет клиента.
|
||
message PositionsSubscriptionStatus {
|
||
string account_id = 1; //Идентификатор счета.
|
||
PositionsAccountSubscriptionStatus subscription_status = 6; //Результат подписки.
|
||
}
|
||
|
||
//Результат подписки.
|
||
enum PositionsAccountSubscriptionStatus {
|
||
POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0; //Тип не определен.
|
||
POSITIONS_SUBSCRIPTION_STATUS_SUCCESS = 1; //Успешно.
|
||
POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2; //Счет не найден или недостаточно прав.
|
||
POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3; //Произошла ошибка.
|
||
}
|
||
|
||
//Данные о позиции портфеля.
|
||
message PositionData {
|
||
string account_id = 1; //Идентификатор счета.
|
||
repeated PositionsMoney money = 2; //Массив валютных позиций портфеля.
|
||
repeated PositionsSecurities securities = 3; //Список ценно-бумажных позиций портфеля.
|
||
repeated PositionsFutures futures = 4; //Список фьючерсов портфеля.
|
||
repeated PositionsOptions options = 5; //Список опционов портфеля.
|
||
google.protobuf.Timestamp date = 6; //Дата и время операции в формате UTC.
|
||
}
|
||
|
||
//Валютная позиция портфеля.
|
||
message PositionsMoney {
|
||
MoneyValue available_value = 1; //Доступное количество валютный позиций.
|
||
MoneyValue blocked_value = 2; //Заблокированное количество валютных позиций.
|
||
}
|
||
|
||
message ChildOperationItem {
|
||
string instrument_uid = 1; //Уникальный идентификатор инструмента.
|
||
MoneyValue payment = 2; //Сумма операции.
|
||
}
|
||
|
||
//Запрос установки stream-соединения операций.
|
||
message OperationsStreamRequest {
|
||
repeated string accounts = 1; //Массив идентификаторов счетов пользователя.
|
||
PingDelaySettings ping_settings = 15; //Запрос настройки пинга.
|
||
}
|
||
|
||
//Информация по операциям.
|
||
message OperationsStreamResponse {
|
||
oneof payload {
|
||
OperationsSubscriptionResult subscriptions = 1; //Объект результата подписки.
|
||
OperationData operation = 2; //Объект стриминга операций.
|
||
Ping ping = 3; //Проверка активности стрима.
|
||
}
|
||
}
|
||
|
||
//Объект результата подписки.
|
||
message OperationsSubscriptionResult {
|
||
repeated string accounts = 1; //Массив счетов клиента.
|
||
OperationsAccountSubscriptionStatus subscription_status = 2; //Результат подписки.
|
||
string tracking_id = 7; //Уникальный идентификатор запроса, подробнее: [tracking_id](/invest/intro/developer/protocols/grpc#tracking-id).
|
||
string stream_id = 8; //Идентификатор открытого соединения
|
||
}
|
||
|
||
//Результат подписки.
|
||
enum OperationsAccountSubscriptionStatus {
|
||
OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0; //Тип не определен.
|
||
OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS = 1; //Успешно.
|
||
OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2; //Счет не найден или недостаточно прав.
|
||
OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3; //Произошла ошибка.
|
||
}
|
||
|
||
//Данные об операции.
|
||
message OperationData {
|
||
string broker_account_id = 1; //Идентификатор счета.
|
||
string id = 2; //Номер поручения.
|
||
string parent_operation_id = 3; //Номер родительского поручения.
|
||
string name = 4; //Название инструмента.
|
||
google.protobuf.Timestamp date = 5; //Дата.
|
||
OperationType type = 6; //Тип операции.
|
||
OperationState state = 7; //Статус поручения.
|
||
string instrument_uid = 8; //Уникальный идентификатор инструмента.
|
||
string figi = 9; //FIGI-идентификатор инструмента.
|
||
string instrument_type = 10; //Тип инструмента.
|
||
InstrumentType instrument_kind = 11; //Тип инструмента.
|
||
string position_uid = 12; //Идентификатор позиции.
|
||
string ticker = 13; //Тикер инструмента.
|
||
string class_code = 14; //Класс-код (секция торгов).
|
||
MoneyValue payment = 15; //Сумма операции.
|
||
}
|