api.java-sdk-grpc-contract.1.6.source-code.operations.proto Maven / Gradle / Ivy
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 "common.proto";
service OperationsService {/*Сервис предназначен для получения: **1**. списка операций по счёту; **2**.
портфеля по счёту; **3**. позиций ценных бумаг на счёте; **4**.
доступного остатка для вывода средств; **5**. получения различных отчётов.*/
//Метод получения списка операций по счёту.При работе с данным методом необходимо учитывать
// [особенности взаимодействия](/investAPI/operations_problems) с данным методом.
rpc GetOperations(OperationsRequest) returns (OperationsResponse);
//Метод получения портфеля по счёту.
rpc GetPortfolio(PortfolioRequest) returns (PortfolioResponse);
//Метод получения списка позиций по счёту.
rpc GetPositions(PositionsRequest) returns (PositionsResponse);
//Метод получения доступного остатка для вывода средств.
rpc GetWithdrawLimits(WithdrawLimitsRequest) returns (WithdrawLimitsResponse);
//Метод получения брокерского отчёта.
rpc GetBrokerReport(BrokerReportRequest) returns (BrokerReportResponse);
//Метод получения отчёта "Справка о доходах за пределами РФ".
rpc GetDividendsForeignIssuer(GetDividendsForeignIssuerRequest) returns (GetDividendsForeignIssuerResponse);
//Метод получения списка операций по счёту с пагинацией. При работе с данным методом необходимо учитывать
// [особенности взаимодействия](/investAPI/operations_problems) с данным методом.
rpc GetOperationsByCursor(GetOperationsByCursorRequest) returns (GetOperationsByCursorResponse);
}
service OperationsStreamService {
//Server-side stream обновлений портфеля
rpc PortfolioStream(PortfolioStreamRequest) returns (stream PortfolioStreamResponse);
//Server-side stream обновлений информации по изменению позиций портфеля
rpc PositionsStream(PositionsStreamRequest) returns (stream PositionsStreamResponse);
}
//Запрос получения списка операций по счёту.
message OperationsRequest {
string account_id = 1; //Идентификатор счёта клиента.
google.protobuf.Timestamp from = 2; //Начало периода (по UTC).
google.protobuf.Timestamp to = 3; //Окончание периода (по UTC).
OperationState state = 4; //Статус запрашиваемых операций.
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; //Тип инструмента. Возможные значения: **bond** — облигация; **share** — акция; **currency** — валюта; **etf** — фонд; **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; //position_uid-идентификатора инструмента.
string instrument_uid = 18; //Уникальный идентификатор инструмента.
}
//Сделка по операции.
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; //Идентификатор счёта пользователя.
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; //Массив виртуальных позиций портфеля.
}
//Запрос позиций портфеля по счёту.
message PositionsRequest {
string account_id = 1; //Идентификатор счёта пользователя.
}
//Список позиций по счёту.
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; //Список опционов портфеля.
}
//Запрос доступного для вывода остатка.
message WithdrawLimitsRequest {
string account_id = 1; //Идентификатор счёта пользователя.
}
//Доступный для вывода остаток.
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; //position_uid-идентификатора инструмента
string instrument_uid = 25; //instrument_uid-идентификатора инструмента
MoneyValue var_margin = 26; //Вариационная маржа
Quotation expected_yield_fifo = 27; //Текущая рассчитанная доходность позиции.
}
message VirtualPortfolioPosition {
string position_uid = 1; //position_uid-идентификатора инструмента
string instrument_uid = 2; //instrument_uid-идентификатора инструмента
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. **Возможна задержка до секунды для пересчёта**.
}
//Баланс позиции ценной бумаги.
message PositionsSecurities {
string figi = 1; //Figi-идентификатор бумаги.
int64 blocked = 2; //Количество бумаг заблокированных выставленными заявками.
int64 balance = 3; //Текущий незаблокированный баланс.
string position_uid = 4; //Уникальный идентификатор позиции.
string instrument_uid = 5; //Уникальный идентификатор инструмента.
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; //Уникальный идентификатор инструмента.
}
//Баланс опциона.
message PositionsOptions {
string position_uid = 1; //Уникальный идентификатор позиции опциона.
string instrument_uid = 2; //Уникальный идентификатор инструмента.
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.protobuf.Timestamp from = 2; //Начало периода в часовом поясе UTC.
google.protobuf.Timestamp to = 3; //Окончание периода в часовом поясе UTC.
}
message GenerateBrokerReportResponse {
string task_id = 1; //Идентификатор задачи формирования брокерского отчёта.
}
message GetBrokerReportRequest {
string task_id = 1; //Идентификатор задачи формирования брокерского отчёта.
int32 page = 2; //Номер страницы отчета (начинается с 1), значение по умолчанию: 0.
}
message GetBrokerReportResponse {
repeated BrokerReport broker_report = 1;
int32 itemsCount = 2; //Количество записей в отчете.
int32 pagesCount = 3; //Количество страниц с данными отчета (начинается с 0).
int32 page = 4; //Текущая страница (начинается с 0).
}
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; // Экспирация
}
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.protobuf.Timestamp from = 2; //Начало периода (по UTC).
google.protobuf.Timestamp to = 3; //Окончание периода (по UTC).
}
// Объект запроса сформированного отчёта "Справка о доходах за пределами РФ".
message GetDividendsForeignIssuerReportRequest {
string task_id = 1; //Идентификатор задачи формирования отчёта.
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; //Массив идентификаторов счётов пользователя
}
//Информация по позициям и доходностям портфелей.
message PortfolioStreamResponse {
oneof payload {
PortfolioSubscriptionResult subscriptions = 1; //Объект результата подписки.
PortfolioResponse portfolio = 2; //Объект стриминга портфеля.
Ping ping = 3; //Проверка активности стрима.
}
}
//Объект результата подписки.
message PortfolioSubscriptionResult {
repeated AccountSubscriptionStatus accounts = 1; //Массив счетов клиента.
}
//Счет клиента.
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; //Идентификатор счёта клиента. Обязательный параметр для данного метода, остальные параметры опциональны.
string instrument_id = 2; //Идентификатор инструмента (Figi инструмента или uid инструмента)
google.protobuf.Timestamp from = 6; //Начало периода (по UTC).
google.protobuf.Timestamp to = 7; //Окончание периода (по UTC).
string cursor = 11; //Идентификатор элемента, с которого начать формировать ответ.
int32 limit = 12; //Лимит количества операций. По умолчанию устанавливается значение **100**, максимальное значение 1000.
repeated OperationType operation_types = 13; //Тип операции. Принимает значение из списка OperationType.
OperationState state = 14; //Статус запрашиваемых операций, возможные значения указаны в OperationState.
bool without_commissions = 15; //Флаг возвращать ли комиссии, по умолчанию false
bool without_trades = 16; //Флаг получения ответа без массива сделок.
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; //position_uid-идентификатора инструмента.
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; //Идентификатор актива
}
//Массив с информацией о сделках.
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; //Массив идентификаторов счётов пользователя
}
//Информация по изменению позиций портфеля.
message PositionsStreamResponse {
oneof payload {
PositionsSubscriptionResult subscriptions = 1; //Объект результата подписки.
PositionData position = 2; //Объект стриминга позиций.
Ping ping = 3; //Проверка активности стрима.
}
}
//Объект результата подписки.
message PositionsSubscriptionResult {
repeated PositionsSubscriptionStatus accounts = 1; //Массив счетов клиента.
}
//Счет клиента.
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; //Заблокированное количество валютный позиций.
}