--- title: "Recommended transaction types for instrument lifecycle events" slug: "recommended-transaction-types-for-instrument-lifecycle-events" updated: 2026-10-12T14:56:06Z published: 2026-10-12T14:56:06Z canonical: "support.lusid.com/recommended-transaction-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. # Recommended transaction types for instrument lifecycle events If you use the default transaction templates provided by LUSID for [instrument lifecycle events](/v1/docs/understanding-instrument-lifecycle-events-emitted-by-lusid) then you **must** create transaction types with specific names residing in the `default` [source](/v1/docs/grouping-related-transaction-types-using-scopes-and-sources). If you wish to change transaction type names and/or sources then you cannot use the default transaction templates and must instead [create custom transaction templates](/v1/docs/how-do-i-create-a-custom-transaction-template) for the events you wish to handle. The transaction types on this page are suggestions only. You can [design a transaction type](/v1/docs/what-is-a-transaction-type) to have any economic impact you like. ## `BondCouponEvent` The default transaction template for this instrument lifecycle event specifies a `BondCoupon` transaction type. Note this event applies to bonds modelled as `Bond`, `InflationLinkedBond` and `ComplexBond` (though excluding MBS). A PIK bond’s `PikBondCashCouponEvent` also uses this transaction type. ### `BondCoupon` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/BondCoupon?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "BondCoupon",      "description": "Transaction type for bond coupon event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance",      "movementTypes": "CashAccrual",      "side": "Side2",      "direction": 1    },    {      "name": "Report income as a flow out of the security",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `BondPrincipalEvent` The default transaction template for this instrument lifecycle event specifies a `BondPrincipal` transaction type. Note this event applies to bonds modelled as `Bond`, `InflationLinkedBond` and `ComplexBond` (though excluding MBS). ### `BondPrincipal` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Movement options](/v1/docs/what-is-a-movement) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/BondPrincipal?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "BondPrincipal",      "description": "Transaction type for bond principal event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Set cost to zero without reducing units",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1,      "movementOptions": ["Virtual"]    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `CreditPremiumCashFlowEvent` The default transaction template for this instrument lifecycle event specifies a `CreditPremiumCashFlow` transaction type. Note this event applies to instruments modelled as `CdsIndex` and `CreditDefaultSwap`. ### `CreditPremiumCashFlow` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/CreditPremiumCashFlow?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "CreditPremiumCashFlow",      "description": "Transaction type for credit premium cash flow event",      "transactionClass": "CreditDefaultSwapPremium",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Premium payment",      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1    },    {      "name": "Premium payment carry",      "movementTypes": "Carry",      "side": "SignedSide1",               # <--Custom side, see below      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `Carry` movement uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/SignedSide1?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsiderationInTradeCurrency", }' ``` ## `EarlyRedemptionEvent` The default transaction template for this instrument event specifies two transaction types. Note this event can be [manually loaded](/v1/docs/redeeming-a-bond-early) for bonds modelled as `Bond`, `InflationLinkedBond` and `ComplexBond` (though excluding MBS). ### `BondEarlyRedemption` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Movement options](/v1/docs/what-is-a-movement) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/BondEarlyRedemption?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "BondEarlyRedemption",      "description": "Transaction type for bond early redemption event - return of principal",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance by principal returned",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Reduce units of bond holding",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ### `BondEarlyRedemptionAccrued` transaction type This transaction type is required if interest accrued since the last coupon is greater than zero. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Movement options](/v1/docs/what-is-a-movement) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/BondEarlyRedemptionAccrued?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "BondEarlyRedemptionAccrued",      "description": "Transaction type for bond early redemption event - return of accrued interest",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance by accrued interest returned, if any",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Report income",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `ExpiryEvent` The default transaction template for this instrument lifecycle event specifies an `Expiry` transaction type. ### `Expiry` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/Expiry?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "Expiry",      "description": "Transaction type for expiry event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Set units to zero",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `FlexibleRepoCashFlowEvent` The default transaction template for this instrument lifecycle event specifies a `FlexibleRepoCashTransfer` transaction type. ### `FlexibleRepoCashTransfer` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FlexibleRepoCashTransfer?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FlexibleRepoCashTransfer",      "description": "Transaction type for transactions automatically generated by FlexibleRepoCashFlowEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Transfer cash",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Impact cost of stock (without affecting units)",      "movementTypes": "StockMovement",      "side": "Side1RepoCashTransfer",             # <--Custom side, see below      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `StockMovement` uses a custom side ([see this tutorial](/v1/docs/handling-instrument-events-for-repurchase-agreements)): ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/Side1RepoCashTransfer?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "0",  "amount": "Txn:TotalConsideration", }' ``` ## `FlexibleRepoCollateralEvent` The default transaction template for this instrument lifecycle event specifies a `FlexibleRepoCollateralTransfer` transaction type. ### `FlexibleRepoCollateralTransfer` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FlexibleRepoCollateralTransfer?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FlexibleRepoCollateralTransfer",      "description": "Transaction type for transactions automatically generated by FlexibleRepoCollateralEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Transfer collateral",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `FlexibleRepoInterestPaymentEvent` The default transaction template for this instrument lifecycle event specifies a `FlexibleRepoInterestPayment` transaction type. ### `FlexibleRepoInterestPayment` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FlexibleRepoInterestPayment?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FlexibleRepoInterestPayment",      "description": "Transaction type for transactions automatically generated by FlexibleRepoInterestPaymentEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Transfer repo interest",      "movementTypes": "CashAccrual",      "side": "Side2",      "direction": 1    },    {      "name": "Report repo interest",      "movementTypes": "Carry",      "side": "Side1RepoInterestPayment",             # <--Custom side, see below      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `Carry` movement uses a custom side ([see this tutorial](/v1/docs/handling-instrument-events-for-repurchase-agreements)): ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/Side1RepoInterestPayment?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsideration", }' ``` ## `FutureExpiryEvent` The default transaction template for this instrument lifecycle event specifies a `FutureCashSettlement` transaction type. ### `FutureCashSettlement` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FutureCashSettlement?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FutureCashSettlement",      "description": "Transaction type for transactions automatically generated by FutureExpiryEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Set units to 0",      "movementTypes": "StockMovement",      "side": "NotionalCustomSide",              # <--Custom side, see below      "direction": -1    },    {      "name": "Realise contract gain or loss",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:GrossConsideration"    },    {      "type": "DeriveTotalConsideration",      "formula": "Txn:GrossConsideration"    }  ] }' ``` The `StockMovement` uses a custom side ([see this tutorial](/v1/docs/handling-future-mark-to-market-and-expiry-events#creating-a-suitable-futurecashsettlement-transaction-type)): ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/NotionalCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsideration",  "notionalAmount": "Transaction/default/NotionalAmount" }' ``` ## `FutureMarkToMarketEvent` The default transaction template for this instrument lifecycle event specifies a `FutureMarkToMarket` transaction type. ### `FutureMarkToMarket` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FutureMarkToMarket?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FutureMarkToMarket",      "description": "Transaction type for transactions automatically generated by FutureMarkToMarketEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Adjust notional cost up or down",      "movementTypes": "VariationMargin",      "side": "MTMCustomSide",                   # <--Custom side, see below      "direction": 1    },    {      "name": "Realise daily gain or loss",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:GrossConsideration"    },    {      "type": "DeriveTotalConsideration",      "formula": "Txn:GrossConsideration"    }  ] }' ``` The `VariationMargin` movement uses a custom side ([see this tutorial](/v1/docs/handling-future-mark-to-market-and-expiry-events#creating-a-suitable-futuremarktomarket-transaction-type)): ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/MTMCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsideration" }' ``` ## `FxForwardSettlementEvent` The default transaction template for this instrument lifecycle event specifies three transaction types, all conditional. Note this event applies to instruments modelled as `FxForward` and `FxSwap`. ### `FxForwardDomPrincipal` and `FxForwardFgnPrincipal` transaction types These transaction types can be combined into one type with two aliases ([see this tutorial](/v1/docs/handling-fxforward-settlement-and-maturity-instrument-lifecycle-events#creating-a-suitable-transaction-type-for-settlement-event-output-transactions)). It is required if the FX instrument mastered in LUSID is deliverable. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Movement options](/v1/docs/what-is-a-movement) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/FxForwardDomPrincipal?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "FxForwardDomPrincipal",      "description": "Settle the domestic leg of a FxForwardSettlementEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    },    {      "type": "FxForwardFgnPrincipal",      "description": "Settle the foreign leg of a FxForwardSettlementEvent",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Virtually sell the individual legs to calculate realised gain/loss",      "movementTypes": "StockMovement",      "side": "FxForwardSettlementEventCustomSide",    # <--Custom side, see below      "direction": -1,      "movementOptions": ["Virtual"]    },    {      "name": "Manifest the cash holdings",      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `StockMovement` uses a custom side ([see this tutorial](/v1/docs/handling-fxforward-settlement-and-maturity-instrument-lifecycle-events#creating-a-suitable-transaction-type-for-settlement-event-output-transactions)): ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/FxForwardSettlementEventCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsiderationInTradeCurrency" }' ``` ### `NdfSettlement` transaction type This transaction type is required if the FX instrument mastered in LUSID is non-deliverable. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/NdfSettlement?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "NdfSettlement",      "description": "NDF FxForward cash settlement",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "movementTypes": "StockMovement",      "side": "NDFMaturityCustomSide",      # <--Custom side, see below      "direction": -1    },    {      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1,    },    {      "movementTypes": "CashCommitment",      "side": "NDFRealisedPnLCustomSide",   # <--Custom side, see below      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    },    {      "type": "Txn:GrossConsideration"    }  ] }' ``` The `StockMovement` uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/NDFMaturityCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "0" }' ``` The `Carry` movement uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/NDFRealisedPnLCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsiderationInTradeCurrency" }' ``` ## `MaturityEvent` The default transaction template for this instrument lifecycle event specifies a `Maturity` transaction type. Note this is a generic event that applies to many different types of instrument. ### `Maturity` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/Maturity?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "Maturity",      "description": "Transaction type for maturity event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Set units to zero",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `MbsCouponEvent` The default transaction template for this instrument lifecycle event specifies a `MbsCoupon` transaction type. Note this event applies only to bonds modelled as `ComplexBond` that are specially configured to be mortgage-backed securities. ### `MbsCoupon` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/MbsCoupon?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "MbsCoupon",      "description": "Transaction type for MBS coupon event",      "transactionClass": "MbsCoupon",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance",      "movementTypes": "CashAccrual",      "side": "Side2",      "direction": 1    },    {      "name": "Report income as a flow out of the security",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `MbsInterestDeferralEvent` The default transaction template for this instrument lifecycle event specifies a `MbsInterestDeferral` transaction type. Note this event applies only to bonds modelled as `ComplexBond` that are specially configured to be mortgage-backed securities. ### `MbsInterestDeferral` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/MbsInterestDeferral?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "MbsInterestDeferral",      "description": "Transaction type for MBS interest deferral event",      "transactionClass": "MbsInterestDeferral",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Adjust current face",      "movementTypes": "StockMovement",      "side": "MbsCurrentFaceCustomSide",        # <--Custom side, see below      "direction": -1    },    {      "name": "Report adjustment as a flow of value",      "movementTypes": "Carry",      "side": "MbsCurrentFaceCustomSide",        # <--Custom side, see below      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` Note LUSID generates an `MbsInterestDeferralEvent` with a negative amount, so both movements have a `direction` of `-1` in order to increase the current face of the holding by the interest deferred. Both movements use the same custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "0",  "amount": "Txn:TotalConsideration",  "currentFace": "Txn:TotalConsideration" }' ``` ## `MbsInterestShortfallEvent` The default transaction template for this instrument lifecycle event specifies a `MbsInterestShortfall` transaction type. Note this event applies only to bonds modelled as `ComplexBond` that are specially configured to be mortgage-backed securities. ### `MbsInterestShortfall` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/MbsInterestShortfall?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "MbsInterestShortfall",      "description": "Transaction type for MBS interest shortfall event",      "transactionClass": "MbsInterestShortfall",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Adjust cash balance",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Report adjustment as a flow of value",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` Note LUSID generates an `MbsInterestShortfallEvent` with a negative amount for a shortfall, so both movements have a `direction` of `1` in order to reduce the cash receivable by the interest not paid. ## `MbsPrincipalEvent` The default transaction template for this instrument lifecycle event specifies a `MbsPrincipal` transaction type. Note this event applies only to bonds modelled as `ComplexBond` that are specially configured to be mortgage-backed securities. ### `MbsPrincipal` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/MbsPrincipal?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "MbsPrincipal",      "description": "Transaction type for MBS principal event",      "transactionClass": "MbsPrincipal",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    },    {      "name": "Adjust current face",      "movementTypes": "StockMovement",      "side": "MbsCurrentFaceCustomSide",        # <--Custom side, see below      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `StockMovement` uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "0",  "amount": "Txn:TotalConsideration",  "currentFace": "Txn:TotalConsideration" }' ``` ## `MbsPrincipalWriteOffEvent` The default transaction template for this instrument lifecycle event specifies a `MbsPrincipalWriteOff` transaction type. Note this event applies only to bonds modelled as `ComplexBond` that are specially configured to be mortgage-backed securities. ### `MbsPrincipalWriteOff` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/MbsPrincipalWriteOff?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "MbsPrincipalWriteOff",      "description": "Transaction type for MBS principal write-off event",      "transactionClass": "MbsPrincipalWriteOff",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Adjust current face",      "movementTypes": "StockMovement",      "side": "MbsCurrentFaceCustomSide",        # <--Custom side, see below      "direction": -1    },    {      "name": "Report adjustment as a flow of value",      "movementTypes": "Carry",      "side": "MbsCurrentFaceCustomSide",        # <--Custom side, see below      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` Both movements use the same custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "0",  "amount": "Txn:TotalConsideration",  "currentFace": "Txn:TotalConsideration" }' ``` ## `OptionExerciseCashEvent` The default transaction template for this instrument lifecycle event specifies a `CashSettledOptionExercise` transaction type. Note this event applies to instruments modelled as `ExchangeTradedOption` and `EquityOption`. ### `CashSettledOptionExercise` transaction type This transaction type is required if the option is cash-settled, whether call or put. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/CashSettledOptionExercise?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "CashSettledOptionExercise",      "description": "Transaction type for cash-settled option event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Set option holding to zero",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    },    {      "name": "Increase cash balance",      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `OptionExercisePhysicalEvent` The default transaction template for this instrument lifecycle event specifies three transaction types. Note this event applies to instruments modelled as `ExchangeTradedOption` and `EquityOption`. ### `PhysicallySettledOptionExercise` transaction type This transaction type is required if the option is physically settled, both call and put. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PhysicallySettledOptionExercise?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PhysicallySettledOptionExercise",      "description": "Transaction type for physically settled option event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Set option holding to zero",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ### `CallOptionPhysicalExercise` transaction type This transaction type is required if the option is a physically-settled call option. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/CallOptionPhysicalExercise?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "CallOptionPhysicalExercise",      "description": "Transaction type for physically settled call option event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Establish holding in underlying",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": 1    },    {      "name": "Decrease cash balance",      "movementTypes": "CashCommitment",      "side": "CallOptionPhysicalExerciseCustomSide",   # <--Custom side, see below      "direction": -1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `CashCommitment` movement uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/CallOptionPhysicalExerciseCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:SettleCcy",  "currency": "Txn:SettlementCurrency",  "rate": "SettledToPortfolioRate",  "units": "Transaction/default/GrossConsideration",  "amount": "Transaction/default/GrossConsideration" }' ``` ### `PutOptionPhysicalExercise` transaction type This transaction type is required if the option is a physically-settled put option. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PutOptionPhysicalExercise?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PutOptionPhysicalExercise",      "description": "Transaction type for physically settled put option event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Decrease cost of underlying",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    },    {      "name": "Increase cash balance",      "movementTypes": "CashReceivable",      "side": "PutOptionPhysicalExerciseCustomSide",   # <--Custom side, see below      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `CashReceivable` movement uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/PutOptionPhysicalExerciseCustomSide?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:SettleCcy",  "currency": "Txn:SettlementCurrency",  "rate": "SettledToPortfolioRate",  "units": "Transaction/default/GrossConsideration",  "amount": "Transaction/default/GrossConsideration" }' ``` ## `PikBondCashCouponEvent` See [BondCouponEvent](/v1/docs/recommended-transaction-types-for-instrument-lifecycle-events#bondcouponevent). ## `PikBondInterestCapitalisationEvent` This event applies only to bonds modelled as `ComplexBond` that are specially configured to be [PIK bonds](/v1/docs/modelling-pik-bonds-in-lusid) with a `pikPaymentType` of `InterestCapitalisation`. ### `BondInterestCapitalisation` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/BondInterestCapitalisation?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "BondInterestCapitalisation",      "description": "Transaction type for PIK bond interest capitalisation event",      "transactionClass": "BondInterestCapitalisation",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase current face and cost",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": 1    },    {      "name": "Report capitalised interest as income",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `PikBondInterestEvent` This event applies only to bonds modelled as `ComplexBond` that are specially configured to be [PIK bonds](/v1/docs/modelling-pik-bonds-in-lusid) with a `pikPaymentType` of `AdditionalSecurities`. The PIK interest is paid by delivering units of a security: the bond itself, or the instrument specified in `pikDeliverable`. ### `PikBondInterest` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PikBondInterest?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PikBondInterest",      "description": "Transaction type for PIK bond interest paid in securities",      "transactionClass": "PikBondInterest",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Report PIK interest as income",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ### `PikBondInterestNewUnits` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PikBondInterestNewUnits?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PikBondInterestNewUnits",      "description": "Transaction type for securities delivered as PIK bond interest",      "transactionClass": "PikBondInterestNewUnits",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase units of delivered security",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ### `PikBondInterestCashInLieu` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PikBondInterestCashInLieu?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PikBondInterestCashInLieu",      "description": "Transaction type for cash in lieu of fractional PIK units",      "transactionClass": "PikBondInterestCashInLieu",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Increase cash balance",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `PikBondPrincipalEvent` This event applies only to bonds modelled as `ComplexBond` that are specially configured to be [PIK bonds](/v1/docs/modelling-pik-bonds-in-lusid). It repays the current face of the holding, including all capitalised interest, at maturity. ### `PikBondPrincipal` transaction type See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/PikBondPrincipal?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "PikBondPrincipal",      "description": "Transaction type for PIK bond principal event",      "transactionClass": "PikBondPrincipal",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Decrease current face",      "movementTypes": "StockMovement",      "side": "Side1",      "direction": -1    },    {      "name": "Increase cash balance",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `ProtectionPayoutCashFlowEvent` The default transaction template for this instrument lifecycle event specifies a `ProtectionPayoutCashFlow` transaction type. Note this event applies to instruments modelled as `CdsIndex` and `CreditDefaultSwap`. ### `ProtectionPayoutCashFlow` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/ProtectionPayoutCashFlow?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "ProtectionPayoutCashFlow",      "description": "Transaction type for protection payout cash flow event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Protection payout",      "movementTypes": "CashReceivable",      "side": "Side2",      "direction": 1,    },    {      "name": "Protection payout carry",      "movementTypes": "Carry",      "side": "SignedSide1",               # <--Custom side, see below      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` The `Carry` movement uses a custom side: ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/sides/SignedSide1?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "security": "Txn:LusidInstrumentId",  "currency": "Txn:TradeCurrency",  "rate": "Txn:TradeToPortfolioRate",  "units": "Txn:Units",  "amount": "Txn:TotalConsiderationInTradeCurrency", }' ``` ## `SwapCashFlowEvent` The default transaction template for this instrument lifecycle event specifies a `SwapCashFlow` transaction type. Note this event applies to instruments modelled as `InflationSwap` and `InterestRateSwap`. ### `SwapCashFlow` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/SwapCashFlow?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "SwapCashFlow",      "description": "Transaction type for swap cash flow event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Pay/receive cashflow",      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1    },    {      "name": "Report as a flow of value in/out",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ``` ## `SwapPrincipalEvent` The default transaction template for this instrument lifecycle event specifies a `SwapPrincipal` transaction type. ### `SwapPrincipal` transaction type This transaction type is always required. See also: [Movement types](/v1/docs/what-movement-types-are-available) | [Built-in sides](https://support.lusid.com/docs/what-built-in-transaction-types-and-sides-are-provided-with-lusid#builtin-sides) | [Calculation types](https://support.lusid.com/docs/what-is-a-transaction-type-calculation) ```json curl -X PUT 'https://.lusid.com/api/api/transactionconfiguration/types/default/SwapPrincipal?scope=default'  -H 'Content-Type: application/json-patch+json'  -H 'Authorization: Bearer '  -d '{  "aliases": [    {      "type": "SwapPrincipal",      "description": "Transaction type for swap principal event",      "transactionClass": "Basic",      "transactionRoles": "AllRoles",      "isDefault": false    }  ],  "movements": [    {      "name": "Pay/receive cashflow",      "movementTypes": "CashCommitment",      "side": "Side2",      "direction": 1    },    {      "name": "Report as a flow of value in/out",      "movementTypes": "Carry",      "side": "Side1",      "direction": 1,    }  ],  "calculations": [    {      "type": "Txn:TradeToPortfolioRate"    },    {      "type": "Txn:ExchangeRate"    }  ] }' ```