# Trade model: ESP

This page describes the FX Integration API's **ESP** trade model, as defined in the file `config/TradingAdapter/Blade/DataSource/etc/trademodels.xml` in the FX Integration API Kit.

This documentation is for the FX Integration API 12.10.0.

Trade models are XML-defined state machines used by the [Java Trading API](https://docs.caplin.com/developer/api/trading_java/latest/) and Caplin Trader's [Trading API](../caplin-trader/4/trading-api/index.md) to manage trading workflows. For more information on trade model XML definitions, see the [Trade model XML schema](../caplin-platform/cis/cis-trade-model-schema.md) reference.

## State model

The ESP trade model's state model in Mermaid JS format:

```mermaid
stateDiagram-v2
%% ESP
    [*] --> Initial
    Initial --> Submitted : Submit (client)
    Submitted --> Error : Error (server)
    Submitted --> Queued : SubmitAck (server)
    Submitted --> Rejected : Reject (server)
    Error --> [*]
    Queued --> Error : Error (server)
    Queued --> PickedUp : PickUp (server)
    Queued --> Rejected : Reject (server)
    Queued --> ClientCloseSent : ClientClose (client)
    PickedUp --> Error : Error (server)
    PickedUp --> Queued : Hold (server)
    PickedUp --> TradeConfirmed : TradeConfirmation (server)
    PickedUp --> Rejected : Reject (server)
    TradeConfirmed --> [*]
    Rejected --> [*]
    ClientCloseSent --> ClientClosed : ClientCloseAck (server)
    ClientCloseSent --> Error : Error (server)
    ClientClosed --> [*]
```

The ESP trade model's state model in a flat state-transition matrix:

| Source state | Event trigger | Origin | Target state |
| ------------ | ------------- | ------ | ------------ |
| [*] | - | - | Initial |
| Initial | Submit | client | Submitted |
| Submitted | Error | server | Error |
| Submitted | SubmitAck | server | Queued |
| Submitted | Reject | server | Rejected |
| Error | - | - | [*] |
| Queued | Error | server | Error |
| Queued | PickUp | server | PickedUp |
| Queued | Reject | server | Rejected |
| Queued | ClientClose | client | ClientCloseSent |
| PickedUp | Error | server | Error |
| PickedUp | Hold | server | Queued |
| PickedUp | TradeConfirmation | server | TradeConfirmed |
| PickedUp | Reject | server | Rejected |
| TradeConfirmed | - | - | [*] |
| Rejected | - | - | [*] |
| ClientCloseSent | ClientCloseAck | server | ClientClosed |
| ClientCloseSent | Error | server | Error |
| ClientClosed | - | - | [*] |

## Event message specifications

This section describes the messages sent between client and server when a state-model event occurs. The origin of an event (the client or the server) is specified in brackets after the name of the event.

The specification of some events depends on the type of financial product being traded, and when this applies, the variant specifications are detailed under level-4 headings.

Back-end developers build server events by using classes in the Caplin's FX Integration API, a Java library that makes it easy to provide data to Caplin's web applications. Where appropriate, the specifications below include references to JavaDoc documentation and code examples.

### Event: Submit (client)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "Submit",
  "message_origin": "client",
  "parts": [
    {
      "part_name": "ESPSubmission",
      "parts": [
        {
          "part_name": "ESPSubmissionLeg",
          "fields": [
            {
              "name": "Ln_Price",
              "type": "string",
              "flags": "",
              "definition": "This is the all-in rate that the client wants to trade on. The value of this field must equal the value of either the L*_AllInBidRate or L*_AllInAskRate field on the rate update that the client is executing. The front end typically populates this field by reading the currently rendered price on the buy or sell button at the time the user clicks",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "Ln_FwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of pips to be added or subtracted from the spot rate to form the forward rate.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "Ln_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": true
            },
            {
              "name": "Ln_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_BuySell",
              "type": "string",
              "flags": "",
              "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_SettlementDate",
              "type": "string",
              "flags": "",
              "definition": "The date on which the two currencies in the FX trade are exchanged. Can be a tenor or a broken date, i.e. SPOT or 20160314.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "Ln_RequestedProfitCurrency",
              "type": "string",
              "flags": "",
              "definition": "The preferred currency to be used in calculating sales profit details.",
              "example_value": "USD",
              "deprecated": false
            },
            {
              "name": "Ln_Tenor",
              "type": "string",
              "flags": "",
              "definition": "Supported types are [ON, [TODAY, TOD, TD], TN, [TOM, ND], SPOT, SN, 1D, 1W, 2W, 3W, 4W, 1M, 2M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, [1Y, 12M], 15M, 18M, 21M, [2Y, 24M], [3Y, 36M], [4Y, 48M], [5Y, 60M], broken]. 'broken' indicates that the settlement date does not fall onto a tenor.",
              "example_value": "1M",
              "deprecated": false
            },
            {
              "name": "Ln_FixingDate",
              "type": "string",
              "flags": "",
              "definition": "This is the day and time whereby the comparison between the NDF rate and the prevailing spot rate is made.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "Ln_TOBOUser",
              "type": "string",
              "flags": "",
              "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
              "example_value": "client@customer.co.za",
              "deprecated": false
            },
            {
              "name": "Ln_Remarks",
              "type": "string",
              "flags": "",
              "definition": "The text content of a comment left on a leg of a trade or order, visible to Client and sales and possibly the trader, set/edited by Client or sales",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_TraderRemarks",
              "type": "string",
              "flags": "",
              "definition": "The sale's comments on an order leg - visible to only the Trader and sales, set/edited only by the sales",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SettlementLeg",
          "fields": [
            {
              "name": "Un_PaySettlementID",
              "type": "",
              "flags": "",
              "definition": "The ID corresponding to the payee's settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Un_PaySettlementRemarks",
              "type": "",
              "flags": "",
              "definition": "The remarks corresponding to the payee's settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Un_PaySettlementInstructionType",
              "type": "",
              "flags": "",
              "definition": "The type of settlement instruction on the pay side.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Un_ReceiveSettlementID",
              "type": "",
              "flags": "",
              "definition": "The ID corresponding to the recipient's settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Un_ReceiveSettlementRemarks",
              "type": "",
              "flags": "",
              "definition": "The remarks corresponding to the recipient's settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Un_ReceiveSettlementInstructionType",
              "type": "",
              "flags": "",
              "definition": "The type of settlement instruction on the receive side.",
              "example_value": "",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "LocationType",
          "type": "string",
          "flags": "",
          "definition": "Describes whether a non deliverable trade is for an onshore or offshore client. Enum of: ONSHORE, OFFSHORE.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SettlementCurrency",
          "type": "string",
          "flags": "",
          "definition": "A currency for of settlement instruction",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "CurrencyPair",
          "type": "string",
          "flags": "",
          "definition": "The currency pair for the trade. For example, EURUSD",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "DealtCurrency",
          "type": "string",
          "flags": "",
          "definition": "The currency of the Amount of a trade or order.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "AssetClass",
          "type": "",
          "flags": "",
          "definition": "The asset class for the trade; used by permissioning and licensing. Example value: FX",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "TradingAssetClass",
          "type": "",
          "flags": "",
          "definition": "The trading asset class for the trade; used by permissioning and licensing. Example value: FX",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "TradingProtocol",
          "type": "",
          "flags": "",
          "definition": "The trade protocol, e.g, ESP or RFS. The Trading DataSource library needs this so that it knows which state model to use for the trade. Also used for permissioning.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "TradingSubProtocol",
          "type": "string",
          "flags": "",
          "definition": "This field is used to indicate to the back end that the user is requesting a trade with Sales functionality.",
          "example_value": "SALES_RFS",
          "deprecated": false
        },
        {
          "name": "Account",
          "type": "string",
          "flags": "",
          "definition": "The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>",
          "example_value": "Garfields|GARF",
          "deprecated": false
        },
        {
          "name": "TOBOUser",
          "type": "string",
          "flags": "",
          "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
          "example_value": "client@customer.co.za",
          "deprecated": false
        },
        {
          "name": "ControlAddLeg",
          "type": "",
          "flags": "",
          "definition": "This is a control field that the front end trading library adds automatically. The user code doesn't need to do anything with this.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "TradingType",
          "type": "string",
          "flags": "",
          "definition": "Caplin supported values are [SPOT, FWD, NDF, NDF_FIXING, NDS, TIME_OPTION, DRAWDOWN, SWAP, BLOCK, PAR_FORWARD]. See the constants defined within com.caplin.motif.fx.trading.FXTradingType for further details.",
          "example_value": "SPOT",
          "deprecated": false
        },
        {
          "name": "Purpose",
          "type": "string",
          "flags": "",
          "definition": "The purpose of a trade.",
          "example_value": "Commercial",
          "deprecated": false
        },
        {
          "name": "IsCommercial",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the given trade is commercial or not",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AppID",
          "type": "",
          "flags": "",
          "definition": "A unique identifier for the client application",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ],
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "Submit",
      "deprecated": false
    },
    {
      "name": "RequestID",
      "type": "String",
      "flags": "",
      "definition": "The RequestID. A Unique identifier, must remain the same for each event in the trade model",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "QuoteID",
      "type": "string",
      "flags": "",
      "definition": "The unique ID of the quote the client wants to trade on.",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "SpotRate",
      "type": "decimal",
      "flags": "",
      "definition": "The rate for trading two currencies on the spot settlement date.",
      "example_value": "1.08341",
      "deprecated": false
    },
    {
      "name": "OneClickActionType",
      "type": "string",
      "flags": "",
      "definition": "This field is used to tell the server if and how to apply slippage. The possible values are: FillAtMarket, FillAtMyRate or AllowFillSlippage.",
      "example_value": "FillAtMyRate",
      "deprecated": false
    },
    {
      "name": "IsCoverTrade",
      "type": "boolean",
      "flags": "",
      "definition": "This field is used to indicate to the back end that a cover trade has been submitted",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "SlippageAmount",
      "type": "decimal",
      "flags": "",
      "definition": "The amount that an order can slip before it needs to be filled",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "TimePriceClicked",
      "type": "",
      "flags": "",
      "definition": "The time at which the trade is executed for that price, in epoch milliseconds.",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "TimePriceOnScreen",
      "type": "",
      "flags": "",
      "definition": "The time the tile on the frontend receives that price, in epoch milliseconds.",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "TimePriceReceived",
      "type": "string",
      "flags": "",
      "definition": "The time the price is received from the liquidity provider, in epoch milliseconds.",
      "example_value": "1721952000000",
      "deprecated": false
    }
  ]
}
```

### Event: ClientClose (client)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "ClientClose",
  "message_origin": "client",
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "ClientClose",
      "deprecated": false
    },
    {
      "name": "RequestID",
      "type": "String",
      "flags": "",
      "definition": "The RequestID. A Unique identifier, must remain the same for each event in the trade model",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

### Event: SubmitAck (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "SubmitAck",
  "message_origin": "server"
}
```

### Event: ClientCloseAck (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "ClientCloseAck",
  "message_origin": "server"
}
```

### Event: Hold (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "Hold",
  "message_origin": "server"
}
```

### Event: PickUp (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "PickUp",
  "message_origin": "server"
}
```

### Event: Reject (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "Reject",
  "message_origin": "server"
}
```

### Event: Error (server)

Message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "Error",
  "message_origin": "server"
}
```

### Event: TradeConfirmation (server)

The TradeConfirmation event is polymorphic. When building a TradeConfirmation event message, choose the specification appropriate for the TradingType field in the original submission block.

#### TradingType SPOT

Event message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "TradeConfirmation",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.TicketSpotTradeConfirmation",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.TicketSpotTradeConfirmation.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/tradeconfirmation/TradeConfTypesDef/TicketSpotTradeConfirmationExample.html",
  "parts": [
    {
      "part_name": "CommonSpotTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonSpotTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonSpotTradeConfirmation.html",
      "parts": [
        {
          "part_name": "CommonTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.CommonTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.CommonTradeConfirmationFields.html",
          "fields": [
            {
              "name": "AllowedAllocationTypes",
              "type": "string",
              "flags": "",
              "definition": "Comma separated string of allowed allocation types.",
              "example_value": "ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD",
              "deprecated": false
            },
            {
              "name": "TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "DealtCurrency",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The currency of the Amount of a trade or order.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "SpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate for trading two currencies on the spot settlement date.",
              "example_value": "1.08341",
              "deprecated": false
            },
            {
              "name": "SpotMidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The mid rate between the SpotAskRate and SpotBidRate. Note that this will not always be precisely between.",
              "example_value": "1.08345",
              "deprecated": false
            },
            {
              "name": "SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "ExecutionDateTime",
              "type": "string",
              "flags": "",
              "definition": "The date and time a trade was executed on.",
              "example_value": "20160322123621",
              "deprecated": false
            },
            {
              "name": "TradeDate",
              "type": "string",
              "flags": "",
              "definition": "The date a trade was executed on.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "Account",
              "type": "string",
              "flags": "Editable",
              "definition": "The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>",
              "example_value": "Garfields|GARF",
              "deprecated": false
            },
            {
              "name": "TraderUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who entered the trade. This may be on behalf of themselves, or on behalf of someone else. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be dealer1@novobank.co.za. If the user client@customer.co.za makes a trade on behalf of themselves it will be client@customer.co.za.",
              "example_value": "sales_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "TOBOUser",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
              "example_value": "client@customer.co.za",
              "deprecated": false
            },
            {
              "name": "FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "EntityId",
              "type": "string",
              "flags": "",
              "definition": "The entity the trade is on behalf of. For example, if the logged in user user1@customer.co.za wishes to make a trade on behalf of entity CUSTONE, then the value of this field will be CUSTONE. If this field is absent on a leg then the default entity should be presumed.",
              "example_value": "CUSTONE",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "AssetType",
              "type": "string",
              "flags": "",
              "definition": "A grouping of investments that exhibit similar characteristics and are subject to the same laws and regulations. Supported asset types are [FX, PM]",
              "example_value": "FX",
              "deprecated": false
            },
            {
              "name": "TradingType",
              "type": "string",
              "flags": "",
              "definition": "Caplin supported values are [SPOT, FWD, NDF, NDF_FIXING, NDS, TIME_OPTION, DRAWDOWN, SWAP, BLOCK, PAR_FORWARD]. See the constants defined within com.caplin.motif.fx.trading.FXTradingType for further details.",
              "example_value": "SPOT",
              "deprecated": false
            },
            {
              "name": "DeliverableType",
              "type": "string",
              "flags": "",
              "definition": "Caplin supported values are [DELIVERABLE, NON_DELIVERABLE]. Determines whether trade is deliverable or not (for ndfs etc)",
              "example_value": "DELIVERABLE",
              "deprecated": false
            },
            {
              "name": "DigitsBeforePips",
              "type": "integer",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of digits between the decimal point and the pips (i.e the big digits that the client wants to look at). For most currency pairs the value of this field will be 2, i.e. for a USDGBP rate of 1.23456 the pips are 45 so there are two digits between the decimal point and the pips. For USDJPY the rate could be 103.256 and the pips are the 25, so in this case the value of DigitsBeforePips should be 0.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "NumberOfPips",
              "type": "integer",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of pips the client wants to look at. Normally this value is 2.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "OrderID",
              "type": "string",
              "flags": "",
              "definition": "The id of the order.",
              "example_value": "000012345",
              "deprecated": false
            },
            {
              "name": "WarningCode",
              "type": "string",
              "flags": "",
              "definition": "The code for the warning regarding a quote request.",
              "example_value": "001",
              "deprecated": false
            },
            {
              "name": "WarningMessage",
              "type": "string",
              "flags": "",
              "definition": "The message to display for any warnings regarding a quote request. Supports Markdown syntax for formatting.",
              "example_value": "**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.",
              "deprecated": false
            },
            {
              "name": "DetailedWarningMessage",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "color: {{theme:foreground.semantic.warning_inverse}}",
              "deprecated": false
            },
            {
              "name": "Client",
              "type": "string",
              "flags": "",
              "definition": "Client is a duplicate of TOBOUser",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "CostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client in the home currency",
              "example_value": "12412891.31",
              "deprecated": false
            },
            {
              "name": "CostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The currency that the cost is displayed in, this could be any currency but will typically be set to the home currency",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "CostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "CostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "ContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "ContraCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "ServiceCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ServiceContraCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "CanAllocate",
              "type": "string",
              "flags": "",
              "definition": "Defines if a user can allocate a trade. Enum of: NONE, FULL, FULL_OR_PARTIAL",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "CanDrawdown",
              "type": "boolean",
              "flags": "",
              "definition": "Ability to Drawdown a time option trade.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AllocationSettlementDateOptions",
              "type": "string",
              "flags": "",
              "definition": "Comma-separated list, defines available settlement dates for an allocation.",
              "example_value": "ORIGINAL,EARLIER,LATER",
              "deprecated": false
            },
            {
              "name": "IsAllocated",
              "type": "boolean",
              "flags": "",
              "definition": "Deprecated, use HasPostTradeHistory instead.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "HasPostTradeHistory",
              "type": "boolean",
              "flags": "",
              "definition": "Define whether post-trade history (related deals e.g. drawdowns, allocations, early take ups and roll overs) is available.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsReversible",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be reversed.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsAmendable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be amended.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsCancellable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be cancelled.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AmountDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision for a specified currency pair and dealt currency",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ContraAmountDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision for a specified currency pair and contra currency",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "Remarks",
              "type": "string",
              "flags": "",
              "definition": "The text content of a comment left on a leg of a trade or order, visible to Client and sales and possibly the trader, set/edited by Client or sales",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "UTI",
              "type": "string",
              "flags": "",
              "definition": "Unique Transaction Identifier.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BackOfficeID",
              "type": "string",
              "flags": "",
              "definition": "Back office trade identifier.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PriceSource",
              "type": "string",
              "flags": "",
              "definition": "Identifies the person or system that priced the trade.",
              "example_value": "st1@caplin.com",
              "deprecated": false
            },
            {
              "name": "Venue",
              "type": "string",
              "flags": "",
              "definition": "Where the trade was placed.",
              "example_value": "FX Sales",
              "deprecated": false
            },
            {
              "name": "Purpose",
              "type": "string",
              "flags": "",
              "definition": "The purpose of a trade.",
              "example_value": "Commercial",
              "deprecated": false
            },
            {
              "name": "Tags",
              "type": "string",
              "flags": "",
              "definition": "Tags for a trade (see also `com.caplin.motif.fx.config.DefaultTag`) or order (see also `com.caplin.motif.fx.orders.DefaultOrderTag`).",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.definitions.common.Tag','name':'Arrays.asList'}",
              "deprecated": false
            },
            {
              "name": "ClientAgreementDateTime",
              "type": "datetime",
              "flags": "Editable",
              "definition": "Optional field that can be used to display the client agreement date time in a trade amend. This field can also be included in the Amend's EditableFields list to allow the user to edit it. This field can be used to allow the user to specify a client agreement time in scenarios where the execution time might have been different",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PostTradeType",
              "type": "string",
              "flags": "",
              "definition": "The post-trade action that created this trade. Enum of: ROLL_BACK, ROLL_FORWARD, ALLOCATION, DRAWDOWN",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsRepriceTrade",
              "type": "boolean",
              "flags": "",
              "definition": "Boolean flag that indicates whether the trade was created from a Post Trade Action, where a new price was executed against.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OriginalTradeID",
              "type": "string",
              "flags": "",
              "definition": "TradeID of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Status",
              "type": "string",
              "flags": "",
              "definition": "Status of the trade. Frontends may use this value for display purpose, but no logic is associated with it. Use Can* flags to drive post-trade logic.",
              "example_value": "Completed",
              "deprecated": false
            },
            {
              "name": "NaturalLanguageSummaryHidden",
              "type": "boolean",
              "flags": "",
              "definition": "When true, the natural language summary will be hidden on the RFS ticket summary.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsCommercial",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the given trade is commercial or not",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.LegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.LegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SettlementTradeFields",
              "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementTradeFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementTradeFields.html",
              "parts": [
                {
                  "part_name": "SettlementFields",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementFields",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementFields.html",
                  "fields": [
                    {
                      "name": "L1_Pay[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDirection",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction in which the settlement details refer to, supported directions are: PAY, RECEIVE, BOTH",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IntermediaryDetection",
                      "type": "boolean",
                      "flags": "",
                      "definition": "A flag to denote whether an intermediary detection warning has occurred when creating or updating the settlement instruction",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementInstructionType",
                      "type": "string",
                      "flags": "",
                      "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
                      "example_value": "EXISTING",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDisplayName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the settlement instruction. This field can be omitted.",
                      "example_value": "[CCY] Account 1",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]NettingStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "The status that denotes the permanent netting state of a settlement. This is required to know which settlements have been netted and which have not",
                      "example_value": "NETTED",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine6",
                      "type": "string",
                      "flags": "",
                      "definition": "The sixth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "SettlementFields",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementFields",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementFields.html",
                  "fields": [
                    {
                      "name": "L1_Receive[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDirection",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction in which the settlement details refer to, supported directions are: PAY, RECEIVE, BOTH",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IntermediaryDetection",
                      "type": "boolean",
                      "flags": "",
                      "definition": "A flag to denote whether an intermediary detection warning has occurred when creating or updating the settlement instruction",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementInstructionType",
                      "type": "string",
                      "flags": "",
                      "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
                      "example_value": "EXISTING",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDisplayName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the settlement instruction. This field can be omitted.",
                      "example_value": "[CCY] Account 1",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]NettingStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "The status that denotes the permanent netting state of a settlement. This is required to know which settlements have been netted and which have not",
                      "example_value": "NETTED",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine6",
                      "type": "string",
                      "flags": "",
                      "definition": "The sixth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "NettingComponents",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NettingComponents",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NettingComponents.html",
                  "fields": [
                    {
                      "name": "L1_PayNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L1_PayNettingComponents[n]BuySell",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_PayNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "NettingComponents",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NettingComponents",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NettingComponents.html",
                  "fields": [
                    {
                      "name": "L1_ReceiveNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L1_ReceiveNettingComponents[n]BuySell",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_ReceiveNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "L1_CanAffirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Affirm the Trade Details are as agreed.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Confirm the Settlement Details are now final.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanAdHoc",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can confirm adhoc settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanDispute",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Dispute the details of a trade, if for example something is wrong about it.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanCancel",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanReplace",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to mark a deal as amended, meaning that it has been replaced by a corrected deal.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanAutoConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Mark that the deal was Confirmed by the Bank, rather than by the client.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanUnconfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to move the deal back to a Pending state.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanApproveInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can approve settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanRejectInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can reject settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanRelease",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Relates to post trade actions: User can release the trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_SettlementStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_NextActionDeadline",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The deadline for a user to perform a trade's next action in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_NextActionDeadlineDisplayTimezone",
                  "type": "string",
                  "flags": "",
                  "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                  "example_value": "America/New_York",
                  "deprecated": false
                },
                {
                  "name": "L1_AffirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who affirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_AffirmedDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The time at which a trade was affirmed in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_ConfirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who confirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_ConfirmedDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The time at which a trade was confirmed in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPayNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPayNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPaySplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveSplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "NostroAccount",
              "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NostroAccount",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NostroAccount.html",
              "fields": [
                {
                  "name": "L1_NostroName",
                  "type": "string",
                  "flags": "",
                  "definition": "An identifier for the given nostro account.",
                  "example_value": "GBP Nostro Account.",
                  "deprecated": false
                },
                {
                  "name": "L1_NostroBIC",
                  "type": "string",
                  "flags": "",
                  "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                  "example_value": "ARABAEADABC",
                  "deprecated": false
                },
                {
                  "name": "L1_NostroAccount",
                  "type": "string",
                  "flags": "",
                  "definition": "The account at the bank denoted by the NostroBIC field that will receive the money.",
                  "example_value": "AE770090004000824676500",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "RemarksEntry",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.RemarksEntry",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.RemarksEntry.html",
              "fields": [
                {
                  "name": "L1_Remarks[n]Remarks",
                  "type": "string",
                  "flags": "",
                  "definition": "The text content of a comment left on a leg of a trade or order, visible to Client and sales and possibly the trader, set/edited by Client or sales",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The date and time a remark was left on in ISO-8601 format.",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkTargetStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the current status of the trade when the remark was added.",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "L1_TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "L1_AllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The final client rate that is made up of the spot rate + any additional costs or adjustments such as swap points or margin.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "L1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_AllInMidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The mid rate used in charging customers for accepting banker's acceptances, consisting of the discount interest rate plus the commission.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "L1_FwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of pips to be added or subtracted from the spot rate to form the forward rate.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_FwdMidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the mid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "L1_BuySell",
              "type": "string",
              "flags": "",
              "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_Amount",
              "type": "decimal",
              "flags": "Editable, Risk",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ContraAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount that is exchanged for the Amount. This will be defined in the contra currency of the DealtCurrency.",
              "example_value": "350",
              "deprecated": false
            },
            {
              "name": "L1_Tenor",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "Supported types are [ON, [TODAY, TOD, TD], TN, [TOM, ND], SPOT, SN, 1D, 1W, 2W, 3W, 4W, 1M, 2M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, [1Y, 12M], 15M, 18M, 21M, [2Y, 24M], [3Y, 36M], [4Y, 48M], [5Y, 60M], broken]. 'broken' indicates that the settlement date does not fall onto a tenor.",
              "example_value": "1M",
              "deprecated": false
            },
            {
              "name": "L1_SettlementDate",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The date on which the two currencies in the FX trade are exchanged. Can be a tenor or a broken date, i.e. SPOT or 20160314.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "L1_FilledAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount filled on an order, or the amount filled on a time option trade after performing a drawdown(s).",
              "example_value": "0",
              "deprecated": false
            },
            {
              "name": "L1_RemainingAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount remaining on a trade or order which can reduce after performing a post trade action/an order is filled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_RiskDate",
              "type": "string",
              "flags": "",
              "definition": "The date in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "L1_RiskTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L1_Account",
              "type": "string",
              "flags": "",
              "definition": "The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>",
              "example_value": "Garfields|GARF",
              "deprecated": false
            },
            {
              "name": "L1_Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "L1_CostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client in the home currency",
              "example_value": "12412891.31",
              "deprecated": false
            },
            {
              "name": "L1_EntityId",
              "type": "string",
              "flags": "",
              "definition": "The entity the trade is on behalf of. For example, if the logged in user user1@customer.co.za wishes to make a trade on behalf of entity CUSTONE, then the value of this field will be CUSTONE. If this field is absent on a leg then the default entity should be presumed.",
              "example_value": "CUSTONE",
              "deprecated": false
            },
            {
              "name": "L1_EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "L1_CostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The currency that the cost is displayed in, this could be any currency but will typically be set to the home currency",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_CostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "L1_ServiceContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual service cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ServiceContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_ServiceCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual service cost of performing the trade to the client on the home currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ServiceCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service home currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_TOBOUser",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
              "example_value": "client@customer.co.za",
              "deprecated": false
            },
            {
              "name": "L1_FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ForwardPointsDecimalOffset",
              "type": "integer",
              "flags": "",
              "definition": "Optional override to determine the number of decimal places to move forward points before displaying them. Should be used if standard display of pips is not desired.",
              "example_value": "4",
              "deprecated": false
            },
            {
              "name": "L1_AllocatableAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_AllocatableContraAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled, defined in the contra currency of the DealtCurrency",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_OriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The Rate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            }
          ]
        }
      ]
    },
    {
      "part_name": "SettlementSummaryTradeFields",
      "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryTradeFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryTradeFields.html",
      "parts": [
        {
          "part_name": "SettlementSummaryFields",
          "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryFields.html",
          "fields": [
            {
              "name": "U1_PaySettlementDisplayName",
              "type": "string",
              "flags": "",
              "definition": "The name of the settlement instruction. This field can be omitted.",
              "example_value": "[CCY] Account 1",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementRemarks",
              "type": "string",
              "flags": "Editable",
              "definition": "The remarks corresponding to the settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementId",
              "type": "string",
              "flags": "Editable",
              "definition": "The identifier for the settlement instruction.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementInstructionType",
              "type": "string",
              "flags": "",
              "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
              "example_value": "EXISTING",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SettlementSummaryFields",
          "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryFields.html",
          "fields": [
            {
              "name": "U1_ReceiveSettlementDisplayName",
              "type": "string",
              "flags": "",
              "definition": "The name of the settlement instruction. This field can be omitted.",
              "example_value": "[CCY] Account 1",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementRemarks",
              "type": "string",
              "flags": "Editable",
              "definition": "The remarks corresponding to the settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementId",
              "type": "string",
              "flags": "Editable",
              "definition": "The identifier for the settlement instruction.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementInstructionType",
              "type": "string",
              "flags": "",
              "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
              "example_value": "EXISTING",
              "deprecated": false
            }
          ]
        }
      ]
    }
  ],
  "fields": [
    {
      "name": "DisplayFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display label-value pairs. Use DefaultDisplayFields builders to provide Caplin default and/or custom fields.",
      "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAllocationDetailsUpdateFields','name':'addDefaultSalesAllocationDetailsUpdateFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
      "deprecated": false
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.TicketSpotTradeConfirmation](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.TicketSpotTradeConfirmation.html)

Instantiation pattern: Static Factory Method (via `TradeConfTypesDef.TicketSpotTradeConfirmation.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.tradeconfirmation.TradeConfTypesDef; 

import java.math.BigInteger;
import static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAllocationDetailsUpdateFields;
import static com.caplin.motif.fx.config.definitions.common.Tag;

import com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef;

public class TicketSpotTradeConfirmationExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.TicketSpotTradeConfirmation ticketSpotTradeConfirmation =
		TradeConfTypesDef.TicketSpotTradeConfirmation
			.newBuilder()
			.setCommonSpotTradeConfirmation(
			TradeConfTypesDef.CommonSpotTradeConfirmation
				.newBuilder()
				.setCommonFields(
				TradeConfPartsDef.CommonTradeConfirmationFields
					.newBuilder()
					.setAccount("", true)
					.setAccountEditable()
					.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
					.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
					.setAmountDPS("2")
					.setAssetType("")
					.setBackOfficeID("")
					.setCanAllocate("")
					.setCanDrawdown("")
					.setClient("")
					.setClientAgreementDateTime(Instant.now())
					.setClientAgreementDateTimeEditable()
					.setContraAmountDPS("2")
					.setContraCostAmount("")
					.setContraCostCurrency("GBP")
					.setContraCostCurrencyDPS("2")
					.setContraCostPercentage("13.56")
					.setCostAmount(BigDecimal.valueOf(12412891.31))
					.setCostCurrency("GBP")
					.setCostCurrencyDPS(2)
					.setCostPercentage(BigDecimal.valueOf(13.56))
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setDealtCurrencyRisk()
					.setDeliverableType("DELIVERABLE")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExecutionDateTime("20160322123621")
					.setFullName("")
					.setHasPostTradeHistory("")
					.setIsAllocated("")
					.setIsAmendable(true)
					.setIsCancellable("")
					.setIsCommercial(true)
					.setIsRepriceTrade("")
					.setIsReversible(true)
					.setNaturalLanguageSummaryHidden("")
					.setNumberOfPips("2")
					.setOrderID("000012345")
					.setOriginalTradeID("")
					.setPostTradeType("")
					.setPriceSource("st1@caplin.com")
					.setPurpose("Commercial")
					.setRemarks("")
					.setServiceContraCostCurrencyDPS(2)
					.setServiceCostCurrencyDPS("2")
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRate("1.08341")
					.setSpotRateDPS(5)
					.setStatus("Completed")
					.setTOBOUser("", true, true)
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTags(Arrays.asList(/* ... */))
					.setTradeDate("20160314")
					.setTradeID("00001561")
					.setTraderUsername("sales_trader@novobank.co.za")
					.setTradingType("SPOT")
					.setUTI("")
					.setVenue("FX Sales")
					.setWarningCode("001")
					.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
					.build())
				.setLegTradeConfirmation(
				TradeConfPartsDef.LegTradeConfirmationFields
					.newBuilder()
					.addRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.setRemarkDateTime("2018-03-16T07:25:16+00:00")
						.setRemarkOriginStatus("")
						.setRemarkSource("")
						.setRemarkTargetStatus("")
						.build())
					.setAccount("Garfields|GARF")
					.setAdjustedSwapPoints(BigDecimal.valueOf(0.0))
					.setAllInMidRate("1.091790")
					.setAllInRate("1.091790")
					.setAllInRateDPS("5")
					.setAllocatableAmount("500")
					.setAllocatableContraAmount("500")
					.setAmount(BigDecimal.valueOf(0.0), true, true)
					.setAmountEditable()
					.setAmountRisk()
					.setBuySell("")
					.setContraAmount("500")
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostAmount("12412891.31")
					.setCostCurrency("GBP")
					.setCostPercentage(BigDecimal.valueOf(13.56))
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setFilledAmount("0")
					.setForwardPointsDecimalOffset("")
					.setFullName("")
					.setFwdMidPoints("0.005390")
					.setFwdPips("11.98")
					.setFwdPoints(BigDecimal.valueOf(0.001198))
					.setIsTimeOption(true)
					.setNostroAccountFields(
					SettlementInstructionsPartsDef.NostroAccount
						.newBuilder()
						.setNostroAccount("AE770090004000824676500")
						.setNostroBIC("ARABAEADABC")
						.setNostroName("GBP Nostro Account.")
						.build())
					.setOriginalRate("")
					.setProfit(BigDecimal.valueOf(1000))
					.setRemainingAmount(BigDecimal.valueOf(500))
					.setRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setServiceContraCostAmount(BigDecimal.valueOf(0.0))
					.setServiceContraCostCurrency("GBP")
					.setServiceCostAmount("")
					.setServiceCostCurrency("GBP")
					.setSettlementDate("", true, true)
					.setSettlementDateEditable()
					.setSettlementDateRisk()
					.setSettlementTradeFields(
					SettlementInstructionsPartsDef.SettlementTradeFields
						.newBuilder()
						.addPay(
						SettlementInstructionsPartsDef.SettlementFields
							.newBuilder()
							.setBankAccount("12345678")
							.setBankAddress1("12 Capitol")
							.setBankAddress2("The City")
							.setBankAddress3("London")
							.setBankName("Bank Of Caplin")
							.setBankSwift("CAP123")
							.setIndividualAccount("87654321")
							.setIndividualAddress1("98 Lane")
							.setIndividualAddress2("Manchester")
							.setIndividualName("Susan Sellers")
							.setIndividualSwift("SOLD987")
							.setIntermediaryDetection("")
							.setIsDefaultSettlementInstruction(true)
							.setNettingStatus("NETTED")
							.setSettlementAmount("")
							.setSettlementCurrency("GBP")
							.setSettlementDetailsLine1("")
							.setSettlementDetailsLine2("")
							.setSettlementDetailsLine3("")
							.setSettlementDetailsLine4("")
							.setSettlementDetailsLine5("")
							.setSettlementDetailsLine6("")
							.setSettlementDirection("")
							.setSettlementDisplayName("[CCY] Account 1")
							.setSettlementId("")
							.setSettlementInstructionType("EXISTING")
							.setSettlementStatus("")
							.setSplitComponentId("")
							.build())
						.addPayNettingComponents(
						SettlementInstructionsPartsDef.NettingComponents
							.newBuilder()
							.setAmount(BigDecimal.valueOf(0))
							.setBuySell("")
							.setTradeID("00001561")
							.build())
						.addReceive(
						SettlementInstructionsPartsDef.SettlementFields
							.newBuilder()
							.build())
						.addReceiveNettingComponents(
						SettlementInstructionsPartsDef.NettingComponents
							.newBuilder()
							.build())
						.setAffirmedBy("")
						.setAffirmedDateTime("2018-03-16T07:25:16+00:00")
						.setCanAdHoc(true)
						.setCanAffirm("")
						.setCanApproveInstructions(true)
						.setCanAutoConfirm("")
						.setCanCancel("")
						.setCanConfirm("")
						.setCanDispute("")
						.setCanRejectInstructions("")
						.setCanRelease(true)
						.setCanReplace(true)
						.setCanUnconfirm("")
						.setConfirmedBy("")
						.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
						.setIsPayNetted(true)
						.setIsPayNettingRequired("")
						.setIsPaySplit(true)
						.setIsReceiveNetted("")
						.setIsReceiveNettingRequired("")
						.setIsReceiveSplit("")
						.setNextActionDeadline(Instant.now())
						.setNextActionDeadlineDisplayTimezone("America/New_York")
						.setSettlementStatus("")
						.build())
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("", true)
					.setStartTenorRisk()
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTenor("", true, true)
					.setTenorEditable()
					.setTenorRisk()
					.setTradeID("00001561")
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setSettlementTradeFields(
			SettlementInstructionsPartsDef.SettlementSummaryTradeFields
				.newBuilder()
				.build())
			.build();
            
    }
}
```

#### TradingType FWD

Event message specification:

```json
{
  "trade_model_name": "ESP",
  "trade_model_trigger": "TradeConfirmation",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.TicketForwardTradeConfirmation",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.TicketForwardTradeConfirmation.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/tradeconfirmation/TradeConfTypesDef/TicketForwardTradeConfirmationExample.html",
  "parts": [
    {
      "part_name": "CommonForwardTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonForwardTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonForwardTradeConfirmation.html",
      "parts": [
        {
          "part_name": "CommonTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.CommonTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.CommonTradeConfirmationFields.html",
          "fields": [
            {
              "name": "AllowedAllocationTypes",
              "type": "string",
              "flags": "",
              "definition": "Comma separated string of allowed allocation types.",
              "example_value": "ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD",
              "deprecated": false
            },
            {
              "name": "TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "DealtCurrency",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The currency of the Amount of a trade or order.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "SpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate for trading two currencies on the spot settlement date.",
              "example_value": "1.08341",
              "deprecated": false
            },
            {
              "name": "SpotMidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The mid rate between the SpotAskRate and SpotBidRate. Note that this will not always be precisely between.",
              "example_value": "1.08345",
              "deprecated": false
            },
            {
              "name": "SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "ExecutionDateTime",
              "type": "string",
              "flags": "",
              "definition": "The date and time a trade was executed on.",
              "example_value": "20160322123621",
              "deprecated": false
            },
            {
              "name": "TradeDate",
              "type": "string",
              "flags": "",
              "definition": "The date a trade was executed on.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "Account",
              "type": "string",
              "flags": "Editable",
              "definition": "The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>",
              "example_value": "Garfields|GARF",
              "deprecated": false
            },
            {
              "name": "TraderUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who entered the trade. This may be on behalf of themselves, or on behalf of someone else. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be dealer1@novobank.co.za. If the user client@customer.co.za makes a trade on behalf of themselves it will be client@customer.co.za.",
              "example_value": "sales_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "TOBOUser",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
              "example_value": "client@customer.co.za",
              "deprecated": false
            },
            {
              "name": "FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "EntityId",
              "type": "string",
              "flags": "",
              "definition": "The entity the trade is on behalf of. For example, if the logged in user user1@customer.co.za wishes to make a trade on behalf of entity CUSTONE, then the value of this field will be CUSTONE. If this field is absent on a leg then the default entity should be presumed.",
              "example_value": "CUSTONE",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "AssetType",
              "type": "string",
              "flags": "",
              "definition": "A grouping of investments that exhibit similar characteristics and are subject to the same laws and regulations. Supported asset types are [FX, PM]",
              "example_value": "FX",
              "deprecated": false
            },
            {
              "name": "TradingType",
              "type": "string",
              "flags": "",
              "definition": "Caplin supported values are [SPOT, FWD, NDF, NDF_FIXING, NDS, TIME_OPTION, DRAWDOWN, SWAP, BLOCK, PAR_FORWARD]. See the constants defined within com.caplin.motif.fx.trading.FXTradingType for further details.",
              "example_value": "SPOT",
              "deprecated": false
            },
            {
              "name": "DeliverableType",
              "type": "string",
              "flags": "",
              "definition": "Caplin supported values are [DELIVERABLE, NON_DELIVERABLE]. Determines whether trade is deliverable or not (for ndfs etc)",
              "example_value": "DELIVERABLE",
              "deprecated": false
            },
            {
              "name": "DigitsBeforePips",
              "type": "integer",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of digits between the decimal point and the pips (i.e the big digits that the client wants to look at). For most currency pairs the value of this field will be 2, i.e. for a USDGBP rate of 1.23456 the pips are 45 so there are two digits between the decimal point and the pips. For USDJPY the rate could be 103.256 and the pips are the 25, so in this case the value of DigitsBeforePips should be 0.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "NumberOfPips",
              "type": "integer",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of pips the client wants to look at. Normally this value is 2.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "OrderID",
              "type": "string",
              "flags": "",
              "definition": "The id of the order.",
              "example_value": "000012345",
              "deprecated": false
            },
            {
              "name": "WarningCode",
              "type": "string",
              "flags": "",
              "definition": "The code for the warning regarding a quote request.",
              "example_value": "001",
              "deprecated": false
            },
            {
              "name": "WarningMessage",
              "type": "string",
              "flags": "",
              "definition": "The message to display for any warnings regarding a quote request. Supports Markdown syntax for formatting.",
              "example_value": "**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.",
              "deprecated": false
            },
            {
              "name": "DetailedWarningMessage",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "color: {{theme:foreground.semantic.warning_inverse}}",
              "deprecated": false
            },
            {
              "name": "Client",
              "type": "string",
              "flags": "",
              "definition": "Client is a duplicate of TOBOUser",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "CostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client in the home currency",
              "example_value": "12412891.31",
              "deprecated": false
            },
            {
              "name": "CostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The currency that the cost is displayed in, this could be any currency but will typically be set to the home currency",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "CostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "CostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "ContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "ContraCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "ServiceCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ServiceContraCostCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "CanAllocate",
              "type": "string",
              "flags": "",
              "definition": "Defines if a user can allocate a trade. Enum of: NONE, FULL, FULL_OR_PARTIAL",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "CanDrawdown",
              "type": "boolean",
              "flags": "",
              "definition": "Ability to Drawdown a time option trade.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AllocationSettlementDateOptions",
              "type": "string",
              "flags": "",
              "definition": "Comma-separated list, defines available settlement dates for an allocation.",
              "example_value": "ORIGINAL,EARLIER,LATER",
              "deprecated": false
            },
            {
              "name": "IsAllocated",
              "type": "boolean",
              "flags": "",
              "definition": "Deprecated, use HasPostTradeHistory instead.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "HasPostTradeHistory",
              "type": "boolean",
              "flags": "",
              "definition": "Define whether post-trade history (related deals e.g. drawdowns, allocations, early take ups and roll overs) is available.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsReversible",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be reversed.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsAmendable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be amended.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsCancellable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade can be cancelled.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AmountDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision for a specified currency pair and dealt currency",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "ContraAmountDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision for a specified currency pair and contra currency",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "Remarks",
              "type": "string",
              "flags": "",
              "definition": "The text content of a comment left on a leg of a trade or order, visible to Client and sales and possibly the trader, set/edited by Client or sales",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "UTI",
              "type": "string",
              "flags": "",
              "definition": "Unique Transaction Identifier.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BackOfficeID",
              "type": "string",
              "flags": "",
              "definition": "Back office trade identifier.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PriceSource",
              "type": "string",
              "flags": "",
              "definition": "Identifies the person or system that priced the trade.",
              "example_value": "st1@caplin.com",
              "deprecated": false
            },
            {
              "name": "Venue",
              "type": "string",
              "flags": "",
              "definition": "Where the trade was placed.",
              "example_value": "FX Sales",
              "deprecated": false
            },
            {
              "name": "Purpose",
              "type": "string",
              "flags": "",
              "definition": "The purpose of a trade.",
              "example_value": "Commercial",
              "deprecated": false
            },
            {
              "name": "Tags",
              "type": "string",
              "flags": "",
              "definition": "Tags for a trade (see also `com.caplin.motif.fx.config.DefaultTag`) or order (see also `com.caplin.motif.fx.orders.DefaultOrderTag`).",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.definitions.common.Tag','name':'Arrays.asList'}",
              "deprecated": false
            },
            {
              "name": "ClientAgreementDateTime",
              "type": "datetime",
              "flags": "Editable",
              "definition": "Optional field that can be used to display the client agreement date time in a trade amend. This field can also be included in the Amend's EditableFields list to allow the user to edit it. This field can be used to allow the user to specify a client agreement time in scenarios where the execution time might have been different",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PostTradeType",
              "type": "string",
              "flags": "",
              "definition": "The post-trade action that created this trade. Enum of: ROLL_BACK, ROLL_FORWARD, ALLOCATION, DRAWDOWN",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsRepriceTrade",
              "type": "boolean",
              "flags": "",
              "definition": "Boolean flag that indicates whether the trade was created from a Post Trade Action, where a new price was executed against.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OriginalTradeID",
              "type": "string",
              "flags": "",
              "definition": "TradeID of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Status",
              "type": "string",
              "flags": "",
              "definition": "Status of the trade. Frontends may use this value for display purpose, but no logic is associated with it. Use Can* flags to drive post-trade logic.",
              "example_value": "Completed",
              "deprecated": false
            },
            {
              "name": "NaturalLanguageSummaryHidden",
              "type": "boolean",
              "flags": "",
              "definition": "When true, the natural language summary will be hidden on the RFS ticket summary.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsCommercial",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the given trade is commercial or not",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "NDFTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.NDFTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.NDFTradeConfirmationFields.html",
          "fields": [
            {
              "name": "FixingSource",
              "type": "string",
              "flags": "",
              "definition": "Specifies where the fixing rate comes from.",
              "example_value": "WMR 8am London Time",
              "deprecated": false
            },
            {
              "name": "SettlementCurrency",
              "type": "string",
              "flags": "",
              "definition": "A currency for of settlement instruction",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "LocationType",
              "type": "string",
              "flags": "",
              "definition": "Describes whether a non deliverable trade is for an onshore or offshore client. Enum of: ONSHORE, OFFSHORE.",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.LegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.LegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SettlementTradeFields",
              "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementTradeFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementTradeFields.html",
              "parts": [
                {
                  "part_name": "SettlementFields",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementFields",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementFields.html",
                  "fields": [
                    {
                      "name": "L1_Pay[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDirection",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction in which the settlement details refer to, supported directions are: PAY, RECEIVE, BOTH",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IntermediaryDetection",
                      "type": "boolean",
                      "flags": "",
                      "definition": "A flag to denote whether an intermediary detection warning has occurred when creating or updating the settlement instruction",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementInstructionType",
                      "type": "string",
                      "flags": "",
                      "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
                      "example_value": "EXISTING",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDisplayName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the settlement instruction. This field can be omitted.",
                      "example_value": "[CCY] Account 1",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]NettingStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "The status that denotes the permanent netting state of a settlement. This is required to know which settlements have been netted and which have not",
                      "example_value": "NETTED",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Pay[n]SettlementDetailsLine6",
                      "type": "string",
                      "flags": "",
                      "definition": "The sixth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "SettlementFields",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementFields",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementFields.html",
                  "fields": [
                    {
                      "name": "L1_Receive[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDirection",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction in which the settlement details refer to, supported directions are: PAY, RECEIVE, BOTH",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IntermediaryDetection",
                      "type": "boolean",
                      "flags": "",
                      "definition": "A flag to denote whether an intermediary detection warning has occurred when creating or updating the settlement instruction",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementInstructionType",
                      "type": "string",
                      "flags": "",
                      "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
                      "example_value": "EXISTING",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDisplayName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the settlement instruction. This field can be omitted.",
                      "example_value": "[CCY] Account 1",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]NettingStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "The status that denotes the permanent netting state of a settlement. This is required to know which settlements have been netted and which have not",
                      "example_value": "NETTED",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_Receive[n]SettlementDetailsLine6",
                      "type": "string",
                      "flags": "",
                      "definition": "The sixth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "NettingComponents",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NettingComponents",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NettingComponents.html",
                  "fields": [
                    {
                      "name": "L1_PayNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L1_PayNettingComponents[n]BuySell",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_PayNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                },
                {
                  "part_name": "NettingComponents",
                  "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NettingComponents",
                  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NettingComponents.html",
                  "fields": [
                    {
                      "name": "L1_ReceiveNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L1_ReceiveNettingComponents[n]BuySell",
                      "type": "string",
                      "flags": "",
                      "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L1_ReceiveNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "L1_CanAffirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Affirm the Trade Details are as agreed.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Confirm the Settlement Details are now final.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanAdHoc",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can confirm adhoc settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanDispute",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Dispute the details of a trade, if for example something is wrong about it.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanCancel",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanReplace",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to mark a deal as amended, meaning that it has been replaced by a corrected deal.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanAutoConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Mark that the deal was Confirmed by the Bank, rather than by the client.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanUnconfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to move the deal back to a Pending state.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanApproveInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can approve settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanRejectInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can reject settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_CanRelease",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Relates to post trade actions: User can release the trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_SettlementStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_NextActionDeadline",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The deadline for a user to perform a trade's next action in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_NextActionDeadlineDisplayTimezone",
                  "type": "string",
                  "flags": "",
                  "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                  "example_value": "America/New_York",
                  "deprecated": false
                },
                {
                  "name": "L1_AffirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who affirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_AffirmedDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The time at which a trade was affirmed in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_ConfirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who confirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_ConfirmedDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The time at which a trade was confirmed in ISO-8601 format",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPayNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPayNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsPaySplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_IsReceiveSplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "NostroAccount",
              "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.NostroAccount",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.NostroAccount.html",
              "fields": [
                {
                  "name": "L1_NostroName",
                  "type": "string",
                  "flags": "",
                  "definition": "An identifier for the given nostro account.",
                  "example_value": "GBP Nostro Account.",
                  "deprecated": false
                },
                {
                  "name": "L1_NostroBIC",
                  "type": "string",
                  "flags": "",
                  "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                  "example_value": "ARABAEADABC",
                  "deprecated": false
                },
                {
                  "name": "L1_NostroAccount",
                  "type": "string",
                  "flags": "",
                  "definition": "The account at the bank denoted by the NostroBIC field that will receive the money.",
                  "example_value": "AE770090004000824676500",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "RemarksEntry",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.RemarksEntry",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.RemarksEntry.html",
              "fields": [
                {
                  "name": "L1_Remarks[n]Remarks",
                  "type": "string",
                  "flags": "",
                  "definition": "The text content of a comment left on a leg of a trade or order, visible to Client and sales and possibly the trader, set/edited by Client or sales",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkDateTime",
                  "type": "datetime",
                  "flags": "",
                  "definition": "The date and time a remark was left on in ISO-8601 format.",
                  "example_value": "2018-03-16T07:25:16+00:00",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_Remarks[n]RemarkTargetStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the current status of the trade when the remark was added.",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "L1_TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "L1_AllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The final client rate that is made up of the spot rate + any additional costs or adjustments such as swap points or margin.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "L1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_AllInMidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The mid rate used in charging customers for accepting banker's acceptances, consisting of the discount interest rate plus the commission.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "L1_FwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of pips to be added or subtracted from the spot rate to form the forward rate.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_FwdMidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the mid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "L1_BuySell",
              "type": "string",
              "flags": "",
              "definition": "The direction of the trade or trade leg, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_Amount",
              "type": "decimal",
              "flags": "Editable, Risk",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ContraAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount that is exchanged for the Amount. This will be defined in the contra currency of the DealtCurrency.",
              "example_value": "350",
              "deprecated": false
            },
            {
              "name": "L1_Tenor",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "Supported types are [ON, [TODAY, TOD, TD], TN, [TOM, ND], SPOT, SN, 1D, 1W, 2W, 3W, 4W, 1M, 2M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, [1Y, 12M], 15M, 18M, 21M, [2Y, 24M], [3Y, 36M], [4Y, 48M], [5Y, 60M], broken]. 'broken' indicates that the settlement date does not fall onto a tenor.",
              "example_value": "1M",
              "deprecated": false
            },
            {
              "name": "L1_SettlementDate",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The date on which the two currencies in the FX trade are exchanged. Can be a tenor or a broken date, i.e. SPOT or 20160314.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "L1_FilledAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount filled on an order, or the amount filled on a time option trade after performing a drawdown(s).",
              "example_value": "0",
              "deprecated": false
            },
            {
              "name": "L1_RemainingAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount remaining on a trade or order which can reduce after performing a post trade action/an order is filled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_RiskDate",
              "type": "string",
              "flags": "",
              "definition": "The date in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "L1_RiskTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L1_Account",
              "type": "string",
              "flags": "",
              "definition": "The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>",
              "example_value": "Garfields|GARF",
              "deprecated": false
            },
            {
              "name": "L1_Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "L1_CostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client in the home currency",
              "example_value": "12412891.31",
              "deprecated": false
            },
            {
              "name": "L1_EntityId",
              "type": "string",
              "flags": "",
              "definition": "The entity the trade is on behalf of. For example, if the logged in user user1@customer.co.za wishes to make a trade on behalf of entity CUSTONE, then the value of this field will be CUSTONE. If this field is absent on a leg then the default entity should be presumed.",
              "example_value": "CUSTONE",
              "deprecated": false
            },
            {
              "name": "L1_EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "L1_CostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The currency that the cost is displayed in, this could be any currency but will typically be set to the home currency",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_CostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual transactional cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_ContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "13.56",
              "deprecated": false
            },
            {
              "name": "L1_ServiceContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual service cost of performing the trade to the client on the contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ServiceContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_ServiceCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The actual service cost of performing the trade to the client on the home currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ServiceCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service home currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L1_TOBOUser",
              "type": "string",
              "flags": "Editable, Risk",
              "definition": "The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.",
              "example_value": "client@customer.co.za",
              "deprecated": false
            },
            {
              "name": "L1_FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ForwardPointsDecimalOffset",
              "type": "integer",
              "flags": "",
              "definition": "Optional override to determine the number of decimal places to move forward points before displaying them. Should be used if standard display of pips is not desired.",
              "example_value": "4",
              "deprecated": false
            },
            {
              "name": "L1_AllocatableAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_AllocatableContraAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled, defined in the contra currency of the DealtCurrency",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_OriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The Rate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "NDFLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.NDFLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.NDFLegTradeConfirmationFields.html",
          "fields": [
            {
              "name": "L1_FixingDate",
              "type": "string",
              "flags": "",
              "definition": "This is the day and time whereby the comparison between the NDF rate and the prevailing spot rate is made.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_FixingCurrency",
              "type": "string",
              "flags": "",
              "definition": "The currency whose exchange rate is observed on the fixing date to determine the settlement amount",
              "example_value": "USD",
              "deprecated": false
            },
            {
              "name": "L1_FixingCode",
              "type": "string",
              "flags": "",
              "definition": "A code that specifies which exchange rate is used for the fixing of the non-deliverable currency.",
              "example_value": "[CCY]1/1600/GBLO",
              "deprecated": false
            },
            {
              "name": "L1_FixingDescription",
              "type": "string",
              "flags": "",
              "definition": "A description that specifies which exchange rate is used for the fixing of the non-deliverable currency.",
              "example_value": "WMR [CCY] 4pm London",
              "deprecated": false
            },
            {
              "name": "L1_FixingAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The Buy or Sell Amount from the original deal for currency that is the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ReferenceCurrency",
              "type": "string",
              "flags": "",
              "definition": "The Buy or Sell Currency that is not the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ReferenceAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The Buy or Sell Amount from the original deal for currency that is not the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_SettlementAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a settlement",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "TimeOptionLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.TimeOptionLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.TimeOptionLegTradeConfirmationFields.html",
          "fields": [
            {
              "name": "L1_FilledAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount filled on an order, or the amount filled on a time option trade after performing a drawdown(s).",
              "example_value": "0",
              "deprecated": false
            },
            {
              "name": "L1_RemainingAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount remaining on a trade or order which can reduce after performing a post trade action/an order is filled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L1_RiskDate",
              "type": "string",
              "flags": "",
              "definition": "The date in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "20160314",
              "deprecated": false
            },
            {
              "name": "L1_RiskTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor in the settlement window which yields the lowest client sell price, or the highest client buy price.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            }
          ]
        }
      ]
    },
    {
      "part_name": "SettlementSummaryTradeFields",
      "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryTradeFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryTradeFields.html",
      "parts": [
        {
          "part_name": "SettlementSummaryFields",
          "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryFields.html",
          "fields": [
            {
              "name": "U1_PaySettlementDisplayName",
              "type": "string",
              "flags": "",
              "definition": "The name of the settlement instruction. This field can be omitted.",
              "example_value": "[CCY] Account 1",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementRemarks",
              "type": "string",
              "flags": "Editable",
              "definition": "The remarks corresponding to the settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementId",
              "type": "string",
              "flags": "Editable",
              "definition": "The identifier for the settlement instruction.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_PaySettlementInstructionType",
              "type": "string",
              "flags": "",
              "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
              "example_value": "EXISTING",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SettlementSummaryFields",
          "java_class": "com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef.SettlementSummaryFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/settlementinstructions/SettlementInstructionsPartsDef.SettlementSummaryFields.html",
          "fields": [
            {
              "name": "U1_ReceiveSettlementDisplayName",
              "type": "string",
              "flags": "",
              "definition": "The name of the settlement instruction. This field can be omitted.",
              "example_value": "[CCY] Account 1",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementRemarks",
              "type": "string",
              "flags": "Editable",
              "definition": "The remarks corresponding to the settlement details",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementId",
              "type": "string",
              "flags": "Editable",
              "definition": "The identifier for the settlement instruction.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "U1_ReceiveSettlementInstructionType",
              "type": "string",
              "flags": "",
              "definition": "The type of settlement instruction attached to a trade. Supported types are [EXISTING, ADHOC, NONE]",
              "example_value": "EXISTING",
              "deprecated": false
            }
          ]
        }
      ]
    }
  ],
  "fields": [
    {
      "name": "DisplayFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display label-value pairs. Use DefaultDisplayFields builders to provide Caplin default and/or custom fields.",
      "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAllocationDetailsUpdateFields','name':'addDefaultSalesAllocationDetailsUpdateFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
      "deprecated": false
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.TicketForwardTradeConfirmation](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.TicketForwardTradeConfirmation.html)

Instantiation pattern: Static Factory Method (via `TradeConfTypesDef.TicketForwardTradeConfirmation.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.tradeconfirmation.TradeConfTypesDef; 

import java.math.BigInteger;
import static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAllocationDetailsUpdateFields;
import static com.caplin.motif.fx.config.definitions.common.Tag;

import com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef;

public class TicketForwardTradeConfirmationExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.TicketForwardTradeConfirmation ticketForwardTradeConfirmation =
		TradeConfTypesDef.TicketForwardTradeConfirmation
			.newBuilder()
			.setCommonForwardTradeConfirmation(
			TradeConfTypesDef.CommonForwardTradeConfirmation
				.newBuilder()
				.setCommonFields(
				TradeConfPartsDef.CommonTradeConfirmationFields
					.newBuilder()
					.setAccount("", true)
					.setAccountEditable()
					.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
					.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
					.setAmountDPS("2")
					.setAssetType("")
					.setBackOfficeID("")
					.setCanAllocate("")
					.setCanDrawdown("")
					.setClient("")
					.setClientAgreementDateTime(Instant.now())
					.setClientAgreementDateTimeEditable()
					.setContraAmountDPS("2")
					.setContraCostAmount("")
					.setContraCostCurrency("GBP")
					.setContraCostCurrencyDPS("2")
					.setContraCostPercentage("13.56")
					.setCostAmount(BigDecimal.valueOf(12412891.31))
					.setCostCurrency("GBP")
					.setCostCurrencyDPS(2)
					.setCostPercentage(BigDecimal.valueOf(13.56))
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setDealtCurrencyRisk()
					.setDeliverableType("DELIVERABLE")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExecutionDateTime("20160322123621")
					.setFullName("")
					.setHasPostTradeHistory("")
					.setIsAllocated("")
					.setIsAmendable(true)
					.setIsCancellable("")
					.setIsCommercial(true)
					.setIsRepriceTrade("")
					.setIsReversible(true)
					.setNaturalLanguageSummaryHidden("")
					.setNumberOfPips("2")
					.setOrderID("000012345")
					.setOriginalTradeID("")
					.setPostTradeType("")
					.setPriceSource("st1@caplin.com")
					.setPurpose("Commercial")
					.setRemarks("")
					.setServiceContraCostCurrencyDPS(2)
					.setServiceCostCurrencyDPS("2")
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRate("1.08341")
					.setSpotRateDPS(5)
					.setStatus("Completed")
					.setTOBOUser("", true, true)
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTags(Arrays.asList(/* ... */))
					.setTradeDate("20160314")
					.setTradeID("00001561")
					.setTraderUsername("sales_trader@novobank.co.za")
					.setTradingType("SPOT")
					.setUTI("")
					.setVenue("FX Sales")
					.setWarningCode("001")
					.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
					.build())
				.setLegTradeConfirmation(
				TradeConfPartsDef.LegTradeConfirmationFields
					.newBuilder()
					.addRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.setRemarkDateTime("2018-03-16T07:25:16+00:00")
						.setRemarkOriginStatus("")
						.setRemarkSource("")
						.setRemarkTargetStatus("")
						.build())
					.setAccount("Garfields|GARF")
					.setAdjustedSwapPoints(BigDecimal.valueOf(0.0))
					.setAllInMidRate("1.091790")
					.setAllInRate("1.091790")
					.setAllInRateDPS("5")
					.setAllocatableAmount("500")
					.setAllocatableContraAmount("500")
					.setAmount(BigDecimal.valueOf(0.0), true, true)
					.setAmountEditable()
					.setAmountRisk()
					.setBuySell("")
					.setContraAmount("500")
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostAmount("12412891.31")
					.setCostCurrency("GBP")
					.setCostPercentage(BigDecimal.valueOf(13.56))
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setFilledAmount("0")
					.setForwardPointsDecimalOffset("")
					.setFullName("")
					.setFwdMidPoints("0.005390")
					.setFwdPips("11.98")
					.setFwdPoints(BigDecimal.valueOf(0.001198))
					.setIsTimeOption(true)
					.setNostroAccountFields(
					SettlementInstructionsPartsDef.NostroAccount
						.newBuilder()
						.setNostroAccount("AE770090004000824676500")
						.setNostroBIC("ARABAEADABC")
						.setNostroName("GBP Nostro Account.")
						.build())
					.setOriginalRate("")
					.setProfit(BigDecimal.valueOf(1000))
					.setRemainingAmount(BigDecimal.valueOf(500))
					.setRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setServiceContraCostAmount(BigDecimal.valueOf(0.0))
					.setServiceContraCostCurrency("GBP")
					.setServiceCostAmount("")
					.setServiceCostCurrency("GBP")
					.setSettlementDate("", true, true)
					.setSettlementDateEditable()
					.setSettlementDateRisk()
					.setSettlementTradeFields(
					SettlementInstructionsPartsDef.SettlementTradeFields
						.newBuilder()
						.addPay(
						SettlementInstructionsPartsDef.SettlementFields
							.newBuilder()
							.setBankAccount("12345678")
							.setBankAddress1("12 Capitol")
							.setBankAddress2("The City")
							.setBankAddress3("London")
							.setBankName("Bank Of Caplin")
							.setBankSwift("CAP123")
							.setIndividualAccount("87654321")
							.setIndividualAddress1("98 Lane")
							.setIndividualAddress2("Manchester")
							.setIndividualName("Susan Sellers")
							.setIndividualSwift("SOLD987")
							.setIntermediaryDetection("")
							.setIsDefaultSettlementInstruction(true)
							.setNettingStatus("NETTED")
							.setSettlementAmount("")
							.setSettlementCurrency("GBP")
							.setSettlementDetailsLine1("")
							.setSettlementDetailsLine2("")
							.setSettlementDetailsLine3("")
							.setSettlementDetailsLine4("")
							.setSettlementDetailsLine5("")
							.setSettlementDetailsLine6("")
							.setSettlementDirection("")
							.setSettlementDisplayName("[CCY] Account 1")
							.setSettlementId("")
							.setSettlementInstructionType("EXISTING")
							.setSettlementStatus("")
							.setSplitComponentId("")
							.build())
						.addPayNettingComponents(
						SettlementInstructionsPartsDef.NettingComponents
							.newBuilder()
							.setAmount(BigDecimal.valueOf(0))
							.setBuySell("")
							.setTradeID("00001561")
							.build())
						.addReceive(
						SettlementInstructionsPartsDef.SettlementFields
							.newBuilder()
							.build())
						.addReceiveNettingComponents(
						SettlementInstructionsPartsDef.NettingComponents
							.newBuilder()
							.build())
						.setAffirmedBy("")
						.setAffirmedDateTime("2018-03-16T07:25:16+00:00")
						.setCanAdHoc(true)
						.setCanAffirm("")
						.setCanApproveInstructions(true)
						.setCanAutoConfirm("")
						.setCanCancel("")
						.setCanConfirm("")
						.setCanDispute("")
						.setCanRejectInstructions("")
						.setCanRelease(true)
						.setCanReplace(true)
						.setCanUnconfirm("")
						.setConfirmedBy("")
						.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
						.setIsPayNetted(true)
						.setIsPayNettingRequired("")
						.setIsPaySplit(true)
						.setIsReceiveNetted("")
						.setIsReceiveNettingRequired("")
						.setIsReceiveSplit("")
						.setNextActionDeadline(Instant.now())
						.setNextActionDeadlineDisplayTimezone("America/New_York")
						.setSettlementStatus("")
						.build())
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("", true)
					.setStartTenorRisk()
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTenor("", true, true)
					.setTenorEditable()
					.setTenorRisk()
					.setTradeID("00001561")
					.build())
				.setNdfLegTradeConfirmation(
				TradeConfPartsDef.NDFLegTradeConfirmationFields
					.newBuilder()
					.setFixingAmount(BigDecimal.valueOf(0.0))
					.setFixingCode("[CCY]1/1600/GBLO")
					.setFixingCurrency("USD")
					.setFixingDate("20150620")
					.setFixingDescription("WMR [CCY] 4pm London")
					.setReferenceAmount("")
					.setReferenceCurrency("")
					.setSettlementAmount(BigDecimal.valueOf(0.0))
					.build())
				.setNdfTradeConfirmation(
				TradeConfPartsDef.NDFTradeConfirmationFields
					.newBuilder()
					.setFixingSource("WMR 8am London Time")
					.setLocationType("")
					.setSettlementCurrency("GBP")
					.build())
				.setTimeOptionLegTradeConfirmation(
				TradeConfPartsDef.TimeOptionLegTradeConfirmationFields
					.newBuilder()
					.setFilledAmount(BigDecimal.valueOf(0))
					.setRemainingAmount(BigDecimal.valueOf(500))
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("1W")
					.setStartTenorRisk()
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setSettlementTradeFields(
			SettlementInstructionsPartsDef.SettlementSummaryTradeFields
				.newBuilder()
				.build())
			.build();
            
    }
}
```