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. // Maximum size 8 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. // Maximum size 18 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. // Maximum Size 16 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. // Maximum size 16 google.protobuf.StringValue participant_reference = 10; // The Underlying Reference field allows a Participant to optionally include an additional reference on the // Maximum size 16 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 (includes Supplementary, Participant and Underlying Reference) // Optional // Maximum size (each field = 16) ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator // Security, Units, Movement Reason all Mandatory. other fields Optional. MovementDetails movement_details = 13; // The Delivering Participant identifies the PID that owns the delivery HIN deliverying the units. // Mandatory // Maximum size 5 google.protobuf.StringValue delivering_participant = 18; // The Delivering Account (HIN) is the Settlement 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. // Mandatory // Maximum size 10 google.protobuf.StringValue delivering_settlement_account = 19; // The Receiving Participant identifies the PID that owns the HIN receiving the 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. // Mandatory // Maximum size 10 google.protobuf.StringValue receiving_participant = 20; // The Receiving Account (HIN) is the Settlement 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. // Mandatory // Maximum size 10 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; // 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 // Optional google.protobuf.StringValue guaranteed_foreign_indicator = 22; } 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 (includes Supplementary, Participant and Underlying Reference) // Optional // Maximum size (each field = 16) ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator // Security, Units, Movement Reason all Mandatory. other fields Optional. MovementDetails movement_details = 13; // The Delivering Participant identifies the PID that owns the delivery HIN deliverying the units. // Mandatory // Maximum size 5 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. // Mandatory // Maximum size 10 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. // Mandatory // Maximum size 10 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. // Mandatory // Maximum size 10 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 // Optional google.protobuf.StringValue guaranteed_foreign_indicator = 22; // secondary matching flag for settlement // Optional // Maximum size 1 google.protobuf.StringValue secondary_matching_flag = 23; } 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 (includes Supplementary, Participant and Underlying Reference) // Optional // Maximum size (each field = 16) ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator // Security, Units, Movement Reason all Mandatory. other fields Optional. MovementDetails movement_details = 13; // The Participant identifies the Participant delivering/receiving units. // Mandatory // Maximum 5 google.protobuf.StringValue participant = 18; // The Account (HIN) is the Settlement Account (HIN) from which units are being delivered/received. // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 19; // Shareholder Reference Number // Mandatory // Maximu size 16 google.protobuf.StringValue srn = 23; // iBroker account number to obtain registration details from // Mandatory // Maximum size 8 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 // Optional 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 (includes Supplementary, Participant and Underlying Reference) // Optional // Maximum size (each field = 16) ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator // Security, Units, Movement Reason all Mandatory. other fields Optional. MovementDetails movement_details = 13; // The Participant identifies the Participant receiving units. // Mandatory // Maximum size 5 google.protobuf.StringValue participant = 18; // The Settlement Account (HIN) is the Settlement Account (HIN) from which units are being received. // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 19; // Shareholder Reference Number // Optional // Maximu size 16 google.protobuf.StringValue srn = 23; // iBroker account number to obtain registration details from // Mandatory // Maximum size 8 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 // Optional 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 Settlement Account (HIN) is the Settlement Account (HIN) from which units are being delivered. // Mandatory // Maximum size 10 google.protobuf.StringValue settlement_account = 19; } message ParticipantToParticipantTransferCancelResponse { fincleartech.ibroker.ResponseStatus status = 1; google.protobuf.StringValue transaction_id = 2; } 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 (includes Supplementary, Participant and Underlying Reference) // Optional // Maximum size (each field = 16) ReferenceDetails reference_details = 9; // Details of the security, units, movement reason, basis of movement, guaranteed foreign indicator // Security, Units, Movement Reason all Mandatory. other fields Optional. 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; // The Delivering Participant identifies the PID that owns the delivery HIN deliverying the units. google.protobuf.StringValue delivering_participant = 4; // The Receiving Participant identifies the PID that owns the HIN receiving the units google.protobuf.StringValue receiving_participant = 6; // The Settlement Account of the delivering/receiving HIN google.protobuf.StringValue settlement_account = 7; // Holding balance of your settlement Account as per CSP holding. 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; } message ParticipantToParticipantTransferStatus { // Correlation request identifier google.protobuf.StringValue request_id = 1; google.protobuf.StringValue transaction_id = 8; google.protobuf.StringValue status = 6; } 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); }