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; //Текущий баланс счета
}