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/common.proto"; message MovementDetails { // Identifies the security in which units are being transferred. google.protobuf.StringValue security_code = 14; // The Unit Quantity of the Security Code which is being transferred. This must be a positive whole number // greater than 0, with no decimal places. // The Delivering Account (HIN) must have sufficient available units greater than or equal to the Unit Quantity // for the specified security. fincleartech.ibroker.NumberValue units = 16; // The Transaction Basis field characterises the movement of securities. // // # Valid Values: // // - F Facility for non-reportable transactions. // - I IPO transaction. // - M Market. // - L Stock lending activity. // - O Off-market. google.protobuf.StringValue transaction_basis = 17; // The Override Basis of Movement field(s) allow a Participant to optionally Override the default Basis of Movement // for the transaction where there are current corporate actions. // There can be up to 3 Override Basis of Movement present. // // # Valid Values: // // - CB Cum bonus issue. // - CC Cum capital return. // - CD Cum dividend. // - CE Cum entitlement (non-renounceable rights). // - CI Cum interest. // - CM Cum premium return. // - CQ Cum equal-access buyback. // - CR Cum rights issue (renounceable rights). // - CZ Cum non pro rata balance. // - XB Ex bonus issue. // - XC Ex capital return. // - XD Ex dividend. // - XE Ex entitlement (non-renounceable rights). // - XI Ex interest. // - XM Ex premium return. // - XQ Ex equal-access buyback. // - XR Ex rights issue (renounceable rights). // - XZ Ex non pro rata balance. repeated google.protobuf.StringValue basis_of_movement = 13; // Movement reason. // // # Valid values: // // - A Holder in Liquidation // - B balance transfer // - C holder request // - D Deceased Estate // - E Holder Bankrupt // - F Security Closed // - G Withdrawal of Participant // - I IPO Transaction // - Z Action by ASX operations google.protobuf.StringValue movement_reason = 20; } message ReferenceDetails { // The Supplementary Reference field allows a Participant to optionally include a reference on the request // which will be passed to the Counterparty (if member of Participant Group). // No business validations are performed on this field. google.protobuf.StringValue supplementary_reference = 9; // The Participant Reference field allows a Participant to optionally include a reference on the request // which remains private to the Sender Participant. No business validations are performed on this field. google.protobuf.StringValue participant_reference = 10; // The Underlying Reference field allows a Participant to optionally include an additional reference on the // request which remains private to the Sender Participant. No business validations are performed on this field. google.protobuf.StringValue underlying_reference = 11; } message AccountToAccountTransferRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Delivering Participant identifies the Participant delivering units. google.protobuf.StringValue delivering_participant = 18; // The Delivering Account (HIN) is the Account (HIN) from which units are being delivered. Delivery of units // is only permitted from Accounts which are active and have not been locked or cancelled. google.protobuf.StringValue delivering_settlement_account = 19; // The Receiving Participant identifies the Participant receiving units. This can be the same as the Delivering // Participant. Alternatively, it can be a different Participant if it is associated with the Delivering // Participant in a Participant Group. google.protobuf.StringValue receiving_participant = 20; // The Receiving Account (HIN) is the Account (HIN) for which units are being received. Receipt of units is // allowed into Accounts which are active, or have been locked, but must not have been cancelled. google.protobuf.StringValue receiving_settlement_account = 21; // The Secondary Matching Flag (SMAT) that indicates the transaction must match on the value present // in the Supplementary Reference. google.protobuf.StringValue secondary_matching_flag = 23; } message AccountToAccountTransferResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message ParticipantToParticipantTransferRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Delivering Participant identifies the Participant delivering units. google.protobuf.StringValue delivering_participant = 18; // The Delivering Account (HIN) is the Account (HIN) from which units are being delivered. Delivery of units // is only permitted from Accounts which are active and have not been locked or cancelled. google.protobuf.StringValue delivering_settlement_account = 19; // The Receiving Participant identifies the Participant receiving units. This can be the same as the Delivering // Participant. Alternatively, it can be a different Participant if it is associated with the Delivering // Participant in a Participant Group. google.protobuf.StringValue receiving_participant = 20; // The Receiving Account (HIN) is the Account (HIN) for which units are being received. Receipt of units is // allowed into Accounts which are active, or have been locked, but must not have been cancelled. google.protobuf.StringValue receiving_settlement_account = 21; // The Guaranteed Foreign Indicator of the matched Bilateral Demand Transfer. Indicates that the transfer // was agreed to take place between two Accounts (HINs) with a Residency Indicator of "Foreign". // // # Valid values: // // - OR google.protobuf.StringValue guaranteed_foreign_indicator = 22; } message ParticipantToParticipantTransferResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message IssuerSponsoredToParticipantTransferRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Participant identifies the Participant delivering/receiving units. google.protobuf.StringValue participant = 18; // The Account (HIN) is the Account (HIN) from which units are being delivered/received. google.protobuf.StringValue settlement_account = 19; // SRN google.protobuf.StringValue srn = 23; // iBroker account google.protobuf.StringValue broker_account = 24; // The Guaranteed Foreign Indicator of the matched Bilateral Demand Transfer. Indicates that the transfer // was agreed to take place between two Accounts (HINs) with a Residency Indicator of "Foreign". // // # Valid values: // // - OR google.protobuf.StringValue guaranteed_foreign_indicator = 22; } message IssuerSponsoredToParticipantTransferResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message ParticipantToIssuerSponsoredTransferRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Participant identifies the Participant delivering/receiving units. google.protobuf.StringValue participant = 18; // The Account (HIN) is the Account (HIN) from which units are being delivered/received. google.protobuf.StringValue settlement_account = 19; // SRN google.protobuf.StringValue srn = 23; // iBroker account google.protobuf.StringValue broker_account = 24; // The Guaranteed Foreign Indicator of the matched Bilateral Demand Transfer. Indicates that the transfer // was agreed to take place between two Accounts (HINs) with a Residency Indicator of "Foreign". // // # Valid values: // // - OR google.protobuf.StringValue guaranteed_foreign_indicator = 22; } message ParticipantToIssuerSponsoredTransferResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } message ParticipantToParticipantTransferCancelRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Optional registration reference google.protobuf.StringValue target_transaction_id = 24; // The Delivering Account (HIN) is the Account (HIN) from which units are being received/delivered. google.protobuf.StringValue settlement_account = 19; } message ParticipantToParticipantTransferCancelResponse { fincleartech.ibroker.ResponseStatus status = 1; } message ParticipantToIssuerSponsoredConversionRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Participant identifies the Participant delivering/receiving units. google.protobuf.StringValue participant = 18; // The Account (HIN) is the Account (HIN) from which units are being delivered/received. google.protobuf.StringValue settlement_account = 19; // Optional SRN google.protobuf.StringValue srn = 23; // The Guaranteed Foreign Indicator of the matched Bilateral Demand Transfer. Indicates that the transfer // was agreed to take place between two Accounts (HINs) with a Residency Indicator of "Foreign". // // # Valid values: // // - OR google.protobuf.StringValue guaranteed_foreign_indicator = 22; } message ParticipantToIssuerSponsoredConversionResponse { // call status, 0 for fincleartech.ibroker.ResponseStatus status = 1; // IBroker transaction reference google.protobuf.StringValue transaction_id = 2; } message IssuerSponsoredToParticipantConversionRequest { // A universally unique identifier for this request. Used for idempotency and correlation with asynchronous notifications. google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 13; // The Participant identifies the Participant delivering/receiving units. google.protobuf.StringValue participant = 18; // The Account (HIN) is the Account (HIN) from which units are being delivered/received. google.protobuf.StringValue settlement_account = 19; // Optional SRN google.protobuf.StringValue srn = 23; // The Guaranteed Foreign Indicator of the matched Bilateral Demand Transfer. Indicates that the transfer // was agreed to take place between two Accounts (HINs) with a Residency Indicator of "Foreign". // // # Valid values: // // - OR google.protobuf.StringValue guaranteed_foreign_indicator = 22; } message IssuerSponsoredToParticipantConversionResponse { fincleartech.ibroker.ResponseStatus status = 1; // IBroker transaction reference google.protobuf.StringValue transaction_id = 2; } message InvalidRequestNotification { // Correlation request identifier google.protobuf.StringValue request_id = 1; } message ParticipantToParticipantTransferConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue delivering_participant = 4; google.protobuf.StringValue receiving_participant = 6; google.protobuf.StringValue settlement_account = 7; fincleartech.ibroker.NumberValue holding_balance = 8; google.protobuf.StringValue transaction_id = 10; google.protobuf.StringValue counterparty_transaction_id = 11; google.protobuf.StringValue secondary_matching_flag = 12; } message AccountToAccountTransferConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue delivering_participant = 4; google.protobuf.StringValue delivering_settlement_account = 5; google.protobuf.StringValue receiving_participant = 6; google.protobuf.StringValue receiving_settlement_account = 7; fincleartech.ibroker.NumberValue receiving_holding_balance = 8; fincleartech.ibroker.NumberValue delivering_holding_balance = 9; fincleartech.ibroker.DateTimeValue effective_settlement_date = 10; google.protobuf.StringValue transaction_id = 11; } message ParticipantToIssuerTransferConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue settlement_account = 5; google.protobuf.StringValue srn = 6; fincleartech.ibroker.NumberValue holding_balance = 7; google.protobuf.StringValue registration_reference = 8; google.protobuf.StringValue transaction_id = 9; } message IssuerToParticipantTransferConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue settlement_account = 5; google.protobuf.StringValue srn = 6; fincleartech.ibroker.NumberValue holding_balance = 7; google.protobuf.StringValue transaction_id = 8; } message ParticipantToIssuerConversionConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue settlement_account = 5; fincleartech.ibroker.NumberValue holding_balance = 7; google.protobuf.StringValue transaction_id = 8; } message IssuerToParticipantConversionConfirmation { // Correlation request identifier google.protobuf.StringValue request_id = 1; // Request message references ReferenceDetails reference_details = 2; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator MovementDetails movement_details = 3; google.protobuf.StringValue participant = 4; google.protobuf.StringValue settlement_account = 5; google.protobuf.StringValue srn = 6; fincleartech.ibroker.NumberValue holding_balance = 7; google.protobuf.StringValue transaction_id = 8; } service IBrokerSettlementService { // A request to transfer securities, immediately, FoP, between two Accounts (HINs), controlled by a single Participant or // between two Accounts (HINs) controlled by separate Participants within a Participant Group. (UDTR and UDRP) rpc AccountToAccountTransfer(AccountToAccountTransferRequest) returns (AccountToAccountTransferResponse); // A request to transfer securities between two Accounts (HINs) controlled by two different Participants. (BDTR) rpc ParticipantToParticipantTransfer(ParticipantToParticipantTransferRequest) returns (ParticipantToParticipantTransferResponse); // Cancel a participant to participant transfer request rpc ParticipantToParticipantTransferCancel(ParticipantToParticipantTransferCancelRequest) returns (ParticipantToParticipantTransferCancelResponse); // A request to transfer securities, Free of Payment (FoP) from an Issuer Sponsored Holding, // maintained on the Issuer Sponsored Sub-register, to a Participant controlled Account in the CSP. rpc IssuerSponsoredToParticipantTransfer(IssuerSponsoredToParticipantTransferRequest) returns (IssuerSponsoredToParticipantTransferResponse); // A request to transfer securities, Free of Payment (FoP), from a Participant controlled Account (HIN) in the CSP, // to an Issuer Sponsored Holding, maintained on the Issuer Sponsored Sub-register. rpc ParticipantToIssuerSponsoredTransfer(ParticipantToIssuerSponsoredTransferRequest) returns (ParticipantToIssuerSponsoredTransferResponse); // A request to convert securities, FoP from a Participant controlled Account (HIN) in the CSP, to an // Issuer Sponsored Holding, maintained on the Issuer Sponsored Sub-register. rpc ParticipantToIssuerSponsoredConversion(ParticipantToIssuerSponsoredConversionRequest) returns (ParticipantToIssuerSponsoredConversionResponse); // A request to convert securities, FoP, from an Issuer Sponsored Holding, maintained on the Issuer Sponsored Sub-register, // to a Participant controlled Account (HIN) in the CSP. rpc IssuerSponsoredToParticipantConversion(IssuerSponsoredToParticipantConversionRequest) returns (IssuerSponsoredToParticipantConversionResponse); }