---
title: "How does LUSID resolve transaction templates and types for instrument lifecycle events?"
slug: "how-does-lusid-resolve-transaction-templates-and-types-for-instrument-lifecycle-events"
updated: 2025-07-30T07:30:05Z
published: 2025-07-30T07:30:05Z
canonical: "support.lusid.com/how-does-lusid-resolve-transaction-templates-and-types-for-instrument-lifecycle-events"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How does LUSID resolve transaction templates and types for instrument lifecycle events?

LUSID provides a **default transaction template** for every type of [instrument lifecycle event](/v1/docs/understanding-instrument-lifecycle-events-emitted-by-lusid), domiciled in the `default` (that is, system) template scope.

A default transaction template mandates a **transaction type** with a particular name (alias) and source for each transaction it generates in response to that event, and in addition expects to locate that transaction type in a particular scope. Note a transaction *type* scope is not the same as a transaction *template* scope. [More on transaction type scope and source resolution](/v1/docs/how-does-lusid-resolve-transactions-to-transaction-types).

> **Note**: LUSID does **not** provide transaction types for events. You must create these yourself. [See our recommendations](/v1/docs/recommended-transaction-types-for-instrument-lifecycle-events).

You have the option to override a default transaction template for an event by creating one in a custom template scope, perhaps specifying a transaction type with a different name and source. If you do, you must register this custom template scope with each portfolio you wish the event to impact.

The following diagram summarises how LUSID resolves transaction templates and transaction types each time it emits an event, using `BondCouponEvent` as an example:

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/InstrumentEventLifecycleResolution.png)

## Troubleshooting generated transactions

One or more transactions should be automatically generated in a portfolio in response to an instrument event. If they are not, the first step is to call the [QueryApplicableInstrumentEvents](https://www.lusid.com/docs/api/lusid/endpoints/instrument-events/QueryApplicableInstrumentEvents/) API for that portfolio.

You should see a record of each emitted event. Note the following:

- An event has a `completeness` status, which can either be `Complete` or `Incomplete`. Some events require market data in order to calculate amounts, for example fixings for inflation-linked bonds.
- If the status is `Incomplete`, there should be a `generatedEventDiagnostics` object in the response that helps diagnose the problem, for example: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(587).png)
- The `transactions` array should preview transaction(s) generated by the event. If this array is empty, it may mean LUSID cannot resolve the transaction type:
  - There may be a problem with the transaction type **source**. Are you using the default transaction template?
    - YES: The transaction type must be domiciled in the `default` source. Is there a transaction type with the expected name in this source?
    - NO: Have you specified a different source in your custom transaction template? Is there a transaction type with this name in this source?
  - There may be a problem with the transaction type **scope**. Does your portfolio have a transaction type scope set? (again, note this is *not* the same as a transaction template scope):
    - NO: The transaction type must be stored in the `default` scope. Is there a transaction type with the expected name and source in that scope?
    - YES: The transaction type must be stored in your custom scope. Is there a transaction type with the expected name and source in that scope?

Note a successfully-previewed transaction has a `resolvedTransactionTypeDetails` object that identifies the resolved transaction type, in this case `BondCoupon` in the `default` source and `default` scope:

```json
{
  "values": [
    {
      "portfolioId": {
        "scope": "FixedIncome",
        "code": "Growth"
      },
      "holdingId": 75318163,
      "lusidInstrumentId": "LUID_00003EA5",
      "instrumentScope": "default",
      "instrumentType": "Bond",
      "instrumentEventType": "BondCouponEvent",
      "instrumentEventId": "LUID_00003EA5_BondCouponEvent_20201022",
      "generatedEvent": {
        "instrumentEventId": "LUID_00003EA5_BondCouponEvent_20201022",
        "instrumentIdentifiers": {
          "Instrument/default/Figi": "BBG00ZF1T9P5"
        },
        "lusidInstrumentId": "LUID_00003EA5",
        "instrumentScope": "default",
        "description": "Queried External Instrument Event of Type BondCouponEvent",
        "eventDateRange": {
          "start": "2020-10-17T00:00:00.0000000+00:00",
          "end": "2020-10-22T00:00:00.0000000+00:00"
        },
        "completeness": "Complete",
        "instrumentEvent": {
          "exDate": "2020-10-17T00:00:00.0000000+00:00",
          "paymentDate": "2020-10-22T00:00:00.0000000+00:00",
          "currency": "GBP",
          "couponPerUnit": 0.1,
          "instrumentEventType": "BondCouponEvent"
        },
        "properties": [],
        "sequenceNumber": 0,
        "participationType": "Mandatory"
      },
      "transactions": [
        {
          "transactionId": "LUID_00003EA5_BondCouponEvent_20201022-75318163",
          "type": "BondCoupon",
          "instrumentIdentifiers": {
            "Instrument/default/LusidInstrumentId": "LUID_00003EA5"
          },
          "instrumentScope": "default",
          "instrumentUid": "LUID_00003EA5",
          "transactionDate": "2020-10-17T00:00:00.0000000+00:00",
          "settlementDate": "2020-10-22T00:00:00.0000000+00:00",
          "units": 50000,
          "transactionPrice": {
            "price": 0.1,
            "type": "CashFlowPerUnit"
          },
          "totalConsideration": {
            "amount": 5000,
            "currency": "GBP"
          },
          "exchangeRate": 1,
          "transactionCurrency": "GBP",
          "properties": {
            "Transaction/SHKs/BondPrincipal": {
              "key": "Transaction/SHKs/BondPrincipal",
              "value": {
                "labelValue": "<Not Classified>"
              }
            },
            "Transaction/SHKs/BondCoupons": {
              "key": "Transaction/SHKs/BondCoupons",
              "value": {
                "labelValue": "<Not Classified>"
              }
            }
          },
          "source": "default",
          "entryDateTime": "0001-01-01T00:00:00.0000000+00:00",
          "transactionStatus": "Active",
          "transactionGroupId": "LUID_00003EA5_BondCouponEvent_20201022",
          "resolvedTransactionTypeDetails": {
            "scope": "default",
            "source": "default",
            "type": "BondCoupon"
          }
        }
      ]
    }
  ],
  ...
}
```
