ProtoFile
AccountsIntegration.proto - latest proto file with all contracts
syntax = "proto3";
package cfd_integration_accounts;
//Models
message AccountGrpcModel{
string Id = 1;
string TraderId = 2;
string Currency = 3;
double Balance = 4;
double Equity = 5;
double Margin = 6;
bool TradingDisabled = 7;
double Leverage = 8;
double FreeMargin = 9;
double MarginLvl = 10;
string TradingGroup = 11;
uint64 DateCreate = 12;
uint64 DateUpdate = 13;
string CreateProcessId = 14;
string LastUpdateProcessId = 15;
map<string, string> Metadata = 16;
}
//Contracts
enum UpdateBalanceReason {
TradingResult = 0;
BalanceCorrection = 1;
Deposit = 2;
Withdrawal = 3;
WithdrawalCanceled = 4;
Commission = 5;
}
enum AccountsIntegrationOperationCode{
Ok = 0;
AccountNotFound = 1;
TraderNotFound = 2;
NotEnoughBalance = 3;
ProcessIdDuplicate = 4;
CollateralCurrencyNotFound = 5;
InvalidLeverage = 6;
TradingGroupNotFound = 7;
TradingProfileNotFound = 8;
}
message CreateAccountGrpcRequest{
string TraderId = 1;
string AccountId = 2;
double Leverage = 3;
string Currency = 4;
string ProcessId = 5;
string TradingGroup = 6;
map<string, string> Metadata = 7;
}
message CreateAccountGrpcResponse{
AccountsIntegrationOperationCode Code = 1;
optional AccountGrpcModel Account = 2;
}
message GetAccountsGrpcRequest{
optional string TraderId = 1;
optional string AccountId = 2;
}
message UpdateAccountBalanceGrpcRequest{
string TraderId = 1;
string AccountId = 2;
double Delta = 3;
string Comment = 4;
string ProcessId = 5;
bool AllowNegativeBalance = 6;
UpdateBalanceReason Reason = 7;
optional string ReferenceTransactionId = 8;
}
message UpdateAccountBalanceGrpcResponse{
AccountsIntegrationOperationCode Result = 1;
optional string OperationId = 2;
AccountGrpcModel Account = 3;
}
message UpdateAccountGrpcRequest{
string TraderId = 1;
string AccountId = 2;
optional bool TradingDisabled = 3;
optional string TradingGroup = 4;
optional double Leverage = 5;
string ProcessId = 6;
}
message UpdateAccountGrpcResponse{
AccountsIntegrationOperationCode Result = 1;
AccountGrpcModel Account = 2;
}
service AccountsIntegrationGrpcService{
rpc CreateAccount(CreateAccountGrpcRequest) returns (CreateAccountGrpcResponse);
rpc GetAccounts(GetAccountsGrpcRequest) returns (stream AccountGrpcModel);
rpc UpdateAccountBalance(UpdateAccountBalanceGrpcRequest) returns (UpdateAccountBalanceGrpcResponse);
rpc UpdateAccount(UpdateAccountGrpcRequest) returns (UpdateAccountGrpcResponse);
}
Last updated