syntax = "proto3"; package fincleartech.ibroker; option java_package = "io.fincleartech.protobuf.ibroker.settlement"; option java_multiple_files = true; import "google/protobuf/wrappers.proto"; import "fincleartech/ibroker/ibroker-common.proto"; message CreateSettlementAccountRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Participant Id Requesting the Settlement Account // Mandatory // Maximum size 5 google.protobuf.StringValue participant_id = 2; // Holder type of the Settlement account S for Sponsored D for Direct or E for Entrepot // Mandatory // Maxium size 1 google.protobuf.StringValue holder_type = 3; // for future use google.protobuf.StringValue entrepot_type = 4; //Residency of the settlement account. Eg 'F'- Foreign, 'D' – Domestic. If not supplied will default from IBROKER Account // Optional //Maximum size 1 google.protobuf.StringValue residency = 5; // Flag indicating if record is active // Maximum size 1 // Mandatory google.protobuf.BoolValue current = 6; // iBROKER Account Number // Mandatory // Maximum size 8 google.protobuf.StringValue account_number = 7; //Indictor advising whether the Settlement account will be the default for the iBROKER account //Mandatory google.protobuf.BoolValue default_for_account = 8; //Indictor advising whether the Settlement account and iBROKER account relationship is currnet or not //Mandatory google.protobuf.BoolValue current_for_account = 9; // The database user ID who created the record // Optional // Maximum size 18 google.protobuf.StringValue user_id = 10; } message CreateSettlementAccountResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue temp_settlement_account = 2; } message GetSettlementAccountRequest { // iBROKER Account Number. If supplied will obtain the Settlement Account attached to the iBROKER account. If not supplied will return the default and current account attached to the settlement account. // Optional // Maximum size 8 google.protobuf.StringValue account_number = 1; // Participant Id Requesting the Settlement Account // Mandatory // Maximum size 5 google.protobuf.StringValue participant_id = 2; // the Settlement Account number (HIN) // Mandatory // Maximum size 16 google.protobuf.StringValue settlement_account = 3; } message GetSettlementAccountResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue holder_type = 2; google.protobuf.StringValue entrepot_type = 3; google.protobuf.StringValue holder_status = 4; google.protobuf.StringValue residency = 5; google.protobuf.BoolValue current = 6; google.protobuf.StringValue account_number = 7; google.protobuf.BoolValue default_for_account = 8; google.protobuf.BoolValue current_for_account = 9; fincleartech.ibroker.DateTimeValue entry_date_time = 10; google.protobuf.StringValue user_id = 11; } message CreateChangeOfControllingParticipantTransactionRequest { google.protobuf.StringValue request_id = 1; google.protobuf.StringValue account_number = 2; google.protobuf.StringValue settlement_account = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue new_participant = 5; } message CreateChangeOfControllingParticipantTransactionResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message CreateChangeOfControllingParticipantAcceptanceTransactionRequest { google.protobuf.StringValue request_id = 1; google.protobuf.StringValue transaction_id = 2; google.protobuf.StringValue settlement_account = 3; google.protobuf.StringValue participant = 4; } message CreateChangeOfControllingParticipantAcceptanceTransactionResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message CreateChangeOfControllingParticipantRejectionTransactionRequest { google.protobuf.StringValue request_id = 1; google.protobuf.StringValue transaction_id = 2; google.protobuf.StringValue settlement_account = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue reject_reason = 5; } message CreateChangeOfControllingParticipantRejectionTransactionResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message CreateChangeOfControllingParticipantCancelTransactionRequest { google.protobuf.StringValue request_id = 1; google.protobuf.StringValue settlement_account = 2; google.protobuf.StringValue transaction_id = 3; } message CreateChangeOfControllingParticipantCancelTransactionResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message UpdateProtectReasonRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Settlement Account (HIN) protection reason is to be applied to // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 2; // Paticipnat id of the settlement account (HIN) // Mandatory // Maximum size 5 google.protobuf.StringValue participant_id = 3; // Protection Reason to be applied to settlement account (HIN) // Available options defined in iBROKER // Mandatory // Maximum size 3 google.protobuf.StringValue reason = 4; // Indicator to advise if the Settlement Account belongs to a Margin Lending Account // Mandatory google.protobuf.BoolValue margin_account = 5; // The database user ID who created the equity account // Mandatory // Maximum size 18 google.protobuf.StringValue user_id = 6; // The date/time the record was created // Mandatory fincleartech.ibroker.DateTimeValue entry_date_time = 7; } message UpdateProtectReasonResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message GetProtectReasonRequest { // Settlement Account (HIN) protection reason is to be applied to // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 1; // Paticipnat id of the settlement account (HIN) // Mandatory // Maximum size 5 google.protobuf.StringValue participant_id = 2; } message GetProtectReasonResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue reason = 2; google.protobuf.StringValue description = 3; fincleartech.ibroker.DateTimeValue entry_date_time = 4; } message GetSettlementAccountBankingDataRequest { // Settlement Account (HIN) protection reason is to be applied to // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 1; // Participant id of the settlement account (HIN) // Mandatory // Maximum size 5 google.protobuf.StringValue participant_id = 2; } message GetSettlementAccountBankingDataResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; // BSB Code // Optional // Maximum size 7 google.protobuf.StringValue bsb_code = 2; // Bank Account No // Optional // Maximum size 9 google.protobuf.StringValue bank_account_no = 3; // Bank Account Name // Optional // Maximum size 100 google.protobuf.StringValue bank_account_name = 4; // Flag indicating if record is active // Mandatory // Maximum size 1 google.protobuf.BoolValue current = 5; } message UpdateSettlementAccountBankingDataRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Settlement Account (HIN) protection reason is to be applied to // Conditional Mandatory - Settlement Account No (HIN) Mandatory if account no not supplied // Maximum size 10 google.protobuf.StringValue settlement_account = 2; // Participant id of the settlement account (HIN) // Conditional Mandatory - Participant id mandatory if account no not supplied // Maximum size 5 google.protobuf.StringValue participant_id = 3; // iBROKER Account Number // Maximum size 8 // Conditional Mandatory - If Settlement Account and Participant Id not supplied, then account no is mandatory google.protobuf.StringValue account_number = 4; // BSB Code // Optional // Maximum size 7 google.protobuf.StringValue bsb_code = 5; // Bank Account No // Optional // Maximum size 9 google.protobuf.StringValue bank_account_no = 6; // Bank Account Name // Optional // Maximum size 100 google.protobuf.StringValue bank_account_name = 7; } message UpdateSettlementAccountBankingDataResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message UpdateSettlementAccountSynchronisedDataRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // iBROKER Account Number // Maximum size 8 // Mandatory google.protobuf.StringValue account_number = 2; // User Id // Optional // Maximum size 18 google.protobuf.StringValue user_id = 3; // Callback Reference. Required to Place a response on the response queue // Mandatory // Maximum size 30 google.protobuf.StringValue callback_reference = 4; } message UpdateSettlementAccountSynchronisedDataResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message UpdateSettlementAccountIndependantDataRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Participant id of the settlement account (HIN) // Conditional Mandatory - Participant id mandatory if account no not supplied // Maximum size 5 google.protobuf.StringValue participant_id = 2; // Settlement Account (HIN) protection reason is to be applied to // Conditional Mandatory - Settlement Account No (HIN) Mandatory if account no not supplied // Maximum size 10 google.protobuf.StringValue settlement_account = 3; // New Holder Type // Maximum size 1 // Mandatory google.protobuf.StringValue new_holder_type = 4; // New Residency // Maximum size 1 // Mandatory google.protobuf.StringValue new_residency = 5; // User Id // Optional // Maximum size 18 google.protobuf.StringValue user_id = 6; // The date/time the record was created // Mandatory fincleartech.ibroker.DateTimeValue entry_date_time = 7; } message UpdateSettlementAccountIndependantDataResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message UpdateSettlementAccountStatusRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Participant id of the settlement account (HIN) // Conditional Mandatory - Participant id mandatory if account no not supplied // Maximum size 5 google.protobuf.StringValue participant_id = 2; // Settlement Account (HIN) protection reason is to be applied to // Conditional Mandatory - Settlement Account No (HIN) Mandatory if account no not supplied // Maximum size 10 google.protobuf.StringValue settlement_account = 3; // New Holder Status // Maximum size 1 // Mandatory google.protobuf.StringValue new_holder_status = 4; // Holder Status Update Reason // Maximum size 1 // Mandatory google.protobuf.StringValue holder_status_update_reason = 5; // Contact Reference // Maximum size 16 // Mandatory google.protobuf.StringValue contact_reference = 6; // User Id // Optional // Maximum size 18 google.protobuf.StringValue user_id = 7; // The date/time the record was created // Mandatory fincleartech.ibroker.DateTimeValue entry_date_time = 8; } message UpdateSettlementAccountStatusResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message UpdateSettlementAccountHolderStatusRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. // Mandatory google.protobuf.StringValue request_id = 1; // Holder No attached to the settlement account // Mandatory // Maximum size 30 google.protobuf.StringValue holder_number = 2; // Participant id of the settlement account (HIN) // Conditional Mandatory - Participant id mandatory if account no not supplied // Maximum size 5 google.protobuf.StringValue participant_id = 3; // Settlement Account (HIN) protection reason is to be applied to // Conditional Mandatory - Settlement Account No (HIN) Mandatory if account no not supplied // Maximum size 10 google.protobuf.StringValue settlement_account = 4; // New Holder status // Maximum size 1 // Mandatory google.protobuf.StringValue new_holder_status = 5; // Holder Status Update Reason // Maximum size 1 // Mandatory google.protobuf.StringValue holder_status_update_reason = 6; // Date of Birth or Death // Mandatory fincleartech.ibroker.DateTimeValue date_of_birth_death = 7; // User Id // Optional // Maximum size 18 google.protobuf.StringValue user_id = 8; // The date/time the record was created // Mandatory fincleartech.ibroker.DateTimeValue entry_date_time = 9; } message UpdateSettlementAccountHolderStatusResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; } message Holder{ // Settlement Account (HIN) protection reason is to be applied to // Maximum size 10 google.protobuf.StringValue settlement_account = 1; // Participant id of the settlement account (HIN) // Maximum size 5 google.protobuf.StringValue participant_id = 2; // Holder No attached to the settlement account // Maximum size 30 google.protobuf.StringValue holder_number = 3; // Holder Id // Maximum size 32 google.protobuf.StringValue holder_id = 4; // Holder Name // Maximum size 80 google.protobuf.StringValue holder_name = 5; // Holder Status // Maximum size 1 google.protobuf.StringValue holder_status = 6; // User Id google.protobuf.StringValue user_id = 8; // Entry Date Time fincleartech.ibroker.DateTimeValue entry_date_time = 9; } message GetSettlementAccountHoldersRequest { // Settlement Account (HIN) protection reason is to be applied to // Conditional Mandatory - Settlement Account No (HIN) Mandatory if account no not supplied // Maximum size 10 google.protobuf.StringValue settlement_account = 4; // Participant id of the settlement account (HIN) // Conditional Mandatory - Participant id mandatory if account no not supplied // Maximum size 5 google.protobuf.StringValue participant_id = 3; } message GetSettlementAccountHoldersResponse { // Response Status. fincleartech.ibroker.ResponseStatus status = 1; // Settle Account Holder Structure repeated Holder settle_account_holders = 2; } service IBrokerSettlementAccountsService { rpc CreateSettlementAccount(CreateSettlementAccountRequest) returns (CreateSettlementAccountResponse); rpc GetSettlementAccount(GetSettlementAccountRequest) returns (GetSettlementAccountResponse); rpc CreateChangeOfControllingParticipantTransaction(CreateChangeOfControllingParticipantTransactionRequest) returns (CreateChangeOfControllingParticipantTransactionResponse); rpc CreateChangeOfControllingParticipantAcceptanceTransaction(CreateChangeOfControllingParticipantAcceptanceTransactionRequest) returns (CreateChangeOfControllingParticipantAcceptanceTransactionResponse); rpc CreateChangeOfControllingParticipantRejectionTransaction(CreateChangeOfControllingParticipantRejectionTransactionRequest) returns (CreateChangeOfControllingParticipantRejectionTransactionResponse); rpc CreateChangeOfControllingParticipantCancelTransaction(CreateChangeOfControllingParticipantCancelTransactionRequest) returns (CreateChangeOfControllingParticipantCancelTransactionResponse); rpc GetProtectReason (GetProtectReasonRequest) returns (GetProtectReasonResponse); rpc UpdateProtectReason (UpdateProtectReasonRequest) returns (UpdateProtectReasonResponse); rpc GetSettlementAccountBankingData(GetSettlementAccountBankingDataRequest) returns (GetSettlementAccountBankingDataResponse); rpc UpdateSettlementAccountBankingData(UpdateSettlementAccountBankingDataRequest) returns (UpdateSettlementAccountBankingDataResponse); rpc UpdateSettlementAccountSynchronisedData(UpdateSettlementAccountSynchronisedDataRequest) returns (UpdateSettlementAccountSynchronisedDataResponse); rpc UpdateSettlementAccountIndependantData(UpdateSettlementAccountIndependantDataRequest) returns (UpdateSettlementAccountIndependantDataResponse); rpc UpdateSettlementAccountStatus(UpdateSettlementAccountStatusRequest) returns (UpdateSettlementAccountStatusResponse); rpc UpdateSettlementAccountHolderStatus(UpdateSettlementAccountHolderStatusRequest) returns (UpdateSettlementAccountHolderStatusResponse); rpc GetSettlementAccountHolders(GetSettlementAccountHoldersRequest) returns (GetSettlementAccountHoldersResponse); }