HoldingTransactionStatus

HoldingTransactions within the platform transition through a number of different workflows depending on the operational model of the markets being operated. The value of the HoldingTransactionStatus attribute of any given HoldingTransaction represents the current state of that HoldingTransaction through the relevant workflow.

HoldingTransaction Workflows

The following sections show the state transitions implemented in the Matching Engine that utilise the various HoldingTransactionStatus values defined in this enumeration.

Externally Verified

Externally verified HoldingTransactions are those that are validated and confirmed at an external agency. The states used in this workflow are designed to allow for interface gateways to safely pickup and pass the details of the HoldingTransactions to the external agency and report back the outcome of the process at this agency.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#53a9f3', 'tertiaryColor': '#88ccff', 'tertiaryBorderColor': '#000000', 'tertiaryTextColor': '#000000'}}}%%
stateDiagram-v2
	[*] --> Requested

	Requested --> Confirmed : Confirm
	Requested --> Cancelled : Cancel
	Requested --> Rejected : Reject
	Requested --> Processing

	Processing --> Confirmed : Confirm
	Processing --> Cancelled : Cancel
	Processing --> Rejected : Reject

	Cancelled --> [*]
	Rejected --> [*]
	Confirmed --> [*]

Internally Verified

When HoldingTransactions are managed internally inside MarketGrid by the operators of the market, they are referred to as internally verified. The following diagram represents the flow for creating and then finalising a HoldingTransaction.

This flow includes the pre-verified class of HoldingTransaction that can be created, confirmed, at first instance by an authorised actor on in system.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#53a9f3', 'tertiaryColor': '#88ccff', 'tertiaryBorderColor': '#000000', 'tertiaryTextColor': '#000000'}}}%%
stateDiagram-v2
	state Preverified <<choice>>
	[*] --> Preverified
	Preverified --> Confirmed : True
	Preverified --> Unconfirmed : False

	Unconfirmed --> Confirmed : Confirm
	Unconfirmed --> Cancelled : Cancel
	Unconfirmed --> Voided : Void

	Cancelled --> [*]
	Confirmed --> [*]
	Voided --> [*]

Standard

The following diagram represents the whole standard workflow for HoldingTransactions.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#53a9f3', 'tertiaryColor': '#88ccff', 'tertiaryBorderColor': '#000000', 'tertiaryTextColor': '#000000'}}}%%
stateDiagram-v2
	state Preverified <<choice>>
	state ExternallyVerified <<choice>>
	[*] --> Preverified
	Preverified --> Confirmed : True
	Preverified --> ExternallyVerified : False

	ExternallyVerified --> Requested : True
	ExternallyVerified --> Unconfirmed : False
	Unconfirmed --> Confirmed : Confirm
	Unconfirmed --> Cancelled : Cancel
	Unconfirmed --> Voided : Void

	Requested --> Confirmed : Confirm
	Requested --> Cancelled : Cancel
	Requested --> Rejected : Reject
	Requested --> Processing : Process

	Processing --> Confirmed : Confirm
	Processing --> Cancelled : Cancel
	Processing --> Rejected : Reject

	Cancelled --> [*]
	Rejected --> [*]
	Confirmed --> [*]
	Voided --> [*]

Complete

The following diagram represents the complete workflow for HoldingTransactions, including the internal Carta processing for managing interactions with the US banking service providers including ACH returned transactions.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#53a9f3', 'tertiaryColor': '#88ccff', 'tertiaryBorderColor': '#000000', 'tertiaryTextColor': '#000000'}}}%%
stateDiagram-v2
	state Preverified <<choice>>
	state ExternallyVerified <<choice>>
	[*] --> Preverified
	[*] --> Pending
	Preverified --> Confirmed : True
	Preverified --> ExternallyVerified : False

	ExternallyVerified --> Requested : True
	ExternallyVerified --> Unconfirmed : False
	Unconfirmed --> Confirmed : Confirm
	Unconfirmed --> Cancelled : Cancel
	Unconfirmed --> Voided : Void

	Requested --> Confirmed : Confirm
	Requested --> Cancelled : Cancel
	Requested --> Rejected : Reject
	Requested --> Processing
	Requested --> ReturnPending : AchReject

	Processing --> Confirmed : Confirm
	Processing --> Cancelled : Cancel
	Processing --> ReturnPending : AchReject

	Confirmed --> ReturnPending : AchReject
	ReturnPending --> Returned : AchReject

	Pending --> Requested : Released
	Pending --> ApprovalRejected

	ApprovalRejected --> [*]
	Cancelled --> [*]
	Rejected --> [*]
	Returned --> [*]
	Confirmed --> [*]
	Voided --> [*]

Metadata

  • Underlying type: u8

Values

KeyValueDescription
Unconfirmed1The standard initial state of a HoldingTransaction that is not pre-verified by the initiating actor.
Processing2When a HoldingTransaction is pre-verified by the initiating actor. This is the state when the external system has taken responsibility for the processing of the transaction.
Confirmed3The terminal state of a successful transaction.
Cancelled4The terminal state of an uncompleted transaction where the reason for the incomplete state is the result of a cancellation by an actor within the system.
Rejected5The terminal state of an uncompleted transaction where the reason for the incomplete state is the result of a rejection by the external system.
Requested6An externally verified transaction has this initial state so that an interface gateway can know that this transaction needs to be transmitted to the external system for processing.
ReturnPending7An externally processed banking transaction that has been marked for being returned by the payments system.
Returned8This is the terminal state for an externally processed banking transaction that has been returned by the payments system.
Pending9An externally processed banking transaction has this initial state.
Released10Used for tiered cash transactions in the Cash Ledger.
ApprovalRejected11This is the terminal state for an externally processed banking transaction that has been rejected by the payments system.
Posted12For an ACH Inbound Transfer with a ConfirmAfter timestamp, if the transfer is confirmed by the external bank but the system date/time is stil earlier than ConfirmAfter, the HoldingTransactionStatus will be set to this value.
Voided13The terminal state of an uncompleted transaction that was voided by an Operator for reasons such as incorrect quantity, account or otherwise made in error.

Referenced by

Tables

TableFieldDescription
HoldingTransactionHoldingTransactionStatus
HoldingTransaction_changeHoldingTransactionStatus