A transaction template specification is a set of rules that a transaction template must adhere to in order to handle a particular type of LUSID instrument event.
Note that an instrument event can either be:
An instrument lifecycle event. See a list.
A corporate action event. See a list.
LUSID provides a transaction template specification for every type of event, for example BondCouponEvent
. To examine this template specification, call the GetTransactionTemplateSpecification API as follows:
curl -X GET "https://<your-domain>.lusid.com/api/api/instrumenteventtypes/BondCouponEvent/transactiontemplatespecification"
-H "Authorization: Bearer <your-API-access-token>"
The response to this call is currently as follows (note transaction template specifications may evolve over time):
{
"instrumentEventType": "BondCouponEvent",
"supportedInstrumentTypes": [
"Bond",
"ComplexBond",
"InflationLinkedBond"
],
"supportedParticipationTypes": [
"Mandatory"
],
"supportedElectionTypes": [],
"supportedTemplateFields": [
{
"fieldName": "holdingId",
"specificity": "AllEventsAndHoldings",
"description": "The id of the holding to which the instrument event is being applied",
"type": "String",
"usage": [
"holdingId"
]
},
{
"fieldName": "holdingCurrency",
"specificity": "AllEventsAndHoldings",
"description": "The currency of the holding to which the instrument event is being applied",
"type": "Currency",
"usage": [
"holdingCurrency"
]
},
{
"fieldName": "instrumentEventId",
"specificity": "AllEventsAndHoldings",
"description": "The id of the instrument event that is being applied to the holding",
"type": "String",
"usage": [
"instrumentEventId"
]
},
{
"fieldName": "instrument",
"specificity": "AllEventsAndHoldings",
"description": "The instrument of the holding and instrument event",
"type": "InstrumentId",
"usage": [
"instrument"
]
},
{
"fieldName": "eligibleBalance",
"specificity": "AllEventsAndHoldings",
"description": "The number of units of the instrument held on the instrument event's entitlement date (typically the exDate)",
"type": "Decimal",
"usage": [
"eligibleBalance"
]
},
{
"fieldName": "exDate",
"specificity": "InstrumentEventType",
"description": "The ex date (entitlement date) of the coupon",
"type": "DateTime",
"usage": [
"BondCouponEvent.exDate"
]
},
{
"fieldName": "paymentDate",
"specificity": "InstrumentEventType",
"description": "The payment date of the coupon",
"type": "DateTime",
"usage": [
"BondCouponEvent.paymentDate"
]
},
{
"fieldName": "currency",
"specificity": "InstrumentEventType",
"description": "The currency in which the coupon is paid",
"type": "Currency",
"usage": [
"BondCouponEvent.currency"
]
},
{
"fieldName": "couponPerUnit",
"specificity": "InstrumentEventType",
"description": "The coupon amount received for each unit of the instrument held on the ex date",
"type": "Decimal",
"usage": [
"BondCouponEvent.couponPerUnit"
]
},
{
"fieldName": "couponAmount",
"specificity": "InstrumentEventType",
"description": "The total coupon amount received for the holding, calculated as couponPerUnit x eligibleBalance",
"type": "Decimal",
"usage": [
"BondCouponEvent.couponAmount"
]
}
],
"eligibilityCalculation": {
"entitlementDate": "exDate",
"eligibleUnits": "SettledUnits"
}
}
Note the following:
This transaction template specification defines rules for a transaction template designed to handle instrument events of type
BondCouponEvent
.The
supportedInstrumentTypes
array lists the types of instrument that emit this event.The
supportedParticipationTypes
array lists onlyMandatory
because instrument lifecycle events have no user input and are always mandatory. A corporate action event, on the other hand, can be optional or have elective choices defined in thesupportedElectionTypes
array.The
supportedTemplateFields
array lists the variables available to include in a transaction template. In each, theusage
array defines the syntax for use with the Mustache template system, so for example you can insert a variable representing a bond coupon amount as{{BondCouponEvent.CouponAmount}}
.The
eligibilityCalculation
object defines how the eligible balance is calculated. For a bond coupon, this is the number of settled units held in a portfolio on the ex-dividend date; note this might be different to the number of traded units.