yatis 0.2.1

Yet Another T-bank Investment Sdk
Documentation
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 "common.proto";
import "orders.proto";
import "operations.proto";
import "users.proto";
import "google/api/field_behavior.proto";

service SandboxService { // Методы для работы с песочницей T-Invest API

  //Зарегистрировать счет.
  rpc OpenSandboxAccount(OpenSandboxAccountRequest) returns (OpenSandboxAccountResponse);

  //Получить счета.
  rpc GetSandboxAccounts(GetAccountsRequest) returns (GetAccountsResponse);

  //Закрыть счет.
  rpc CloseSandboxAccount(CloseSandboxAccountRequest) returns (CloseSandboxAccountResponse);

  //Выставить торговое поручение.
  rpc PostSandboxOrder(PostOrderRequest) returns (PostOrderResponse);

  //Изменить выставленную заявку.
  rpc ReplaceSandboxOrder(ReplaceOrderRequest) returns (PostOrderResponse);

  //Получить список активных заявок по счету.
  rpc GetSandboxOrders(GetOrdersRequest) returns (GetOrdersResponse);

  //Отменить торговое поручение.
  rpc CancelSandboxOrder(CancelOrderRequest) returns (CancelOrderResponse);

  //Получить статус заявки в песочнице. Заявки хранятся в таблице 7 дней.
  rpc GetSandboxOrderState(GetOrderStateRequest) returns (OrderState);

  //Получить позиции по виртуальному счету.
  rpc GetSandboxPositions(PositionsRequest) returns (PositionsResponse);

  //Получить операции по номеру счета.
  rpc GetSandboxOperations(OperationsRequest) returns (OperationsResponse);

  //Получить операции по номеру счета с пагинацией.
  rpc GetSandboxOperationsByCursor(GetOperationsByCursorRequest) returns (GetOperationsByCursorResponse);

  //Получить портфель.
  rpc GetSandboxPortfolio(PortfolioRequest) returns (PortfolioResponse);

  //Пополнить счет.
  rpc SandboxPayIn(SandboxPayInRequest) returns (SandboxPayInResponse);

  //Получить доступный остаток для вывода средств.
  rpc GetSandboxWithdrawLimits(WithdrawLimitsRequest) returns (WithdrawLimitsResponse);

  //Расчет количества доступных для покупки/продажи лотов в песочнице.
  rpc GetSandboxMaxLots(GetMaxLotsRequest) returns (GetMaxLotsResponse);
}

//Запрос открытия счета в песочнице.
message OpenSandboxAccountRequest {
  optional string name = 1; // Название счета
}

//Номер открытого счета в песочнице.
message OpenSandboxAccountResponse {
  string account_id = 1; //Номер счета
}

//Запрос закрытия счета в песочнице.
message CloseSandboxAccountRequest {
  string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Номер счета
}

//Результат закрытия счета в песочнице.
message CloseSandboxAccountResponse {
  //пустой ответ
}

//Запрос пополнения счета в песочнице.
message SandboxPayInRequest {
  string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Номер счета
  MoneyValue amount = 2 [(google.api.field_behavior) = REQUIRED]; //Сумма пополнения счета в рублях
}

//Результат пополнения счета, текущий баланс.
message SandboxPayInResponse {
  MoneyValue balance = 1; //Текущий баланс счета
}