Recommended transaction types for instrument lifecycle events

If you use the default transaction templates provided by LUSID for instrument lifecycle events then you must create transaction types with specific names residing in the default source.

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 for the events you wish to handle.

The transaction types on this page are suggestions only. You can design a transaction type to have any economic impact you like.

BondCouponEvent

The default transaction template for this instrument lifecycle event specifies one transaction type. Note this event applies to bonds modelled as Bond, InflationLinkedBond and ComplexBond (though excluding MBS).

BondCoupon

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/BondCoupon?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one transaction type. Note this event applies to bonds modelled as Bond, InflationLinkedBond and ComplexBond (though excluding MBS).

BondPrincipal

This transaction type is always required. See also: Movement types | Movement options | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/BondPrincipal?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one mandatory transaction type. Note this event applies to instruments modelled as CdsIndex and CreditDefaultSwap.

CreditPremiumCashFlow

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/CreditPremiumCashFlow?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "CreditPremiumCashFlow",
      "description": "Transaction type for credit premium cash flow event",
      "transactionClass": "Basic",
      "transactionRoles": "AllRoles",
      "isDefault": false
    }
  ],
  "movements": [
    {
      "name": "Decrease cash balance",
      "movementTypes": "CashCommitment",
      "side": "Side2",
      "direction": -1
    },
    {
      "name": "Record as a flow of value out",
      "movementTypes": "Carry",
      "side": "Side2",
      "direction": -1,
    }
  ],
  "calculations": [
    {
      "type": "Txn:TradeToPortfolioRate"
    },
    {
      "type": "Txn:ExchangeRate"
    }
  ]
}'

ExpiryEvent

The default transaction template for this instrument lifecycle event specifies one transaction type.

Expiry

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/Expiry?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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"
    }
  ]
}'

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

These transaction types can be combined into one type with two aliases (see this tutorial). It is required if the FX instrument mastered in LUSID is deliverable. See also: Movement types | Movement options | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/FxForwardDomPrincipal?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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):

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/FxForwardSettlementEventCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "security": "Txn:LusidInstrumentId",
  "currency": "Txn:TradeCurrency",
  "rate": "Txn:TradeToPortfolioRate",
  "units": "Txn:Units",
  "amount": "Txn:TotalConsiderationInTradeCurrency"
}'

NdfSettlement

This transaction type is required if the FX instrument mastered in LUSID is non-deliverable. See also: Movement types | Built-in sides | Calculation types

Coming soon...

MaturityEvent

The default transaction template for this instrument lifecycle event specifies one transaction type. Note this is a generic event that applies to many different types of instrument.

Maturity

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/Maturity?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one transaction type. Note this event applies only to bonds modelled as ComplexBond that are specially configured to be mortgage-backed securities.

MbsCoupon

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/MbsCoupon?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "MbsCoupon",
      "description": "Transaction type for MBS 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"
    }
  ]
}'

MbsInterestDeferralEvent

The default transaction template for this instrument lifecycle event specifies one transaction type. Note this event applies only to bonds modelled as ComplexBond that are specially configured to be mortgage-backed securities.

MbsInterestDeferral

This transaction type is always required. See also: Movement types | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/MbsInterestDeferral?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "MbsInterestDeferral",
      "description": "Transaction type for MBS interest deferral event",
      "transactionClass": "Basic",
      "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:

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one transaction type. Note this event applies only to bonds modelled as ComplexBond that are specially configured to be mortgage-backed securities.

MbsInterestShortfall

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/MbsInterestShortfall?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "MbsInterestShortfall",
      "description": "Transaction type for MBS interest shortfall event",
      "transactionClass": "Basic",
      "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"
    }
  ]
}'

MbsPrincipalEvent

The default transaction template for this instrument lifecycle event specifies one transaction type. Note this event applies only to bonds modelled as ComplexBond that are specially configured to be mortgage-backed securities.

MbsPrincipal

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/MbsPrincipal?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "MbsPrincipal",
      "description": "Transaction type for MBS principal event",
      "transactionClass": "Basic",
      "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:

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one transaction type. Note this event applies only to bonds modelled as ComplexBond that are specially configured to be mortgage-backed securities.

MbsPrincipalWriteOff

This transaction type is always required. See also: Movement types | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/MbsPrincipalWriteOff?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "MbsPrincipalWriteOff",
      "description": "Transaction type for MBS principal write-off event",
      "transactionClass": "Basic",
      "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:

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/MbsCurrentFaceCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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 one transaction type. Note this event applies to instruments modelled as ExchangeTradedOption and EquityOption.

CashSettledOptionExercise

This transaction type is required if the option is cash-settled, whether call or put. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/CashSettledOptionExercise?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "CashSettledOptionExercise",
      "description": "Transaction type for cash-settled option event",
      "transactionClass": "Basic",
      "transactionRoles": "AllRoles",
      "isDefault": false
    }
  ],
  "movements": [
    {
      "name": "Adjust cost of option",
      "movementTypes": "StockMovement",
      "side": "Side1",
      "direction": -1
    },
    {
      "name": "Adjust 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

This transaction type is required if the option is physically settled, for both call and put. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/PhysicallySettledOptionExercise?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "PhysicallySettledOptionExercise",
      "description": "Transaction type for physically settled option event",
      "transactionClass": "Basic",
      "transactionRoles": "AllRoles",
      "isDefault": false
    }
  ],
  "movements": [
    {
      "name": "Adjust cost of option",
      "movementTypes": "StockMovement",
      "side": "Side1",
      "direction": -1
    }
  ],
  "calculations": [
    {
      "type": "Txn:TradeToPortfolioRate"
    },
    {
      "type": "Txn:ExchangeRate"
    }
  ]
}'

CallOptionPhysicalExercise

This transaction type is required if the option is a physically settled call option. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/CallOptionPhysicalExercise?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "CallOptionPhysicalExercise",
      "description": "Transaction type for physically settled call option event",
      "transactionClass": "Basic",
      "transactionRoles": "AllRoles",
      "isDefault": false
    }
  ],
  "movements": [
    {
      "name": "Increase cost of 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:

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/CallOptionPhysicalExerciseCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "security": "Txn:SettleCcy",
  "currency": "Txn:SettlementCurrency",
  "rate": "SettledToPortfolioRate",
  "units": "Transaction/default/GrossConsideration",
  "amount": "Transaction/default/GrossConsideration"
}'

PutOptionPhysicalExercise

This transaction type is required if the option is a physically settled put option. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/PutOptionPhysicalExercise?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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:

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/sides/PutOptionPhysicalExerciseCustomSide?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "security": "Txn:SettleCcy",
  "currency": "Txn:SettlementCurrency",
  "rate": "SettledToPortfolioRate",
  "units": "Txn:TotalConsideration",
  "amount": "Transaction/default/GrossConsideration"
}'

ProtectionPayoutCashFlowEvent

The default transaction template for this instrument lifecycle event specifies one mandatory transaction type. Note this event applies to instruments modelled as CdsIndex and CreditDefaultSwap.

ProtectionPayoutCashFlow

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/ProtectionPayoutCashFlow?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -d '{
  "aliases": [
    {
      "type": "ProtectionPayoutCashFlow",
      "description": "Transaction type for protection payout cash flow event",
      "transactionClass": "Basic",
      "transactionRoles": "AllRoles",
      "isDefault": false
    }
  ],
  "movements": [
    {
      "name": "Set units to zero",
      "movementTypes": "StockMovement",
      "side": "Side1",
      "direction": -1
    },
    {
      "name": "Increase cash balance",
      "movementTypes": "CashReceivable",
      "side": "Side2",
      "direction": 1,
    }
  ],
  "calculations": [
    {
      "type": "Txn:TradeToPortfolioRate"
    },
    {
      "type": "Txn:ExchangeRate"
    }
  ]
}'

SwapCashFlowEvent

The default transaction template for this instrument lifecycle event specifies one mandatory transaction type. Note this event applies to instruments modelled as InflationSwap and InterestRateSwap.

SwapCashFlow

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/SwapCashFlow?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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": "Side2",
      "direction": 1,
    }
  ],
  "calculations": [
    {
      "type": "Txn:TradeToPortfolioRate"
    },
    {
      "type": "Txn:ExchangeRate"
    }
  ]
}'

SwapPrincipalEvent

The default transaction template for this instrument lifecycle event specifies one mandatory transaction type.

SwapPrincipal

This transaction type is always required. See also: Movement types | Built-in sides | Calculation types

curl -X PUT 'https://<your-domain>.lusid.com/api/api/transactionconfiguration/types/default/SwapPrincipal?scope=default'
  -H 'Content-Type: application/json-patch+json'
  -H 'Authorization: Bearer <your-API-access-token>'
  -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": "Side2",
      "direction": 1,
    }
  ],
  "calculations": [
    {
      "type": "Txn:TradeToPortfolioRate"
    },
    {
      "type": "Txn:ExchangeRate"
    }
  ]
}'