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

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:

[BFSInstanceName/Default/SpecificModule]_[Trade/Transfer/Payment]_[Transaction dimension (Trade/Settle]_[Description]

If the transaction type belongs to the general framework the first part of the transaction will be named "Default". If the transaction type is customized for the BFS-instance the first part could be named "Custom".

BFS has a number of default transaction types which are named according to the following:

Default_Trade_Buy
Default_Transfer_Settle_Cash
Default_Transfer_Trade_Cash
etc... 

Status

The status of the transaction type defines which userlevels will be able to utilize the transaction type. The available settings are:

  • Closed

  • Open

  • Open (Admin) only open to admin users

  • Open (Partner) only open to advisor users and admin users

  • Pending viewable by admin users in the transaction type lists but not available for use

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