UNPKG

@tinkoff/invest-js

Version:
1,036 lines (1,035 loc) 59.3 kB
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { type CallContext, type CallOptions } from "nice-grpc-common"; import { InstrumentType, MoneyValue, Ping, PingDelaySettings, Quotation } from "./common"; /** Статус запрашиваемых операций. */ export declare enum OperationState { /** OPERATION_STATE_UNSPECIFIED - Статус операции не определён. */ OPERATION_STATE_UNSPECIFIED = 0, /** OPERATION_STATE_EXECUTED - Исполнена частично или полностью. */ OPERATION_STATE_EXECUTED = 1, /** OPERATION_STATE_CANCELED - Отменена. */ OPERATION_STATE_CANCELED = 2, /** OPERATION_STATE_PROGRESS - Исполняется. */ OPERATION_STATE_PROGRESS = 3, UNRECOGNIZED = -1 } export declare function operationStateFromJSON(object: any): OperationState; export declare function operationStateToJSON(object: OperationState): string; /** Тип операции. */ export declare enum OperationType { /** OPERATION_TYPE_UNSPECIFIED - Тип операции не определён. */ OPERATION_TYPE_UNSPECIFIED = 0, /** OPERATION_TYPE_INPUT - Пополнение брокерского счёта. */ OPERATION_TYPE_INPUT = 1, /** OPERATION_TYPE_BOND_TAX - Удержание НДФЛ по купонам. */ OPERATION_TYPE_BOND_TAX = 2, /** OPERATION_TYPE_OUTPUT_SECURITIES - Вывод ЦБ. */ OPERATION_TYPE_OUTPUT_SECURITIES = 3, /** OPERATION_TYPE_OVERNIGHT - Доход по сделке РЕПО овернайт. */ OPERATION_TYPE_OVERNIGHT = 4, /** OPERATION_TYPE_TAX - Удержание налога. */ OPERATION_TYPE_TAX = 5, /** OPERATION_TYPE_BOND_REPAYMENT_FULL - Полное погашение облигаций. */ OPERATION_TYPE_BOND_REPAYMENT_FULL = 6, /** OPERATION_TYPE_SELL_CARD - Продажа ЦБ с карты. */ OPERATION_TYPE_SELL_CARD = 7, /** OPERATION_TYPE_DIVIDEND_TAX - Удержание налога по дивидендам. */ OPERATION_TYPE_DIVIDEND_TAX = 8, /** OPERATION_TYPE_OUTPUT - Вывод денежных средств. */ OPERATION_TYPE_OUTPUT = 9, /** OPERATION_TYPE_BOND_REPAYMENT - Частичное погашение облигаций. */ OPERATION_TYPE_BOND_REPAYMENT = 10, /** OPERATION_TYPE_TAX_CORRECTION - Корректировка налога. */ OPERATION_TYPE_TAX_CORRECTION = 11, /** OPERATION_TYPE_SERVICE_FEE - Удержание комиссии за обслуживание брокерского счёта. */ OPERATION_TYPE_SERVICE_FEE = 12, /** OPERATION_TYPE_BENEFIT_TAX - Удержание налога за материальную выгоду. */ OPERATION_TYPE_BENEFIT_TAX = 13, /** OPERATION_TYPE_MARGIN_FEE - Удержание комиссии за непокрытую позицию. */ OPERATION_TYPE_MARGIN_FEE = 14, /** OPERATION_TYPE_BUY - Покупка ЦБ. */ OPERATION_TYPE_BUY = 15, /** OPERATION_TYPE_BUY_CARD - Покупка ЦБ с карты. */ OPERATION_TYPE_BUY_CARD = 16, /** OPERATION_TYPE_INPUT_SECURITIES - Перевод ценных бумаг из другого депозитария. */ OPERATION_TYPE_INPUT_SECURITIES = 17, /** OPERATION_TYPE_SELL_MARGIN - Продажа в результате Margin-call. */ OPERATION_TYPE_SELL_MARGIN = 18, /** OPERATION_TYPE_BROKER_FEE - Удержание комиссии за операцию. */ OPERATION_TYPE_BROKER_FEE = 19, /** OPERATION_TYPE_BUY_MARGIN - Покупка в результате Margin-call. */ OPERATION_TYPE_BUY_MARGIN = 20, /** OPERATION_TYPE_DIVIDEND - Выплата дивидендов. */ OPERATION_TYPE_DIVIDEND = 21, /** OPERATION_TYPE_SELL - Продажа ЦБ. */ OPERATION_TYPE_SELL = 22, /** OPERATION_TYPE_COUPON - Выплата купонов. */ OPERATION_TYPE_COUPON = 23, /** OPERATION_TYPE_SUCCESS_FEE - Удержание комиссии SuccessFee. */ OPERATION_TYPE_SUCCESS_FEE = 24, /** OPERATION_TYPE_DIVIDEND_TRANSFER - Передача дивидендного дохода. */ OPERATION_TYPE_DIVIDEND_TRANSFER = 25, /** OPERATION_TYPE_ACCRUING_VARMARGIN - Зачисление вариационной маржи. */ OPERATION_TYPE_ACCRUING_VARMARGIN = 26, /** OPERATION_TYPE_WRITING_OFF_VARMARGIN - Списание вариационной маржи. */ OPERATION_TYPE_WRITING_OFF_VARMARGIN = 27, /** OPERATION_TYPE_DELIVERY_BUY - Покупка в рамках экспирации фьючерсного контракта. */ OPERATION_TYPE_DELIVERY_BUY = 28, /** OPERATION_TYPE_DELIVERY_SELL - Продажа в рамках экспирации фьючерсного контракта. */ OPERATION_TYPE_DELIVERY_SELL = 29, /** OPERATION_TYPE_TRACK_MFEE - Комиссия за управление по счёту автоследования. */ OPERATION_TYPE_TRACK_MFEE = 30, /** OPERATION_TYPE_TRACK_PFEE - Комиссия за результат по счёту автоследования. */ OPERATION_TYPE_TRACK_PFEE = 31, /** OPERATION_TYPE_TAX_PROGRESSIVE - Удержание налога по ставке 15%. */ OPERATION_TYPE_TAX_PROGRESSIVE = 32, /** OPERATION_TYPE_BOND_TAX_PROGRESSIVE - Удержание налога по купонам по ставке 15%. */ OPERATION_TYPE_BOND_TAX_PROGRESSIVE = 33, /** OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE - Удержание налога по дивидендам по ставке 15%. */ OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE = 34, /** OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE - Удержание налога за материальную выгоду по ставке 15%. */ OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE = 35, /** OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE - Корректировка налога по ставке 15%. */ OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE = 36, /** OPERATION_TYPE_TAX_REPO_PROGRESSIVE - Удержание налога за возмещение по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_PROGRESSIVE = 37, /** OPERATION_TYPE_TAX_REPO - Удержание налога за возмещение по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO = 38, /** OPERATION_TYPE_TAX_REPO_HOLD - Удержание налога по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO_HOLD = 39, /** OPERATION_TYPE_TAX_REPO_REFUND - Возврат налога по сделкам РЕПО. */ OPERATION_TYPE_TAX_REPO_REFUND = 40, /** OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE - Удержание налога по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE = 41, /** OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE - Возврат налога по сделкам РЕПО по ставке 15%. */ OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE = 42, /** OPERATION_TYPE_DIV_EXT - Выплата дивидендов на карту. */ OPERATION_TYPE_DIV_EXT = 43, /** OPERATION_TYPE_TAX_CORRECTION_COUPON - Корректировка налога по купонам. */ OPERATION_TYPE_TAX_CORRECTION_COUPON = 44, /** OPERATION_TYPE_CASH_FEE - Комиссия за валютный остаток. */ OPERATION_TYPE_CASH_FEE = 45, /** OPERATION_TYPE_OUT_FEE - Комиссия за вывод валюты с брокерского счёта. */ OPERATION_TYPE_OUT_FEE = 46, /** OPERATION_TYPE_OUT_STAMP_DUTY - Гербовый сбор. */ OPERATION_TYPE_OUT_STAMP_DUTY = 47, /** OPERATION_TYPE_OUTPUT_SWIFT - SWIFT-перевод. */ OPERATION_TYPE_OUTPUT_SWIFT = 50, /** OPERATION_TYPE_INPUT_SWIFT - SWIFT-перевод. */ OPERATION_TYPE_INPUT_SWIFT = 51, /** OPERATION_TYPE_OUTPUT_ACQUIRING - Перевод на карту. */ OPERATION_TYPE_OUTPUT_ACQUIRING = 53, /** OPERATION_TYPE_INPUT_ACQUIRING - Перевод с карты. */ OPERATION_TYPE_INPUT_ACQUIRING = 54, /** OPERATION_TYPE_OUTPUT_PENALTY - Комиссия за вывод средств. */ OPERATION_TYPE_OUTPUT_PENALTY = 55, /** OPERATION_TYPE_ADVICE_FEE - Списание оплаты за сервис Советов. */ OPERATION_TYPE_ADVICE_FEE = 56, /** OPERATION_TYPE_TRANS_IIS_BS - Перевод ценных бумаг с ИИС на брокерский счёт. */ OPERATION_TYPE_TRANS_IIS_BS = 57, /** OPERATION_TYPE_TRANS_BS_BS - Перевод ценных бумаг с одного брокерского счёта на другой. */ OPERATION_TYPE_TRANS_BS_BS = 58, /** OPERATION_TYPE_OUT_MULTI - Вывод денежных средств со счёта. */ OPERATION_TYPE_OUT_MULTI = 59, /** OPERATION_TYPE_INP_MULTI - Пополнение денежных средств со счёта. */ OPERATION_TYPE_INP_MULTI = 60, /** OPERATION_TYPE_OVER_PLACEMENT - Размещение биржевого овернайта. */ OPERATION_TYPE_OVER_PLACEMENT = 61, /** OPERATION_TYPE_OVER_COM - Списание комиссии. */ OPERATION_TYPE_OVER_COM = 62, /** OPERATION_TYPE_OVER_INCOME - Доход от оверанайта. */ OPERATION_TYPE_OVER_INCOME = 63, /** OPERATION_TYPE_OPTION_EXPIRATION - Экспирация опциона. */ OPERATION_TYPE_OPTION_EXPIRATION = 64, /** OPERATION_TYPE_FUTURE_EXPIRATION - Экспирация фьючерса. */ OPERATION_TYPE_FUTURE_EXPIRATION = 65, UNRECOGNIZED = -1 } export declare function operationTypeFromJSON(object: any): OperationType; export declare function operationTypeToJSON(object: OperationType): string; /** Результат подписки. */ export declare enum PortfolioSubscriptionStatus { /** PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED - Тип не определён. */ PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS = 1, /** PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND - Счёт не найден или недостаточно прав. */ PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2, /** PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR - Произошла ошибка. */ PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3, UNRECOGNIZED = -1 } export declare function portfolioSubscriptionStatusFromJSON(object: any): PortfolioSubscriptionStatus; export declare function portfolioSubscriptionStatusToJSON(object: PortfolioSubscriptionStatus): string; /** Результат подписки. */ export declare enum PositionsAccountSubscriptionStatus { /** POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED - Тип не определён. */ POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** POSITIONS_SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ POSITIONS_SUBSCRIPTION_STATUS_SUCCESS = 1, /** POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND - Счёт не найден или недостаточно прав. */ POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2, /** POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR - Произошла ошибка. */ POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3, UNRECOGNIZED = -1 } export declare function positionsAccountSubscriptionStatusFromJSON(object: any): PositionsAccountSubscriptionStatus; export declare function positionsAccountSubscriptionStatusToJSON(object: PositionsAccountSubscriptionStatus): string; /** Запрос получения списка операций по счёту. */ export interface OperationsRequest { /** Идентификатор счёта клиента. */ accountId: string; /** Начало периода по UTC. */ from?: Date | undefined; /** Окончание периода по UTC. */ to?: Date | undefined; /** Статус запрашиваемых операций. */ state?: OperationState | undefined; /** FIGI-идентификатор инструмента для фильтрации. */ figi?: string | undefined; } /** Список операций. */ export interface OperationsResponse { /** Массив операций. */ operations: Operation[]; } /** Данные по операции. */ export interface Operation { /** Идентификатор операции. */ id: string; /** Идентификатор родительской операции. */ parentOperationId: string; /** Валюта операции. */ currency: string; /** Сумма операции. */ payment: MoneyValue | undefined; /** Цена операции за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ price: MoneyValue | undefined; /** Статус операции. */ state: OperationState; /** Количество единиц инструмента. */ quantity: number; /** Неисполненный остаток по сделке. */ quantityRest: number; /** FIGI-идентификатор инструмента, связанного с операцией. */ figi: string; /** Тип инструмента. Возможные значения: </br></br>`bond` — облигация; </br>`share` — акция; </br>`currency` — валюта; </br>`etf` — фонд; </br>`futures` — фьючерс. */ instrumentType: string; /** Дата и время операции в формате часовом поясе UTC. */ date: Date | undefined; /** Текстовое описание типа операции. */ type: string; /** Тип операции. */ operationType: OperationType; /** Массив сделок. */ trades: OperationTrade[]; /** Идентификатор актива */ assetUid: string; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Массив дочерних операций. */ childOperations: ChildOperationItem[]; } /** Сделка по операции. */ export interface OperationTrade { /** Идентификатор сделки. */ tradeId: string; /** Дата и время сделки по UTC. */ dateTime: Date | undefined; /** Количество инструментов. */ quantity: number; /** Цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ price: MoneyValue | undefined; } /** Запрос получения текущего портфеля по счёту. */ export interface PortfolioRequest { /** Идентификатор счёта пользователя. */ accountId: string; /** Валюта, в которой нужно рассчитать портфель. */ currency?: PortfolioRequest_CurrencyRequest | undefined; } export declare enum PortfolioRequest_CurrencyRequest { /** RUB - Рубли */ RUB = 0, /** USD - Доллары */ USD = 1, /** EUR - Евро */ EUR = 2, UNRECOGNIZED = -1 } export declare function portfolioRequest_CurrencyRequestFromJSON(object: any): PortfolioRequest_CurrencyRequest; export declare function portfolioRequest_CurrencyRequestToJSON(object: PortfolioRequest_CurrencyRequest): string; /** Текущий портфель по счёту. */ export interface PortfolioResponse { /** Общая стоимость акций в портфеле. */ totalAmountShares: MoneyValue | undefined; /** Общая стоимость облигаций в портфеле. */ totalAmountBonds: MoneyValue | undefined; /** Общая стоимость фондов в портфеле. */ totalAmountEtf: MoneyValue | undefined; /** Общая стоимость валют в портфеле. */ totalAmountCurrencies: MoneyValue | undefined; /** Общая стоимость фьючерсов в портфеле. */ totalAmountFutures: MoneyValue | undefined; /** Текущая относительная доходность портфеля в %. */ expectedYield: Quotation | undefined; /** Список позиций портфеля. */ positions: PortfolioPosition[]; /** Идентификатор счёта пользователя. */ accountId: string; /** Общая стоимость опционов в портфеле. */ totalAmountOptions: MoneyValue | undefined; /** Общая стоимость структурных нот в портфеле. */ totalAmountSp: MoneyValue | undefined; /** Общая стоимость портфеля. */ totalAmountPortfolio: MoneyValue | undefined; /** Массив виртуальных позиций портфеля. */ virtualPositions: VirtualPortfolioPosition[]; /** Рассчитанная доходность портфеля за день в рублях */ dailyYield: MoneyValue | undefined; /** Относительная доходность в день в % */ dailyYieldRelative: Quotation | undefined; } /** Запрос позиций портфеля по счёту. */ export interface PositionsRequest { /** Идентификатор счёта пользователя. */ accountId: string; } /** Список позиций по счёту. */ export interface PositionsResponse { /** Массив валютных позиций портфеля. */ money: MoneyValue[]; /** Массив заблокированных валютных позиций портфеля. */ blocked: MoneyValue[]; /** Список ценно-бумажных позиций портфеля. */ securities: PositionsSecurities[]; /** Признак идущей выгрузки лимитов в данный момент. */ limitsLoadingInProgress: boolean; /** Список фьючерсов портфеля. */ futures: PositionsFutures[]; /** Список опционов портфеля. */ options: PositionsOptions[]; /** Идентификатор счёта пользователя. */ accountId: string; } /** Запрос доступного остатка для вывода. */ export interface WithdrawLimitsRequest { /** Идентификатор счёта пользователя. */ accountId: string; } /** Доступный остаток для вывода. */ export interface WithdrawLimitsResponse { /** Массив валютных позиций портфеля. */ money: MoneyValue[]; /** Массив заблокированных валютных позиций портфеля. */ blocked: MoneyValue[]; /** Заблокировано под гарантийное обеспечение фьючерсов. */ blockedGuarantee: MoneyValue[]; } /** Позиции портфеля. */ export interface PortfolioPosition { /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Количество инструмента в портфеле в штуках. */ quantity: Quotation | undefined; /** Средневзвешенная цена позиции. Для пересчёта возможна задержка до одной секунды. */ averagePositionPrice: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYield: Quotation | undefined; /** Текущий НКД. */ currentNkd: MoneyValue | undefined; /** * Deprecated Средняя цена позиции в пунктах (для фьючерсов). Для пересчёта возможна задержка до одной секунды. * * @deprecated */ averagePositionPricePt: Quotation | undefined; /** Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ currentPrice: MoneyValue | undefined; /** Средняя цена позиции по методу FIFO. Для пересчёта возможна задержка до одной секунды. */ averagePositionPriceFifo: MoneyValue | undefined; /** * Deprecated Количество лотов в портфеле. * * @deprecated */ quantityLots: Quotation | undefined; /** Заблокировано на бирже. */ blocked: boolean; /** Количество бумаг, заблокированных выставленными заявками. */ blockedLots: Quotation | undefined; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Вариационная маржа. */ varMargin: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYieldFifo: Quotation | undefined; /** Рассчитанная доходность портфеля за день */ dailyYield: MoneyValue | undefined; } export interface VirtualPortfolioPosition { /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** FIGI-идентификатор инструмента. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Количество инструмента в портфеле в штуках. */ quantity: Quotation | undefined; /** Средневзвешенная цена позиции. Для пересчёта возможна задержка до одной секунды. */ averagePositionPrice: MoneyValue | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYield: Quotation | undefined; /** Текущая рассчитанная доходность позиции. */ expectedYieldFifo: Quotation | undefined; /** Дата, до которой нужно продать виртуальные бумаги. После этой даты виртуальная позиция «сгораетт». */ expireDate: Date | undefined; /** Текущая цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */ currentPrice: MoneyValue | undefined; /** Средняя цена позиции по методу FIFO. Для пересчёта возможна задержка до одной секунды. */ averagePositionPriceFifo: MoneyValue | undefined; /** Рассчитанная доходность портфеля за день */ dailyYield: MoneyValue | undefined; } /** Баланс позиции ценной бумаги. */ export interface PositionsSecurities { /** FIGI-идентификатор бумаги. */ figi: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Заблокировано на бирже. */ exchangeBlocked: boolean; /** Тип инструмента. */ instrumentType: string; } /** Баланс фьючерса. */ export interface PositionsFutures { /** FIGI-идентификатор фьючерса. */ figi: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; /** Уникальный идентификатор позиции. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; } /** Баланс опциона. */ export interface PositionsOptions { /** Уникальный идентификатор позиции опциона. */ positionUid: string; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Количество бумаг, заблокированных выставленными заявками. */ blocked: number; /** Текущий незаблокированный баланс. */ balance: number; } export interface BrokerReportRequest { generateBrokerReportRequest?: GenerateBrokerReportRequest | undefined; getBrokerReportRequest?: GetBrokerReportRequest | undefined; } export interface BrokerReportResponse { generateBrokerReportResponse?: GenerateBrokerReportResponse | undefined; getBrokerReportResponse?: GetBrokerReportResponse | undefined; } export interface GenerateBrokerReportRequest { /** Идентификатор счёта клиента. */ accountId: string; /** Начало периода по UTC. */ from: Date | undefined; /** Окончание периода по UTC. */ to: Date | undefined; } export interface GenerateBrokerReportResponse { /** Идентификатор задачи формирования брокерского отчёта. */ taskId: string; } export interface GetBrokerReportRequest { /** Идентификатор задачи формирования брокерского отчёта. */ taskId: string; /** Номер страницы отчёта, начинается с 1. Значение по умолчанию — 0. */ page?: number | undefined; } export interface GetBrokerReportResponse { brokerReport: BrokerReport[]; /** Количество записей в отчёте. */ itemsCount: number; /** Количество страниц с данными отчёта, начинается с 0. */ pagesCount: number; /** Текущая страница, начинается с 0. */ page: number; } export interface BrokerReport { /** Номер сделки. */ tradeId: string; /** Номер поручения. */ orderId: string; /** FIGI-идентификаторинструмента. */ figi: string; /** Признак исполнения. */ executeSign: string; /** Дата и время заключения по UTC. */ tradeDatetime: Date | undefined; /** Торговая площадка. */ exchange: string; /** Режим торгов. */ classCode: string; /** Вид сделки. */ direction: string; /** Сокращённое наименование актива. */ name: string; /** Код актива. */ ticker: string; /** Цена за единицу. */ price: MoneyValue | undefined; /** Количество. */ quantity: number; /** Сумма без НКД. */ orderAmount: MoneyValue | undefined; /** НКД. */ aciValue: Quotation | undefined; /** Сумма сделки. */ totalOrderAmount: MoneyValue | undefined; /** Комиссия брокера. */ brokerCommission: MoneyValue | undefined; /** Комиссия биржи. */ exchangeCommission: MoneyValue | undefined; /** Комиссия клирингового центра. */ exchangeClearingCommission: MoneyValue | undefined; /** Ставка РЕПО, %. */ repoRate: Quotation | undefined; /** Контрагент или брокерарокер. */ party: string; /** Дата расчётов по UTC. */ clearValueDate: Date | undefined; /** Дата поставки по UTC. */ secValueDate: Date | undefined; /** Статус брокера. */ brokerStatus: string; /** Тип договора. */ separateAgreementType: string; /** Номер договора. */ separateAgreementNumber: string; /** Дата договора. */ separateAgreementDate: string; /** Тип расчёта по сделке. */ deliveryType: string; } export interface GetDividendsForeignIssuerRequest { /** Объект запроса формирования отчёта. */ generateDivForeignIssuerReport?: GenerateDividendsForeignIssuerReportRequest | undefined; /** Объект запроса сформированного отчёта. */ getDivForeignIssuerReport?: GetDividendsForeignIssuerReportRequest | undefined; } export interface GetDividendsForeignIssuerResponse { /** Объект результата задачи запуска формирования отчёта. */ generateDivForeignIssuerReportResponse?: GenerateDividendsForeignIssuerReportResponse | undefined; /** Отчёт «Справка о доходах за пределами РФ». */ divForeignIssuerReport?: GetDividendsForeignIssuerReportResponse | undefined; } /** Объект запроса формирования отчёта «Справка о доходах за пределами РФ». */ export interface GenerateDividendsForeignIssuerReportRequest { /** Идентификатор счёта клиента. */ accountId: string; /** Начало периода по UTC. */ from: Date | undefined; /** Окончание периода по UTC. Как правило, можно сформировать отчёт по дату на несколько дней меньше текущей. Начало и окончание периода должны быть в рамках одного календарного года. */ to: Date | undefined; } /** Объект запроса сформированного отчёта «Справка о доходах за пределами РФ». */ export interface GetDividendsForeignIssuerReportRequest { /** Идентификатор задачи формирования отчёта. */ taskId: string; /** Номер страницы отчета (начинается с 0), значение по умолчанию: 0. */ page?: number | undefined; } /** Объект результата задачи запуска формирования отчёта «Справка о доходах за пределами РФ». */ export interface GenerateDividendsForeignIssuerReportResponse { /** Идентификатор задачи формирования отчёта. */ taskId: string; } export interface GetDividendsForeignIssuerReportResponse { dividendsForeignIssuerReport: DividendsForeignIssuerReport[]; /** Количество записей в отчёте. */ itemsCount: number; /** Количество страниц с данными отчёта, начинается с 0. */ pagesCount: number; /** Текущая страница, начинается с 0. */ page: number; } /** Отчёт «Справка о доходах за пределами РФ». */ export interface DividendsForeignIssuerReport { /** Дата фиксации реестра. */ recordDate: Date | undefined; /** Дата выплаты. */ paymentDate: Date | undefined; /** Наименование ценной бумаги. */ securityName: string; /** ISIN-идентификатор ценной бумаги. */ isin: string; /** Страна эмитента. Для депозитарных расписок указывается страна эмитента базового актива. */ issuerCountry: string; /** Количество ценных бумаг. */ quantity: number; /** Выплаты на одну бумагу */ dividend: Quotation | undefined; /** Комиссия внешних платёжных агентов. */ externalCommission: Quotation | undefined; /** Сумма до удержания налога. */ dividendGross: Quotation | undefined; /** Сумма налога, удержанного агентом. */ tax: Quotation | undefined; /** Итоговая сумма выплаты. */ dividendAmount: Quotation | undefined; /** Валюта. */ currency: string; } /** Запрос установки stream-соединения. */ export interface PortfolioStreamRequest { /** Массив идентификаторов счётов пользователя. */ accounts: string[]; /** Запрос настройки пинга. */ pingSettings: PingDelaySettings | undefined; } /** Информация по позициям и доходностям портфелей. */ export interface PortfolioStreamResponse { /** Объект результата подписки. */ subscriptions?: PortfolioSubscriptionResult | undefined; /** Объект стриминга портфеля. */ portfolio?: PortfolioResponse | undefined; /** Проверка активности стрима. */ ping?: Ping | undefined; } /** Объект результата подписки. */ export interface PortfolioSubscriptionResult { /** Массив счетов клиента. */ accounts: AccountSubscriptionStatus[]; /** Уникальный идентификатор запроса, подробнее: [tracking_id](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Идентификатор открытого соединения */ streamId: string; } /** Счёт клиента. */ export interface AccountSubscriptionStatus { /** Идентификатор счёта. */ accountId: string; /** Результат подписки. */ subscriptionStatus: PortfolioSubscriptionStatus; } /** Запрос списка операций по счёту с пагинацией. */ export interface GetOperationsByCursorRequest { /** Идентификатор счёта клиента, обязательный параметр. Остальные параметры опциональны. */ accountId: string; /** Идентификатор инструмента — FIGI или UID инструмента. */ instrumentId?: string | undefined; /** Начало периода по UTC. */ from?: Date | undefined; /** Окончание периода по UTC. */ to?: Date | undefined; /** Идентификатор элемента, с которого начать формировать ответ. */ cursor?: string | undefined; /** Лимит количества операций. По умолчанию — `100`, максимальное значение — `1000`. */ limit?: number | undefined; /** Тип операции. Принимает значение из списка `OperationType`. */ operationTypes: OperationType[]; /** Статус запрашиваемых операций. Возможные значения указаны в `OperationState`. */ state?: OperationState | undefined; /** Флаг возврата комиссии. По умолчанию — `false`. */ withoutCommissions?: boolean | undefined; /** Флаг получения ответа без массива сделок. */ withoutTrades?: boolean | undefined; /** Флаг показа overnight операций. */ withoutOvernights?: boolean | undefined; } /** Список операций по счёту с пагинацией. */ export interface GetOperationsByCursorResponse { /** Признак, есть ли следующий элемент. */ hasNext: boolean; /** Следующий курсор. */ nextCursor: string; /** Список операций. */ items: OperationItem[]; } /** Данные об операции. */ export interface OperationItem { /** Курсор. */ cursor: string; /** Номер счёта клиента. */ brokerAccountId: string; /** Идентификатор операции, может меняться с течением времени. */ id: string; /** Идентификатор родительской операции. Может измениться, если изменился ID родительской операции. */ parentOperationId: string; /** Название операции. */ name: string; /** Дата поручения. */ date: Date | undefined; /** Тип операции. */ type: OperationType; /** Описание операции. */ description: string; /** Статус поручения. */ state: OperationState; /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** FIGI. */ figi: string; /** Тип инструмента. */ instrumentType: string; /** Тип инструмента. */ instrumentKind: InstrumentType; /** Уникальный идентификатор позиции. */ positionUid: string; /** Сумма операции. */ payment: MoneyValue | undefined; /** Цена операции за 1 инструмент. */ price: MoneyValue | undefined; /** Комиссия. */ commission: MoneyValue | undefined; /** Доходность. */ yield: MoneyValue | undefined; /** Относительная доходность. */ yieldRelative: Quotation | undefined; /** Накопленный купонный доход. */ accruedInt: MoneyValue | undefined; /** Количество единиц инструмента. */ quantity: number; /** Неисполненный остаток по сделке. */ quantityRest: number; /** Исполненный остаток. */ quantityDone: number; /** Дата и время снятия заявки. */ cancelDateTime: Date | undefined; /** Причина отмены операции. */ cancelReason: string; /** Массив сделок. */ tradesInfo: OperationItemTrades | undefined; /** Идентификатор актива. */ assetUid: string; /** Массив дочерних операций. */ childOperations: ChildOperationItem[]; } /** Массив с информацией о сделках. */ export interface OperationItemTrades { trades: OperationItemTrade[]; } /** Сделка по операции. */ export interface OperationItemTrade { /** Номер сделки. */ num: string; /** Дата сделки. */ date: Date | undefined; /** Количество в единицах. */ quantity: number; /** Цена. */ price: MoneyValue | undefined; /** Доходность. */ yield: MoneyValue | undefined; /** Относительная доходность. */ yieldRelative: Quotation | undefined; } /** Запрос установки stream-соединения позиций. */ export interface PositionsStreamRequest { /** Массив идентификаторов счётов пользователя. */ accounts: string[]; /** Получение состояния позиций на момент подключения. */ withInitialPositions: boolean; /** Запрос настройки пинга. */ pingSettings: PingDelaySettings | undefined; } /** Информация по изменению позиций портфеля. */ export interface PositionsStreamResponse { /** Объект результата подписки. */ subscriptions?: PositionsSubscriptionResult | undefined; /** Объект стриминга позиций. */ position?: PositionData | undefined; /** Проверка активности стрима. */ ping?: Ping | undefined; /** Текущие позиции. */ initialPositions?: PositionsResponse | undefined; } /** Объект результата подписки. */ export interface PositionsSubscriptionResult { /** Массив счетов клиента. */ accounts: PositionsSubscriptionStatus[]; /** Уникальный идентификатор запроса, подробнее: [tracking_id](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Идентификатор открытого соединения */ streamId: string; } /** Счёт клиента. */ export interface PositionsSubscriptionStatus { /** Идентификатор счёта. */ accountId: string; /** Результат подписки. */ subscriptionStatus: PositionsAccountSubscriptionStatus; } /** Данные о позиции портфеля. */ export interface PositionData { /** Идентификатор счёта. */ accountId: string; /** Массив валютных позиций портфеля. */ money: PositionsMoney[]; /** Список ценно-бумажных позиций портфеля. */ securities: PositionsSecurities[]; /** Список фьючерсов портфеля. */ futures: PositionsFutures[]; /** Список опционов портфеля. */ options: PositionsOptions[]; /** Дата и время операции в формате UTC. */ date: Date | undefined; } /** Валютная позиция портфеля. */ export interface PositionsMoney { /** Доступное количество валютный позиций. */ availableValue: MoneyValue | undefined; /** Заблокированное количество валютных позиций. */ blockedValue: MoneyValue | undefined; } export interface ChildOperationItem { /** Уникальный идентификатор инструмента. */ instrumentUid: string; /** Сумма операции. */ payment: MoneyValue | undefined; } export declare const OperationsRequest: OperationsUtils.MessageFns<OperationsRequest>; export declare const OperationsResponse: OperationsUtils.MessageFns<OperationsResponse>; export declare const Operation: OperationsUtils.MessageFns<Operation>; export declare const OperationTrade: OperationsUtils.MessageFns<OperationTrade>; export declare const PortfolioRequest: OperationsUtils.MessageFns<PortfolioRequest>; export declare const PortfolioResponse: OperationsUtils.MessageFns<PortfolioResponse>; export declare const PositionsRequest: OperationsUtils.MessageFns<PositionsRequest>; export declare const PositionsResponse: OperationsUtils.MessageFns<PositionsResponse>; export declare const WithdrawLimitsRequest: OperationsUtils.MessageFns<WithdrawLimitsRequest>; export declare const WithdrawLimitsResponse: OperationsUtils.MessageFns<WithdrawLimitsResponse>; export declare const PortfolioPosition: OperationsUtils.MessageFns<PortfolioPosition>; export declare const VirtualPortfolioPosition: OperationsUtils.MessageFns<VirtualPortfolioPosition>; export declare const PositionsSecurities: OperationsUtils.MessageFns<PositionsSecurities>; export declare const PositionsFutures: OperationsUtils.MessageFns<PositionsFutures>; export declare const PositionsOptions: OperationsUtils.MessageFns<PositionsOptions>; export declare const BrokerReportRequest: OperationsUtils.MessageFns<BrokerReportRequest>; export declare const BrokerReportResponse: OperationsUtils.MessageFns<BrokerReportResponse>; export declare const GenerateBrokerReportRequest: OperationsUtils.MessageFns<GenerateBrokerReportRequest>; export declare const GenerateBrokerReportResponse: OperationsUtils.MessageFns<GenerateBrokerReportResponse>; export declare const GetBrokerReportRequest: OperationsUtils.MessageFns<GetBrokerReportRequest>; export declare const GetBrokerReportResponse: OperationsUtils.MessageFns<GetBrokerReportResponse>; export declare const BrokerReport: OperationsUtils.MessageFns<BrokerReport>; export declare const GetDividendsForeignIssuerRequest: OperationsUtils.MessageFns<GetDividendsForeignIssuerRequest>; export declare const GetDividendsForeignIssuerResponse: OperationsUtils.MessageFns<GetDividendsForeignIssuerResponse>; export declare const GenerateDividendsForeignIssuerReportRequest: OperationsUtils.MessageFns<GenerateDividendsForeignIssuerReportRequest>; export declare const GetDividendsForeignIssuerReportRequest: OperationsUtils.MessageFns<GetDividendsForeignIssuerReportRequest>; export declare const GenerateDividendsForeignIssuerReportResponse: OperationsUtils.MessageFns<GenerateDividendsForeignIssuerReportResponse>; export declare const GetDividendsForeignIssuerReportResponse: OperationsUtils.MessageFns<GetDividendsForeignIssuerReportResponse>; export declare const DividendsForeignIssuerReport: OperationsUtils.MessageFns<DividendsForeignIssuerReport>; export declare const PortfolioStreamRequest: OperationsUtils.MessageFns<PortfolioStreamRequest>; export declare const PortfolioStreamResponse: OperationsUtils.MessageFns<PortfolioStreamResponse>; export declare const PortfolioSubscriptionResult: OperationsUtils.MessageFns<PortfolioSubscriptionResult>; export declare const AccountSubscriptionStatus: OperationsUtils.MessageFns<AccountSubscriptionStatus>; export declare const GetOperationsByCursorRequest: OperationsUtils.MessageFns<GetOperationsByCursorRequest>; export declare const GetOperationsByCursorResponse: OperationsUtils.MessageFns<GetOperationsByCursorResponse>; export declare const OperationItem: OperationsUtils.MessageFns<OperationItem>; export declare const OperationItemTrades: OperationsUtils.MessageFns<OperationItemTrades>; export declare const OperationItemTrade: OperationsUtils.MessageFns<OperationItemTrade>; export declare const PositionsStreamRequest: OperationsUtils.MessageFns<PositionsStreamRequest>; export declare const PositionsStreamResponse: OperationsUtils.MessageFns<PositionsStreamResponse>; export declare const PositionsSubscriptionResult: OperationsUtils.MessageFns<PositionsSubscriptionResult>; export declare const PositionsSubscriptionStatus: OperationsUtils.MessageFns<PositionsSubscriptionStatus>; export declare const PositionData: OperationsUtils.MessageFns<PositionData>; export declare const PositionsMoney: OperationsUtils.MessageFns<PositionsMoney>; export declare const ChildOperationItem: OperationsUtils.MessageFns<ChildOperationItem>; /** * С помощью методов сервиса можно получить:</br></br> **1**. Список операций по счёту.</br> **2**. * Портфель по счёту.</br> **3**. Позиции ценных бумаг на счёте.</br> **4**. * Доступный остаток для вывода средств.</br> **5**. Различные отчёты. */ export type OperationsServiceDefinition = typeof OperationsServiceDefinition; export declare const OperationsServiceDefinition: { readonly name: "OperationsService"; readonly fullName: "tinkoff.public.invest.api.contract.v1.OperationsService"; readonly methods: { /** * Получить список операций по счёту. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ readonly getOperations: { readonly name: "GetOperations"; readonly requestType: OperationsUtils.MessageFns<OperationsRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<OperationsResponse>; readonly responseStream: false; readonly options: {}; }; /** Получить портфель по счёту. */ readonly getPortfolio: { readonly name: "GetPortfolio"; readonly requestType: OperationsUtils.MessageFns<PortfolioRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<PortfolioResponse>; readonly responseStream: false; readonly options: {}; }; /** Получить список позиций по счёту. */ readonly getPositions: { readonly name: "GetPositions"; readonly requestType: OperationsUtils.MessageFns<PositionsRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<PositionsResponse>; readonly responseStream: false; readonly options: {}; }; /** Получить доступный остаток для вывода средств. */ readonly getWithdrawLimits: { readonly name: "GetWithdrawLimits"; readonly requestType: OperationsUtils.MessageFns<WithdrawLimitsRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<WithdrawLimitsResponse>; readonly responseStream: false; readonly options: {}; }; /** Получить брокерский отчёт. */ readonly getBrokerReport: { readonly name: "GetBrokerReport"; readonly requestType: OperationsUtils.MessageFns<BrokerReportRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<BrokerReportResponse>; readonly responseStream: false; readonly options: {}; }; /** Получить отчёт «Справка о доходах за пределами РФ». */ readonly getDividendsForeignIssuer: { readonly name: "GetDividendsForeignIssuer"; readonly requestType: OperationsUtils.MessageFns<GetDividendsForeignIssuerRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<GetDividendsForeignIssuerResponse>; readonly responseStream: false; readonly options: {}; }; /** * Получить список операций по счёту с пагинацией. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ readonly getOperationsByCursor: { readonly name: "GetOperationsByCursor"; readonly requestType: OperationsUtils.MessageFns<GetOperationsByCursorRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<GetOperationsByCursorResponse>; readonly responseStream: false; readonly options: {}; }; }; }; export interface OperationsServiceImplementation<CallContextExt = {}> { /** * Получить список операций по счёту. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ getOperations(request: OperationsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<OperationsResponse>>; /** Получить портфель по счёту. */ getPortfolio(request: PortfolioRequest, context: CallContext & CallContextExt): Promise<DeepPartial<PortfolioResponse>>; /** Получить список позиций по счёту. */ getPositions(request: PositionsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<PositionsResponse>>; /** Получить доступный остаток для вывода средств. */ getWithdrawLimits(request: WithdrawLimitsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WithdrawLimitsResponse>>; /** Получить брокерский отчёт. */ getBrokerReport(request: BrokerReportRequest, context: CallContext & CallContextExt): Promise<DeepPartial<BrokerReportResponse>>; /** Получить отчёт «Справка о доходах за пределами РФ». */ getDividendsForeignIssuer(request: GetDividendsForeignIssuerRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetDividendsForeignIssuerResponse>>; /** * Получить список операций по счёту с пагинацией. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ getOperationsByCursor(request: GetOperationsByCursorRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetOperationsByCursorResponse>>; } export interface OperationsServiceClient<CallOptionsExt = {}> { /** * Получить список операций по счёту. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ getOperations(request: DeepPartial<OperationsRequest>, options?: CallOptions & CallOptionsExt): Promise<OperationsResponse>; /** Получить портфель по счёту. */ getPortfolio(request: DeepPartial<PortfolioRequest>, options?: CallOptions & CallOptionsExt): Promise<PortfolioResponse>; /** Получить список позиций по счёту. */ getPositions(request: DeepPartial<PositionsRequest>, options?: CallOptions & CallOptionsExt): Promise<PositionsResponse>; /** Получить доступный остаток для вывода средств. */ getWithdrawLimits(request: DeepPartial<WithdrawLimitsRequest>, options?: CallOptions & CallOptionsExt): Promise<WithdrawLimitsResponse>; /** Получить брокерский отчёт. */ getBrokerReport(request: DeepPartial<BrokerReportRequest>, options?: CallOptions & CallOptionsExt): Promise<BrokerReportResponse>; /** Получить отчёт «Справка о доходах за пределами РФ». */ getDividendsForeignIssuer(request: DeepPartial<GetDividendsForeignIssuerRequest>, options?: CallOptions & CallOptionsExt): Promise<GetDividendsForeignIssuerResponse>; /** * Получить список операций по счёту с пагинацией. При работе с методом учитывайте * [особенности взаимодействия](/investAPI/operations_problems). */ getOperationsByCursor(request: DeepPartial<GetOperationsByCursorRequest>, options?: CallOptions & CallOptionsExt): Promise<GetOperationsByCursorResponse>; } export type OperationsStreamServiceDefinition = typeof OperationsStreamServiceDefinition; export declare const OperationsStreamServiceDefinition: { readonly name: "OperationsStreamService"; readonly fullName: "tinkoff.public.invest.api.contract.v1.OperationsStreamService"; readonly methods: { /** Server-side stream обновлений портфеля. */ readonly portfolioStream: { readonly name: "PortfolioStream"; readonly requestType: OperationsUtils.MessageFns<PortfolioStreamRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<PortfolioStreamResponse>; readonly responseStream: true; readonly options: {}; }; /** Server-side stream обновлений информации по изменению позиций портфеля. */ readonly positionsStream: { readonly name: "PositionsStream"; readonly requestType: OperationsUtils.MessageFns<PositionsStreamRequest>; readonly requestStream: false; readonly responseType: OperationsUtils.MessageFns<PositionsStreamResponse>; readonly responseStream: true; readonly options: {}; }; }; }; export interface OperationsStreamServiceImplementation<CallContextExt = {}> { /** Server-side stream обновлений портфеля. */ portfolioStream(request: PortfolioStreamRequest, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<PortfolioStreamResponse>>; /** Server-side stream обновлений информации по изменению позиций портфеля. */ positionsStream(request: PositionsStreamRequest, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<PositionsStreamResponse>>; } export interface OperationsStreamServiceClient<CallOptionsExt = {}> { /** Server-side stream обновлений портфеля. */ portfolioStream(request: DeepPartial<PortfolioStreamRequest>, options?: CallOptions & CallOptionsExt): AsyncIterable<PortfolioStreamResponse>; /** Server-side stream обновлений информации по изменению позиций портфеля. */ positionsStream(request: DeepPartial<PositionsStreamRequest>, options?: CallOptions & CallOptionsExt): AsyncIterable<PositionsStreamResponse>; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]>; } : Partial<T>; type ServerStreamingMethodResult<Response> = { [Symbol.asyncIterator](): AsyncIterator<Response, void>; }; export declare namespace OperationsUtils { interface MessageFns<T> { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create(base?: DeepPartial<T>): T; fromPartial(object: DeepPartial<T>): T; } } export {};