Transaction Types
Â
Transaction types can be modified by the system administrator with access level 1000 by navigating to System Data→Transaction Types. Please send a support case to the Huddlestock Support Portal if you need help creating new or changing transaction types.
The transaction types that can be created are used to create Business Transactions. A Business Transaction then has a transaction mapping that defines which account transactions should be created. Business transactions represent the transaction object that is viewable by the end customer and advisor, the back office user can drill down to view account transactions.
To configure a new transaction type the following properties can be affected.
There are many default transaction types in BFS that are used for various functions and should only be modified with caution.Â
Property | Description |
---|---|
Key | This is the actual identifier of the transaction type which is used in the TransactionMappings. The transaction types should be named according to the following naming convention: |
Status | The status of the transaction type defines which userlevels will be able to utilize the transaction type. The available settings are:
|
Sort order | Defines at which place in the drop down list of transaction types in the order ticket the transaction type should appear. |
Manual ticket | Defines if the transaction type should be available in manual order tickets or only available as automated transactions. |
Reporting type | The selection determines in which section the transaction will appear in Activity statements |
Tax Type | The selection determines how the transaction will be classified for taxation |
Return calculation type | There are three main divisors that are used to put the transaction types into various baskets and this is called Return Calculation Type. The return calculation type can be Trade, Transfer or Payment and determines how the transaction type will be used when calculating the return of an account. Trade represents a trade of an asset, Transfer represents a transfer of an asset to or from an account and Payment represents a cost that has been applied or an income that has been received by the account. If return calculation type is empty the default value will be Transfer. |
Custody Account Asset 1 | Obsolete |
Custody Account Asset 2 | Obsolete |
System Account | This is always set to true since the transaction must be mapped to an account when it is created |
Trade date | Defines if trade date should be defined in the creation of a transaction of the specified type. |
Settlement date | Defines if settlement date should be defined in the creation of a transaction of the specified type. |
Value date | Defines if value date should be defined in the creation of a transaction of the specified type. |
Asset 1 | This determines what type and label that should be shown for the asset in the first leg of the transaction |
Amount Asset 1 | Defines if an amount should be present for the first Leg and the sub property Label defines if Amount or Quantity should be used for the property. |
Asset 2 | This determines what type and label that should be shown for the asset in the second leg of the transaction |
Amount Asset 2 | Defines if an amount should be present for the second Leg and the sub property Label defines if Amount or Quantity should be used for the property. |
Price | Defines if price should be defined in the transaction type creation. |
Acquisition Value | Defines if an acquisition value in the acquired asset currency should be defined. |
Acquisition Value Account Currency | Defines if an acquisition value in the base currency of the acquiring account should be defined. |
Comment | Defines if a comment should be possible to input for the transaction type. |
With each transaction type, there should be a transaction mapping associated which defines what account transactions should occur. As an example, let's create a manual transaction where we select the transaction type called Default_Transfer_Trade_Cash, this should create a transaction in the trade dimension for the selected account. The business transaction ticket looks like this:
By clicking Preview Transactions we can see what account transactions the transaction mapping will create.
As we can see there is one account transaction that will be created in the Trade (T) dimension. If we had defined accounting transactions sin the transaction mapping it would have shown here as well. We can also select to Add more account transactions if we wish by clicking the add button.
The XML for this simple transaction mapping looks like this:
<BusinessTransactionMappingRules xmlns="http://www.bricknode.com/TransactionMappingNew" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<!--
The factor works in a way that it multiplies the Amount from the actual transaction and for a system account buy of a fund the AmountAsset1 reflecting the cash will be -1000 for example and then the factor should be -1 for
a stock account which should get a positive transaction and the same is true for accounting accounts.
-->
<BusinessTransactionMappingRule transactionType="Default_Transfer_Trade_Cash">
<!--Description: -->
<AccountTransactionItems>
<!--System accounts-->
<AccountTransaction dimension="T" amountType="AmountAsset1" assetType="Asset1" factor="1" transactionDate="TradeDate" xsi:type="DefaultSystemAccount" />
</AccountTransactionItems>
</BusinessTransactionMappingRule>
</BusinessTransactionMappingRules>
A more complex transaction mapping with accounting in it and with a filter that makes the account transactions occur if the amount for asset 1 was more than 0 could look like below.
<BusinessTransactionMappingRule transactionType="MoneyTransfer">
<Filter>
<PropertyValue property="AmountAsset1" operator="GreaterThan" value="0"/>
</Filter>
<AccountTransactionItems>
<AccountTransaction dimension="T" amountType="AmountAsset1" assetType="Asset1" factor="1" transactionDate="TradeDate" xsi:type="AccountDefault" />
<AccountTransaction dimension="A" amountType="AmountAsset1" assetType="Asset1" factor="-1" transactionDate="TradeDate" xsi:type="AccountSelection" accountTypeKey="AccountingAccount" accountNo="2451" />
<AccountTransaction dimension="A" amountType="AmountAsset1" assetType="Asset1" factor="1" transactionDate="TradeDate" xsi:type="AccountSelection" accountTypeKey="AccountingAccount" accountNo="1650" />
</AccountTransactionItems>
</BusinessTransactionMappingRule>
The XSD schema for the transaction mapping looks like below.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:tns="http://www.bricknode.com/TransactionMapping"
elementFormDefault="qualified"
targetNamespace="http://www.bricknode.com/TransactionMapping"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="AllowedProperties">
<xs:restriction base="xs:string">
<xs:enumeration value="Account.AccountNo" />
<xs:enumeration value="Account.AccountType.Key" />
<xs:enumeration value="AmountAsset1" />
<xs:enumeration value="Amount2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PropertyOperator">
<xs:restriction base="xs:string">
<xs:enumeration value="LessThan" />
<xs:enumeration value="Equals" />
<xs:enumeration value="GreaterThan" />
<xs:enumeration value="NotEqual" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OperatorSymbol">
<xs:restriction base="xs:string">
<xs:enumeration value="AND" />
<xs:enumeration value="OR" />
</xs:restriction>
</xs:simpleType>
<xs:element name="BusinessTransactionMappingRules" nillable="true" type="tns:Rules" />
<xs:complexType name="Rules">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="BusinessTransactionMappingRule" nillable="true" type="tns:Rule" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Rule">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Filter" type="tns:FilterRule" />
<xs:element minOccurs="1" maxOccurs="1" name="AccountTransactionItems" type="tns:ArrayOfAccountTransactionItem" />
</xs:sequence>
<xs:attribute name="transactionType" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="FilterRule" >
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="1" maxOccurs="1" name="PropertyValue" type="tns:PropertyValue" />
<xs:element minOccurs="1" maxOccurs="1" name="Operator" type="tns:Operator" />
</xs:choice>
</xs:complexType>
<xs:complexType name="PropertyValue" >
<xs:attribute name="property" type="tns:AllowedProperties" use="required" />
<xs:attribute name="operator" type="tns:PropertyOperator" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="Operator">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="1" maxOccurs="unbounded" name="PropertyValue" type="tns:PropertyValue" />
<xs:element minOccurs="1" maxOccurs="unbounded" name="Operator" type="tns:Operator" />
</xs:choice>
<xs:attribute name="operator" type="tns:OperatorSymbol" use="required" />
</xs:complexType>
<xs:complexType name="ArrayOfAccountTransactionItem">
<xs:sequence >
<xs:element minOccurs="0" maxOccurs="unbounded" name="AccountTransaction" nillable="true" type="tns:AccountTransactionItemBase" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="AccountTransactionItemBase" abstract="true">
<xs:attribute name="amountType" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="AmountAsset1" />
<xs:enumeration value="AmountAsset2" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="factor" type="xs:double" use="optional" default="1" />
<xs:attribute name="assetType" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Asset1" />
<xs:enumeration value="Asset2" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="transactionDate" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TradeDate" />
<xs:enumeration value="SettlementDate" />
<xs:enumeration value="ValueDate" />
<xs:enumeration value="CurrentAccountingDate" />
<xs:enumeration value="CurrentSystemDate" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dimension" use ="required" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="T" />
<xs:enumeration value="S" />
<xs:enumeration value="A" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="useAcquisitionValue" use ="optional" type="xs:boolean" default="false" />
</xs:complexType>
<xs:complexType name="AccountDefault">
<xs:complexContent>
<xs:extension base="tns:AccountTransactionItemBase">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AccountSelection">
<xs:complexContent>
<xs:extension base="tns:AccountTransactionItemBase">
<xs:attribute name="accountTypeKey" type="xs:string" use="required" />
<xs:attribute name="accountNo" type="xs:string" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
© 2009 - 2023 Huddlestock Technologies AB All rights reserved | Huddlestock Terms of use | Support portal