syntax = "proto3"; package fincleartech.ibroker; option java_package = "io.fincleartech.protobuf.ibroker.transfer"; option java_multiple_files = true; import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; import "fincleartech/ibroker/common.proto"; message UnilateralDemandTransferRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Security code google.protobuf.StringValue security_code = 2; // Exchange code google.protobuf.StringValue exchange_code = 3; // Transaction basis google.protobuf.StringValue transaction_basis = 4; // Delivering participant id google.protobuf.StringValue delivering_pid = 5; // Delivering holder identification number google.protobuf.StringValue delivering_hin = 6; // Receiving participant id google.protobuf.StringValue receiving_pid = 7; // Receiving holder identification number google.protobuf.StringValue receiving_hin = 8; // Participant reference google.protobuf.StringValue participant_reference = 9; // Supplementary reference google.protobuf.StringValue supplementary_reference = 10; // Basis of quote google.protobuf.StringValue basis_of_quote = 11; // Units fincleartech.ibroker.NumberValue units = 12; // Stamping consideration fincleartech.ibroker.NumberValue stamping_consideration = 13; // Duty payable fincleartech.ibroker.NumberValue duty_payable = 14; // Duty type google.protobuf.StringValue duty_type = 15; // Underlying reference google.protobuf.StringValue underlying_reference = 16; // Guaranteed foreign indicator google.protobuf.StringValue guaranteed_foreign_indicator = 17; // IBroker user id of the modifier google.protobuf.StringValue user_id = 18; } message UnilateralDemandTransferResponse { // Response Status. google.rpc.Status status = 1; } message UnilateralDemandTransferNotification { // The universally unique identifier of the originating request. Correlates to UnilateralDemandTransferRequest.request_id. google.protobuf.StringValue request_id = 1; // Sender participant google.protobuf.StringValue sender_participant = 2; // Settlement transaction condition google.protobuf.StringValue settlement_transaction_condition = 3; // Security code google.protobuf.StringValue security_code = 4; // Unit quantity fincleartech.ibroker.NumberValue unit_quantity = 5; // Delivering holding balance fincleartech.ibroker.NumberValue delivering_holding_balance = 6; // Receiving holding balance fincleartech.ibroker.NumberValue receiving_holding_balance = 7; } service IBrokerTransferService { // Perform a unilateral demand transfer. Synchronous response status with asynchronous notification. rpc UnilateralDemandTransfer (UnilateralDemandTransferRequest) returns (UnilateralDemandTransferResponse); }