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

647 lines
43 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/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; //Сумма операции.
}