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
| Key | Value | Description |
|---|---|---|
| Unconfirmed | 1 | The standard initial state of a HoldingTransaction that is not pre-verified by the initiating actor. |
| Processing | 2 | When 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. |
| Confirmed | 3 | The terminal state of a successful transaction. |
| Cancelled | 4 | The 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. |
| Rejected | 5 | The terminal state of an uncompleted transaction where the reason for the incomplete state is the result of a rejection by the external system. |
| Requested | 6 | An 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. |
| ReturnPending | 7 | An externally processed banking transaction that has been marked for being returned by the payments system. |
| Returned | 8 | This is the terminal state for an externally processed banking transaction that has been returned by the payments system. |
| Pending | 9 | An externally processed banking transaction has this initial state. |
| Released | 10 | Used for tiered cash transactions in the Cash Ledger. |
| ApprovalRejected | 11 | This is the terminal state for an externally processed banking transaction that has been rejected by the payments system. |
| Posted | 12 | For 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. |
| Voided | 13 | The 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
| Table | Field | Description |
|---|---|---|
| HoldingTransaction | HoldingTransactionStatus | |
| HoldingTransaction_change | HoldingTransactionStatus |