# Trade model: Allocate

This page describes the FX Integration API's **Allocate** 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 Allocate trade model's state model in Mermaid JS format:

```mermaid
stateDiagram-v2
%% Allocate
    [*] --> Initial
    Initial --> DetailsRequested : DetailsRequest (client)
    DetailsRequested --> DetailsProvided : DetailsUpdate (server)
    DetailsRequested --> Rejected : Reject (server)
    DetailsRequested --> ClientCloseSent : ClientClose (client)
    DetailsProvided --> Submitted : Submit (client)
    DetailsProvided --> ClientCloseSent : ClientClose (client)
    Submitted --> Allocated : AllocateAck (server)
    Submitted --> Queued : SubmitAck (server)
    Submitted --> Rejected : Reject (server)
    Submitted --> Error : Error (server)
    Submitted --> Error : Hold (server)
    Submitted --> Error : Withdraw (server)
    Allocated --> [*]
    Queued --> Rejected : Reject (server)
    Queued --> Error : Error (server)
    Queued --> Expired : Expire (server)
    Queued --> ClientCloseSent : ClientClose (client)
    Queued --> PickedUp : PickUp (server)
    Queued --> Error : Execute (client)
    Rejected --> [*]
    Error --> [*]
    Expired --> [*]
    ClientCloseSent --> ClientClosed : ClientCloseAck (server)
    ClientClosed --> [*]
    PickedUp --> Rejected : Reject (server)
    PickedUp --> Error : Error (server)
    PickedUp --> Queued : Hold (server)
    PickedUp --> Executable : PriceUpdate (server)
    PickedUp --> ClientCloseSent : ClientClose (client)
    PickedUp --> Error : Execute (client)
    Executable --> Error : Error (server)
    Executable --> Rejected : Reject (server)
    Executable --> Expired : Expire (server)
    Executable --> ExecuteSent : Execute (client)
    Executable --> Executable : PriceUpdate (server)
    Executable --> Submitted : Resubmit (client)
    Executable --> ClientCloseSent : ClientClose (client)
    Executable --> PickedUp : Withdraw (server)
    ExecuteSent --> Rejected : Reject (server)
    ExecuteSent --> Error : Error (server)
    ExecuteSent --> Executed : ExecuteAck (server)
    ExecuteSent --> ExecuteSent : PriceUpdate (server)
    ExecuteSent --> WarningSent : Warning (server)
    ExecuteSent --> Error : Hold (server)
    ExecuteSent --> Error : Withdraw (server)
    Executed --> Rejected : Reject (server)
    Executed --> Error : Error (server)
    Executed --> Expired : Expire (server)
    Executed --> TradeConfirmed : TradeConfirmation (server)
    TradeConfirmed --> [*]
    WarningSent --> Expired : Expire (server)
    WarningSent --> Error : Error (server)
    WarningSent --> AcceptWarningSent : AcceptWarning (client)
    WarningSent --> Executable : RejectWarning (client)
    WarningSent --> ClientCloseSent : ClientClose (client)
    WarningSent --> Error : Withdraw (server)
    AcceptWarningSent --> Error : Error (server)
    AcceptWarningSent --> Executed : AcceptWarningAck (server)
```

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

| Source state | Event trigger | Origin | Target state |
| ------------ | ------------- | ------ | ------------ |
| [*] | - | - | Initial |
| Initial | DetailsRequest | client | DetailsRequested |
| DetailsRequested | DetailsUpdate | server | DetailsProvided |
| DetailsRequested | Reject | server | Rejected |
| DetailsRequested | ClientClose | client | ClientCloseSent |
| DetailsProvided | Submit | client | Submitted |
| DetailsProvided | ClientClose | client | ClientCloseSent |
| Submitted | AllocateAck | server | Allocated |
| Submitted | SubmitAck | server | Queued |
| Submitted | Reject | server | Rejected |
| Submitted | Error | server | Error |
| Submitted | Hold | server | Error |
| Submitted | Withdraw | server | Error |
| Allocated | - | - | [*] |
| Queued | Reject | server | Rejected |
| Queued | Error | server | Error |
| Queued | Expire | server | Expired |
| Queued | ClientClose | client | ClientCloseSent |
| Queued | PickUp | server | PickedUp |
| Queued | Execute | client | Error |
| Rejected | - | - | [*] |
| Error | - | - | [*] |
| Expired | - | - | [*] |
| ClientCloseSent | ClientCloseAck | server | ClientClosed |
| ClientClosed | - | - | [*] |
| PickedUp | Reject | server | Rejected |
| PickedUp | Error | server | Error |
| PickedUp | Hold | server | Queued |
| PickedUp | PriceUpdate | server | Executable |
| PickedUp | ClientClose | client | ClientCloseSent |
| PickedUp | Execute | client | Error |
| Executable | Error | server | Error |
| Executable | Reject | server | Rejected |
| Executable | Expire | server | Expired |
| Executable | Execute | client | ExecuteSent |
| Executable | PriceUpdate | server | Executable |
| Executable | Resubmit | client | Submitted |
| Executable | ClientClose | client | ClientCloseSent |
| Executable | Withdraw | server | PickedUp |
| ExecuteSent | Reject | server | Rejected |
| ExecuteSent | Error | server | Error |
| ExecuteSent | ExecuteAck | server | Executed |
| ExecuteSent | PriceUpdate | server | ExecuteSent |
| ExecuteSent | Warning | server | WarningSent |
| ExecuteSent | Hold | server | Error |
| ExecuteSent | Withdraw | server | Error |
| Executed | Reject | server | Rejected |
| Executed | Error | server | Error |
| Executed | Expire | server | Expired |
| Executed | TradeConfirmation | server | TradeConfirmed |
| TradeConfirmed | - | - | [*] |
| WarningSent | Expire | server | Expired |
| WarningSent | Error | server | Error |
| WarningSent | AcceptWarning | client | AcceptWarningSent |
| WarningSent | RejectWarning | client | Executable |
| WarningSent | ClientClose | client | ClientCloseSent |
| WarningSent | Withdraw | server | Error |
| AcceptWarningSent | Error | server | Error |
| AcceptWarningSent | AcceptWarningAck | server | Executed |

## 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: AcceptWarning (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "AcceptWarning",
  "message_origin": "client",
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "AcceptWarning",
      "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": "AmendmentType",
      "type": "string",
      "flags": "",
      "definition": "The type of the trade amendment, only used when amending a trade",
      "example_value": "Economic",
      "deprecated": false
    },
    {
      "name": "AmendmentReason",
      "type": "",
      "flags": "",
      "definition": "The reason for the trade amendment, only used when amending a trade",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

### Event: ClientClose (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "ClientClose",
  "message_origin": "client",
  "parts": [
    {
      "part_name": "Execution",
      "parts": [
        {
          "part_name": "ExecutionLeg",
          "parts": [
            {
              "part_name": "SyntheticLegComponent",
              "fields": [
                {
                  "name": "Ln_Cn_TraderFwdBidPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This field represents the forward bid points with no client margin applied to them.",
                  "example_value": "0.001198",
                  "deprecated": false
                },
                {
                  "name": "Ln_Cn_TraderFwdAskPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This field represents the forward ask points with no client margin applied to them.",
                  "example_value": "0.001198",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in 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_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "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_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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": "Ln_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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": "Ln_AllInBidMargin",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the all-in bid rate, with client margin applied to it",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "Ln_AllInAskMargin",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the all-in bid rate, with client margin applied to it",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "Ln_FwdBidMargin",
              "type": "",
              "flags": "",
              "definition": "This field represents the Forward margin that the sales user has selected. This field should be sent raw and unformatted.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_FwdAskMargin",
              "type": "",
              "flags": "",
              "definition": "This field represents the Forward margin that the sales user has selected. This field should be sent raw and unformatted.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_BuySideLocked",
              "type": "",
              "flags": "",
              "definition": "This represents whether the user locked the rates for the buy side. Follows the same rules about base/dealt currency as the BuySell field. Only sent if the Missed Trades feature is enabled in the Frontend configuration.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_SellSideLocked",
              "type": "",
              "flags": "",
              "definition": "This represents whether the user locked the rates for the sell side. Follows the same rules about base/dealt currency as the BuySell field. Only sent if the Missed Trades feature is enabled in the Frontend configuration.",
              "example_value": "",
              "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
            },
            {
              "name": "Ln_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": true
            },
            {
              "name": "Ln_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": true
            },
            {
              "name": "Ln_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": true
            },
            {
              "name": "Ln_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "Ln_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SyntheticComponent",
          "fields": [
            {
              "name": "Cn_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "Cn_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "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": "QuoteID",
          "type": "string",
          "flags": "",
          "definition": "The unique ID of the quote the client wants to trade on.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
          "example_value": "1.08349",
          "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": "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": "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": "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": "StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "EndDate",
          "type": "",
          "flags": "",
          "definition": "The end date value for a time option trade.  example: 20150620",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field is included on the rate update that the client wants to trade on.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SpotAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field is included on the rate update that the client wants to trade on.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SwapBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap bid points that the client wants to trade on",
          "example_value": "0.004171",
          "deprecated": false
        },
        {
          "name": "SwapAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap ask points that the client wants to trade on",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "SwapBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The swap margin to be applied to the bid side",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "SwapAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The swap margin to be applied to the ask side",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "IsAdvised",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the trader gave the client advice",
          "example_value": "",
          "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": "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
        },
        {
          "name": "StreamingMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
          "example_value": "MANUAL, STREAMING",
          "deprecated": false
        },
        {
          "name": "TraderSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "TraderSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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": "AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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": "AllInBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "AllInAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "BidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": true
        },
        {
          "name": "AskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": true
        },
        {
          "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": "ClientAgreementDateTime",
          "type": "datetime",
          "flags": "",
          "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": "AppID",
          "type": "",
          "flags": "",
          "definition": "A unique identifier for the client application",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotTrader",
          "type": "string",
          "flags": "",
          "definition": "The Spot trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ForwardPointsTrader",
          "type": "string",
          "flags": "",
          "definition": "The Forward points trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ],
  "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
    },
    {
      "name": "MissedTrade",
      "type": "string",
      "flags": "",
      "definition": "Flag to denote if a quote is a MissedTrade",
      "example_value": "true",
      "deprecated": false
    },
    {
      "name": "MissedReason",
      "type": "string",
      "flags": "",
      "definition": "Reason for the missed trade",
      "example_value": "Traded Away",
      "deprecated": false
    },
    {
      "name": "MissedTime",
      "type": "string",
      "flags": "",
      "definition": "The time and date the trade missed. This is in ISO-8601 format.",
      "example_value": "2013-07-24T17:13:59.985",
      "deprecated": false
    },
    {
      "name": "MissedTradeExecutableFieldsAvailable",
      "type": "",
      "flags": "",
      "definition": "Indicates if the execution field set is available",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

### Event: DetailsRequest (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsRequest",
  "message_origin": "client",
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "DetailsRequest",
      "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": "TradeID",
      "type": "string",
      "flags": "",
      "definition": "A unique identifier for this trade",
      "example_value": "00001561",
      "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": "AllocationType",
      "type": "",
      "flags": "",
      "definition": "Type of post allocation to be performed, e.g. ALLOCATION, EARLY_TAKE_UP, REPRICE",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

### Event: Execute (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Execute",
  "message_origin": "client",
  "parts": [
    {
      "part_name": "Execution",
      "parts": [
        {
          "part_name": "ExecutionLeg",
          "parts": [
            {
              "part_name": "SyntheticLegComponent",
              "fields": [
                {
                  "name": "Ln_Cn_TraderFwdBidPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This field represents the forward bid points with no client margin applied to them.",
                  "example_value": "0.001198",
                  "deprecated": false
                },
                {
                  "name": "Ln_Cn_TraderFwdAskPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This field represents the forward ask points with no client margin applied to them.",
                  "example_value": "0.001198",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in 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_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "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_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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": "Ln_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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": "Ln_AllInBidMargin",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the all-in bid rate, with client margin applied to it",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "Ln_AllInAskMargin",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the all-in bid rate, with client margin applied to it",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "Ln_FwdBidMargin",
              "type": "",
              "flags": "",
              "definition": "This field represents the Forward margin that the sales user has selected. This field should be sent raw and unformatted.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_FwdAskMargin",
              "type": "",
              "flags": "",
              "definition": "This field represents the Forward margin that the sales user has selected. This field should be sent raw and unformatted.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_BuySideLocked",
              "type": "",
              "flags": "",
              "definition": "This represents whether the user locked the rates for the buy side. Follows the same rules about base/dealt currency as the BuySell field. Only sent if the Missed Trades feature is enabled in the Frontend configuration.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_SellSideLocked",
              "type": "",
              "flags": "",
              "definition": "This represents whether the user locked the rates for the sell side. Follows the same rules about base/dealt currency as the BuySell field. Only sent if the Missed Trades feature is enabled in the Frontend configuration.",
              "example_value": "",
              "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
            },
            {
              "name": "Ln_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": true
            },
            {
              "name": "Ln_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": true
            },
            {
              "name": "Ln_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": true
            },
            {
              "name": "Ln_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "Ln_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SyntheticComponent",
          "fields": [
            {
              "name": "Cn_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "Cn_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "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": "QuoteID",
          "type": "string",
          "flags": "",
          "definition": "The unique ID of the quote the client wants to trade on.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
          "example_value": "1.08349",
          "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": "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": "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": "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": "StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "EndDate",
          "type": "",
          "flags": "",
          "definition": "The end date value for a time option trade.  example: 20150620",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field is included on the rate update that the client wants to trade on.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SpotAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field is included on the rate update that the client wants to trade on.",
          "example_value": "1.08341",
          "deprecated": false
        },
        {
          "name": "SwapBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap bid points that the client wants to trade on",
          "example_value": "0.004171",
          "deprecated": false
        },
        {
          "name": "SwapAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap ask points that the client wants to trade on",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "SwapBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The swap margin to be applied to the bid side",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "SwapAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The swap margin to be applied to the ask side",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "IsAdvised",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the trader gave the client advice",
          "example_value": "",
          "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": "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
        },
        {
          "name": "StreamingMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
          "example_value": "MANUAL, STREAMING",
          "deprecated": false
        },
        {
          "name": "TraderSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "TraderSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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": "AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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": "AllInBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "AllInAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "BidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": true
        },
        {
          "name": "AskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": true
        },
        {
          "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": "ClientAgreementDateTime",
          "type": "datetime",
          "flags": "",
          "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": "AppID",
          "type": "",
          "flags": "",
          "definition": "A unique identifier for the client application",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotTrader",
          "type": "string",
          "flags": "",
          "definition": "The Spot trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ForwardPointsTrader",
          "type": "string",
          "flags": "",
          "definition": "The Forward points trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ],
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "Execute",
      "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: RejectWarning (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "RejectWarning",
  "message_origin": "client",
  "fields": [
    {
      "name": "MsgType",
      "type": "String",
      "flags": "",
      "definition": "Name of the transition",
      "example_value": "RejectWarning",
      "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: Resubmit (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Resubmit",
  "message_origin": "client",
  "parts": [
    {
      "part_name": "RFSSubmission",
      "parts": [
        {
          "part_name": "RFSSubmissionLeg",
          "fields": [
            {
              "name": "Ln_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "Ln_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_GroupID",
              "type": "",
              "flags": "",
              "definition": "Leg group identifier used to link legs together.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_IsFarLeg",
              "type": "",
              "flags": "",
              "definition": "Identifies if the leg is the far leg of a SWAP trade.",
              "example_value": "",
              "deprecated": false
            },
            {
              "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
            }
          ]
        }
      ],
      "fields": [
        {
          "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": "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": true
        },
        {
          "name": "OneWayDirection",
          "type": "string",
          "flags": "",
          "definition": "The trade direction of the base currency in a one-way quote. When this field is absent or has no value, a two-way quote/stream is requested. When this field is set to BUY or SELL, a one-way quote/stream is requested, with BUY or SELL indicating the trade direction of the base currency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "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
        },
        {
          "name": "SingleComponentRepriceField",
          "type": "string",
          "flags": "",
          "definition": "The field which is going to get repriced",
          "example_value": "TraderSpotAskRate/TraderSpotBidRate/L1_TraderFwdAskPoints/L1_TraderFwdBidPoints/L1_TraderAllInAskRate/L1_TraderAllInBidRate",
          "deprecated": false
        },
        {
          "name": "RequestedProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The preferred currency to be used in calculating sales profit details.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "SingleComponentRepriceValue",
          "type": "string",
          "flags": "",
          "definition": "The value of the SingleComponentRepriceField",
          "example_value": "123.012345",
          "deprecated": false
        },
        {
          "name": "StreamingMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
          "example_value": "MANUAL, STREAMING",
          "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": "Resubmit",
      "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: Submit (client)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Submit",
  "message_origin": "client",
  "parts": [
    {
      "part_name": "Allocate",
      "parts": [
        {
          "part_name": "AllocateLeg",
          "fields": [
            {
              "name": "Ln_AllocationAmount",
              "type": "",
              "flags": "",
              "definition": "The amount to allocate to this leg, specified in the dealt currency. Example value: 50000",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "Ln_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_GroupID",
              "type": "",
              "flags": "",
              "definition": "Leg group identifier used to link legs together.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_IsFarLeg",
              "type": "",
              "flags": "",
              "definition": "Identifies if the leg is the far leg of a SWAP trade.",
              "example_value": "",
              "deprecated": false
            },
            {
              "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": "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": "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": true
        },
        {
          "name": "OneWayDirection",
          "type": "string",
          "flags": "",
          "definition": "The trade direction of the base currency in a one-way quote. When this field is absent or has no value, a two-way quote/stream is requested. When this field is set to BUY or SELL, a one-way quote/stream is requested, with BUY or SELL indicating the trade direction of the base currency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "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
        },
        {
          "name": "SingleComponentRepriceField",
          "type": "string",
          "flags": "",
          "definition": "The field which is going to get repriced",
          "example_value": "TraderSpotAskRate/TraderSpotBidRate/L1_TraderFwdAskPoints/L1_TraderFwdBidPoints/L1_TraderAllInAskRate/L1_TraderAllInBidRate",
          "deprecated": false
        },
        {
          "name": "RequestedProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The preferred currency to be used in calculating sales profit details.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "SingleComponentRepriceValue",
          "type": "string",
          "flags": "",
          "definition": "The value of the SingleComponentRepriceField",
          "example_value": "123.012345",
          "deprecated": false
        },
        {
          "name": "StreamingMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
          "example_value": "MANUAL, STREAMING",
          "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
    }
  ]
}
```

### Event: AcceptWarningAck (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "AcceptWarningAck",
  "message_origin": "server"
}
```

### Event: AllocateAck (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "AllocateAck",
  "message_origin": "server"
}
```

### Event: ClientCloseAck (server)

Message specification:

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

### Event: DetailsUpdate (server)

The DetailsUpdate event is polymorphic. When building a DetailsUpdate event message, choose the specification appropriate to the client's web application (Caplin FX Professional or Caplin FX Sales) and the TradingType field of the trade being allocated.

#### TradingType SPOT, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationSpotDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationSpotDetailsUpdate.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/AllocationSpotDetailsUpdateExample.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
            }
          ]
        }
      ]
    }
  ],
  "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationSpotDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationSpotDetailsUpdate allocationSpotDetailsUpdate =
		TradeConfTypesDef.AllocationSpotDetailsUpdate
			.newBuilder()
			.setCanOverAllocate(true)
			.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. */))
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```


#### TradingType SPOT, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationSpotSalesDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationSpotSalesDetailsUpdate.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/AllocationSpotSalesDetailsUpdateExample.html",
  "parts": [
    {
      "part_name": "CommonSpotSalesTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonSpotSalesTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonSpotSalesTradeConfirmation.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": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_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
                }
              ]
            },
            {
              "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_TraderRemarks[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_TraderRemarks[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_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[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_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "L1_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "L1_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "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_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "L1_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "L1_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "L1_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesCommonTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesCommonTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesCommonTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C1_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C1_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C2_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C2_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "ProfitCurrency",
              "type": "string",
              "flags": "",
              "definition": "The profit currency that the ProfitBidRate is being provided for.",
              "example_value": "USD",
              "deprecated": false
            },
            {
              "name": "ProfitCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "ProfitIsHouse",
              "type": "boolean",
              "flags": "",
              "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ProfitRate",
              "type": "decimal",
              "flags": "",
              "definition": "The conversion rate from the contra currency into the profit currency.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "TraderSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "1.09174",
              "deprecated": false
            },
            {
              "name": "SpotMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "Competition",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Source",
              "type": "string",
              "flags": "",
              "definition": "The source of a quote request. The name or ID of an ECN, SDP or other channel",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Reasons",
              "type": "string",
              "flags": "",
              "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "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
            },
            {
              "name": "ExternalRemarks",
              "type": "string",
              "flags": "",
              "definition": "The trader's comments on an order leg - visible to only the sales, set/edited only by the Trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsAdvised",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the trader gave the client advice",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "StreamingMode",
              "type": "string",
              "flags": "",
              "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
              "example_value": "MANUAL, STREAMING",
              "deprecated": false
            },
            {
              "name": "SyntheticCrossCurrency",
              "type": "string",
              "flags": "",
              "definition": "The common currency of each synthetic component.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "AmendmentReasonDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration for a frontend to display label-value pairs for the amendment type/reasons. Use DefaultDisplayFields builders to provide Caplin default fields.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentReasonDisplayFields','name':'addDefaultSalesAmendmentReasonDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "deprecated": false
            },
            {
              "name": "SpotTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Spot trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ForwardPointsTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Forward points trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ReferenceSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "XVATotalAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The sum of all the XVA amounts",
              "example_value": "15",
              "deprecated": false
            },
            {
              "name": "XVANetProfit",
              "type": "decimal",
              "flags": "",
              "definition": "Calculated as the (total profit - xva total amount)",
              "example_value": "14.12",
              "deprecated": false
            },
            {
              "name": "AmendmentSummaryDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration to display amended details for a trade.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentSummaryDisplayFields','name':'addDefaultSalesAmendmentSummaryDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationSpotSalesDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationSpotSalesDetailsUpdate allocationSpotSalesDetailsUpdate =
		TradeConfTypesDef.AllocationSpotSalesDetailsUpdate
			.newBuilder()
			.setCanOverAllocate(true)
			.setCommonSpotSalesTradeConfirmation(
			TradeConfTypesDef.CommonSpotSalesTradeConfirmation
				.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())
				.setNearSalesLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.addTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build())
					.setAdjustedSwapMargin(BigDecimal.valueOf(0.0))
					.setAdjustedTraderSwapPoints("")
					.setAllInMargin("0.00054")
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor("1.2")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints("0.005390")
						.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setFwdMargin("0.000019")
					.setFwdMarginEditable()
					.setOriginalMargin(BigDecimal.valueOf(0.0))
					.setReferenceFwdPoints(BigDecimal.valueOf(0.0))
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTraderAllInRate(BigDecimal.valueOf(1.005390))
					.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setSalesCommonFields(
				TradeConfPartsDef.SalesCommonTradeConfirmationFields
					.newBuilder()
					.setAmendmentReasonDisplayFields(arg)
					.setAmendmentSummaryDisplayFields("")
					.setCompetition("")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips(2)
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS(5)
						.setTraderSpotRate("1.09174")
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("")
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit("1000")
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS(5)
					.setProfitIsHouse("")
					.setProfitRate("1.091790")
					.setReasons("Customer Initiated")
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin("", true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate("1.09174")
					.setXVANetProfit("14.12")
					.setXVATotalAmount(BigDecimal.valueOf(15))
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```

#### TradingType FWD, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationForwardDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationForwardDetailsUpdate.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/AllocationForwardDetailsUpdateExample.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
            }
          ]
        }
      ]
    }
  ],
  "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "MinRepriceDate",
      "type": "string",
      "flags": "",
      "definition": "The minimum settlement date that can be chosen when repricing a trade",
      "example_value": "2023-06-17",
      "deprecated": false
    },
    {
      "name": "MaxRepriceDate",
      "type": "string",
      "flags": "",
      "definition": "The maximum settlement date that can be chosen when repricing a trade",
      "example_value": "2023-06-17",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationForwardDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationForwardDetailsUpdate allocationForwardDetailsUpdate =
		TradeConfTypesDef.AllocationForwardDetailsUpdate
			.newBuilder()
			.setCanOverAllocate(true)
			.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. */))
			.setMaxRepriceDate("2023-06-17")
			.setMinRepriceDate("2023-06-17")
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```

#### TradingType FWD, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationForwardSalesDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationForwardSalesDetailsUpdate.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/AllocationForwardSalesDetailsUpdateExample.html",
  "parts": [
    {
      "part_name": "CommonForwardSalesTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonForwardSalesTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonForwardSalesTradeConfirmation.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": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_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
                }
              ]
            },
            {
              "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_TraderRemarks[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_TraderRemarks[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_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[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_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "L1_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "L1_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "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_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "L1_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "L1_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "L1_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesCommonTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesCommonTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesCommonTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C1_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C1_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C2_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C2_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "ProfitCurrency",
              "type": "string",
              "flags": "",
              "definition": "The profit currency that the ProfitBidRate is being provided for.",
              "example_value": "USD",
              "deprecated": false
            },
            {
              "name": "ProfitCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "ProfitIsHouse",
              "type": "boolean",
              "flags": "",
              "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ProfitRate",
              "type": "decimal",
              "flags": "",
              "definition": "The conversion rate from the contra currency into the profit currency.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "TraderSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "1.09174",
              "deprecated": false
            },
            {
              "name": "SpotMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "Competition",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Source",
              "type": "string",
              "flags": "",
              "definition": "The source of a quote request. The name or ID of an ECN, SDP or other channel",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Reasons",
              "type": "string",
              "flags": "",
              "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "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
            },
            {
              "name": "ExternalRemarks",
              "type": "string",
              "flags": "",
              "definition": "The trader's comments on an order leg - visible to only the sales, set/edited only by the Trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsAdvised",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the trader gave the client advice",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "StreamingMode",
              "type": "string",
              "flags": "",
              "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
              "example_value": "MANUAL, STREAMING",
              "deprecated": false
            },
            {
              "name": "SyntheticCrossCurrency",
              "type": "string",
              "flags": "",
              "definition": "The common currency of each synthetic component.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "AmendmentReasonDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration for a frontend to display label-value pairs for the amendment type/reasons. Use DefaultDisplayFields builders to provide Caplin default fields.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentReasonDisplayFields','name':'addDefaultSalesAmendmentReasonDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "deprecated": false
            },
            {
              "name": "SpotTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Spot trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ForwardPointsTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Forward points trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ReferenceSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "XVATotalAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The sum of all the XVA amounts",
              "example_value": "15",
              "deprecated": false
            },
            {
              "name": "XVANetProfit",
              "type": "decimal",
              "flags": "",
              "definition": "Calculated as the (total profit - xva total amount)",
              "example_value": "14.12",
              "deprecated": false
            },
            {
              "name": "AmendmentSummaryDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration to display amended details for a trade.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentSummaryDisplayFields','name':'addDefaultSalesAmendmentSummaryDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    },
    {
      "name": "MinRepriceDate",
      "type": "string",
      "flags": "",
      "definition": "The minimum settlement date that can be chosen when repricing a trade",
      "example_value": "2023-06-17",
      "deprecated": false
    },
    {
      "name": "MaxRepriceDate",
      "type": "string",
      "flags": "",
      "definition": "The maximum settlement date that can be chosen when repricing a trade",
      "example_value": "2023-06-17",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationForwardSalesDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationForwardSalesDetailsUpdate allocationForwardSalesDetailsUpdate =
		TradeConfTypesDef.AllocationForwardSalesDetailsUpdate
			.newBuilder()
			.setCanOverAllocate(true)
			.setCommonForwardSalesTradeConfirmation(
			TradeConfTypesDef.CommonForwardSalesTradeConfirmation
				.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())
				.setNearSalesLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.addTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build())
					.setAdjustedSwapMargin(BigDecimal.valueOf(0.0))
					.setAdjustedTraderSwapPoints("")
					.setAllInMargin("0.00054")
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor("1.2")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints("0.005390")
						.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setFwdMargin("0.000019")
					.setFwdMarginEditable()
					.setOriginalMargin(BigDecimal.valueOf(0.0))
					.setReferenceFwdPoints(BigDecimal.valueOf(0.0))
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTraderAllInRate(BigDecimal.valueOf(1.005390))
					.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setSalesCommonFields(
				TradeConfPartsDef.SalesCommonTradeConfirmationFields
					.newBuilder()
					.setAmendmentReasonDisplayFields(arg)
					.setAmendmentSummaryDisplayFields("")
					.setCompetition("")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips(2)
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS(5)
						.setTraderSpotRate("1.09174")
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("")
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit("1000")
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS(5)
					.setProfitIsHouse("")
					.setProfitRate("1.091790")
					.setReasons("Customer Initiated")
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin("", true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate("1.09174")
					.setXVANetProfit("14.12")
					.setXVATotalAmount(BigDecimal.valueOf(15))
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setMaxRepriceDate("2023-06-17")
			.setMinRepriceDate("2023-06-17")
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```

#### TradingType SWAP, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationSwapDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationSwapDetailsUpdate.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/AllocationSwapDetailsUpdateExample.html",
  "parts": [
    {
      "part_name": "CommonSwapTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonSwapTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonSwapTradeConfirmation.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": "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": "L2_Pay[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_Pay[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_Pay[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_Pay[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Pay[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_Receive[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_Receive[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_Receive[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_Receive[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Receive[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_PayNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_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": "L2_ReceiveNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_ReceiveNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "L2_CanAffirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Affirm the Trade Details are as agreed.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_CanConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Confirm the Settlement Details are now final.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_CanAdHoc",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can confirm adhoc settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_CanCancel",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_CanUnconfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to move the deal back to a Pending state.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_CanApproveInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can approve settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_CanRejectInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can reject settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_CanRelease",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Relates to post trade actions: User can release the trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_SettlementStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_NextActionDeadlineDisplayTimezone",
                  "type": "string",
                  "flags": "",
                  "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                  "example_value": "America/New_York",
                  "deprecated": false
                },
                {
                  "name": "L2_AffirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who affirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_ConfirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who confirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_IsPayNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_IsReceiveNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_IsPayNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_IsReceiveNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_IsPaySplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_NostroName",
                  "type": "string",
                  "flags": "",
                  "definition": "An identifier for the given nostro account.",
                  "example_value": "GBP Nostro Account.",
                  "deprecated": false
                },
                {
                  "name": "L2_NostroBIC",
                  "type": "string",
                  "flags": "",
                  "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                  "example_value": "ARABAEADABC",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_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": "L2_Remarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_Remarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_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": "L2_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_Amount",
              "type": "decimal",
              "flags": "Editable, Risk",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L2_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L2_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_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": "L2_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_ServiceContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_ServiceCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service home currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_AllocatableAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_OriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The Rate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_ReferenceCurrency",
              "type": "string",
              "flags": "",
              "definition": "The Buy or Sell Currency that is not the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_SettlementAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a settlement",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SwapTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SwapTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SwapTradeConfirmationFields.html",
          "fields": [
            {
              "name": "SwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The difference in interest rates between transaction currencies.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "SwapMidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The value of swap points that is halfway between the swap bid points and the swap ask points.",
              "example_value": "0.004553",
              "deprecated": false
            },
            {
              "name": "SwapPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "SwapType",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "SPOTFWD",
              "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationSwapDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationSwapDetailsUpdate allocationSwapDetailsUpdate =
		TradeConfTypesDef.AllocationSwapDetailsUpdate
			.newBuilder()
			.setCanOverAllocate(true)
			.setCommonSwapTradeConfirmation(
			TradeConfTypesDef.CommonSwapTradeConfirmation
				.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())
				.setFarLegTradeConfirmation(
				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())
				.setFarNdfLegTradeConfirmation(
				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())
				.setNearLegTradeConfirmation(
				TradeConfPartsDef.LegTradeConfirmationFields
					.newBuilder()
					.build())
				.setNearNdfLegTradeConfirmation(
				TradeConfPartsDef.NDFLegTradeConfirmationFields
					.newBuilder()
					.build())
				.setSwapFields(
				TradeConfPartsDef.SwapTradeConfirmationFields
					.newBuilder()
					.setSwapMidPoints("0.004553")
					.setSwapPips("53.90")
					.setSwapPoints("0.005390")
					.setSwapType("SPOTFWD")
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```

#### TradingType SWAP, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "DetailsUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationSwapSalesDetailsUpdate",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationSwapSalesDetailsUpdate.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/AllocationSwapSalesDetailsUpdateExample.html",
  "parts": [
    {
      "part_name": "CommonSwapSalesTradeConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonSwapSalesTradeConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonSwapSalesTradeConfirmation.html",
      "parts": [
        {
          "part_name": "CommonSwapTradeConfirmation",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.CommonSwapTradeConfirmation",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.CommonSwapTradeConfirmation.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": "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": "L2_Pay[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_Pay[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_Pay[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_Pay[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Pay[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_Receive[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_Receive[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_Receive[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_Receive[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_Receive[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_PayNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_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": "L2_ReceiveNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "L2_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": "L2_ReceiveNettingComponents[n]Amount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a trade or order in the DealtCurrency.",
                          "example_value": "",
                          "deprecated": false
                        }
                      ]
                    }
                  ],
                  "fields": [
                    {
                      "name": "L2_CanAffirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Affirm the Trade Details are as agreed.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_CanConfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Confirm the Settlement Details are now final.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_CanAdHoc",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can confirm adhoc settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_CanCancel",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_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": "L2_CanUnconfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to move the deal back to a Pending state.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_CanApproveInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can approve settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_CanRejectInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can reject settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_CanRelease",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Relates to post trade actions: User can release the trade",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_NextActionDeadlineDisplayTimezone",
                      "type": "string",
                      "flags": "",
                      "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                      "example_value": "America/New_York",
                      "deprecated": false
                    },
                    {
                      "name": "L2_AffirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who affirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_ConfirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who confirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_IsPayNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_IsReceiveNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_IsPayNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_IsReceiveNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_IsPaySplit",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been split.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_NostroName",
                      "type": "string",
                      "flags": "",
                      "definition": "An identifier for the given nostro account.",
                      "example_value": "GBP Nostro Account.",
                      "deprecated": false
                    },
                    {
                      "name": "L2_NostroBIC",
                      "type": "string",
                      "flags": "",
                      "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                      "example_value": "ARABAEADABC",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_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": "L2_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": "L2_Remarks[n]RemarkSource",
                      "type": "string",
                      "flags": "",
                      "definition": "The username of the person who left a remark on a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_Remarks[n]RemarkOriginStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Additional remark field pointing at the previous status of the trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "L2_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": "L2_TradeID",
                  "type": "string",
                  "flags": "",
                  "definition": "A unique identifier for this trade",
                  "example_value": "00001561",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_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": "L2_FwdPips",
                  "type": "string",
                  "flags": "",
                  "definition": "",
                  "example_value": "11.98",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_Amount",
                  "type": "decimal",
                  "flags": "Editable, Risk",
                  "definition": "The amount of a trade or order in the DealtCurrency.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_StartDate",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The date of which the time option becomes active from.",
                  "example_value": "20150620",
                  "deprecated": false
                },
                {
                  "name": "L2_StartTenor",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The tenor of which the time option becomes active from.",
                  "example_value": "1W",
                  "deprecated": false
                },
                {
                  "name": "L2_IsTimeOption",
                  "type": "boolean",
                  "flags": "",
                  "definition": "true if a leg is time-option",
                  "example_value": "true",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_Profit",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The sales profit in the specified currency.",
                  "example_value": "1000",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_EntityDescription",
                  "type": "string",
                  "flags": "",
                  "definition": "The description of a trade on behalf of entity.",
                  "example_value": "Customer 1",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_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": "L2_ContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_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": "L2_ServiceContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_ServiceCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service home currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_FullName",
                  "type": "string",
                  "flags": "",
                  "definition": "The full name of the user the trade is on behalf of",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_AllocatableAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This is the amount that can be allocated or rolled.",
                  "example_value": "500",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_OriginalRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The Rate of the trade that this trade was created from.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_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": "L2_ReferenceCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The Buy or Sell Currency that is not the Settlement Currency",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_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": "L2_SettlementAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The amount of a settlement",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SwapTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SwapTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SwapTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "SwapPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The difference in interest rates between transaction currencies.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "SwapMidPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The value of swap points that is halfway between the swap bid points and the swap ask points.",
                  "example_value": "0.004553",
                  "deprecated": false
                },
                {
                  "name": "SwapPips",
                  "type": "string",
                  "flags": "",
                  "definition": "",
                  "example_value": "53.90",
                  "deprecated": false
                },
                {
                  "name": "SwapType",
                  "type": "string",
                  "flags": "",
                  "definition": "",
                  "example_value": "SPOTFWD",
                  "deprecated": false
                }
              ]
            }
          ]
        },
        {
          "part_name": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L1_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L1_C2_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
                }
              ]
            },
            {
              "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_TraderRemarks[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_TraderRemarks[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_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L1_TraderRemarks[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_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "L1_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "L1_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "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_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "L1_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "L1_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "L1_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L2_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L2_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L2_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "L2_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "L2_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "L2_C2_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
                }
              ]
            },
            {
              "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": "L2_TraderRemarks[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": "L2_TraderRemarks[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": "L2_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "L2_TraderRemarks[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": "L2_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "L2_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L2_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "L2_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "L2_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L2_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "L2_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "L2_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesCommonTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesCommonTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesCommonTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C1_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C1_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C2_CurrencyPair",
                  "type": "string",
                  "flags": "",
                  "definition": "The currency pair for the trade. For example, EURUSD",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "C2_TraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "ProfitCurrency",
              "type": "string",
              "flags": "",
              "definition": "The profit currency that the ProfitBidRate is being provided for.",
              "example_value": "USD",
              "deprecated": false
            },
            {
              "name": "ProfitCurrencyDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "ProfitIsHouse",
              "type": "boolean",
              "flags": "",
              "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ProfitRate",
              "type": "decimal",
              "flags": "",
              "definition": "The conversion rate from the contra currency into the profit currency.",
              "example_value": "1.091790",
              "deprecated": false
            },
            {
              "name": "TraderSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "1.09174",
              "deprecated": false
            },
            {
              "name": "SpotMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "Competition",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Source",
              "type": "string",
              "flags": "",
              "definition": "The source of a quote request. The name or ID of an ECN, SDP or other channel",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Reasons",
              "type": "string",
              "flags": "",
              "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "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
            },
            {
              "name": "ExternalRemarks",
              "type": "string",
              "flags": "",
              "definition": "The trader's comments on an order leg - visible to only the sales, set/edited only by the Trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "IsAdvised",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the trader gave the client advice",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "StreamingMode",
              "type": "string",
              "flags": "",
              "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
              "example_value": "MANUAL, STREAMING",
              "deprecated": false
            },
            {
              "name": "SyntheticCrossCurrency",
              "type": "string",
              "flags": "",
              "definition": "The common currency of each synthetic component.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "AmendmentReasonDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration for a frontend to display label-value pairs for the amendment type/reasons. Use DefaultDisplayFields builders to provide Caplin default fields.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentReasonDisplayFields','name':'addDefaultSalesAmendmentReasonDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "deprecated": false
            },
            {
              "name": "SpotTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Spot trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ForwardPointsTrader",
              "type": "string",
              "flags": "Editable",
              "definition": "The Forward points trader for a manual mode trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ReferenceSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "XVATotalAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The sum of all the XVA amounts",
              "example_value": "15",
              "deprecated": false
            },
            {
              "name": "XVANetProfit",
              "type": "decimal",
              "flags": "",
              "definition": "Calculated as the (total profit - xva total amount)",
              "example_value": "14.12",
              "deprecated": false
            },
            {
              "name": "AmendmentSummaryDisplayFields",
              "type": "string",
              "flags": "",
              "definition": "Configuration to display amended details for a trade.",
              "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentSummaryDisplayFields','name':'addDefaultSalesAmendmentSummaryDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesSwapTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSwapTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSwapTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSwapSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C1_TraderSwapPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The spot points with no client margins applied to them.",
                  "example_value": "0.004211",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SalesSwapSyntheticComponentTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "C2_TraderSwapPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The spot points with no client margins applied to them.",
                  "example_value": "0.004211",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "TraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The spot points with no client margins applied to them.",
              "example_value": "0.004211",
              "deprecated": false
            },
            {
              "name": "SwapMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The swap margin that the sales user has selected. It should be sent as a raw value, and unformatted.",
              "example_value": "0.000040",
              "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
    },
    {
      "name": "SubmitFields",
      "type": "string",
      "flags": "",
      "definition": "Configuration for a frontend to display additional inputs on the setup screen.",
      "example_value": "method={'import':'static com.caplin.motif.config.definitions.common.SubmitFields','name':'new SubmitFields().fields'}",
      "deprecated": false
    },
    {
      "name": "CanOverAllocate",
      "type": "boolean",
      "flags": "",
      "definition": "Defines if a user can over allocate a trade.",
      "example_value": "",
      "deprecated": false
    }
  ]
}
```

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

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

Java code example:

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

import java.math.BigInteger;
import static com.caplin.motif.config.definitions.common.SubmitFields;
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 AllocationSwapSalesDetailsUpdateExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationSwapSalesDetailsUpdate allocationSwapSalesDetailsUpdate =
		TradeConfTypesDef.AllocationSwapSalesDetailsUpdate
			.newBuilder()
			.setCanOverAllocate("")
			.setCommonSwapSalesTradeConfirmation(
			TradeConfTypesDef.CommonSwapSalesTradeConfirmation
				.newBuilder()
				.setCommonSwapTradeConfirmation(
				TradeConfTypesDef.CommonSwapTradeConfirmation
					.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())
					.setFarLegTradeConfirmation(
					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())
					.setFarNdfLegTradeConfirmation(
					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())
					.setNearLegTradeConfirmation(
					TradeConfPartsDef.LegTradeConfirmationFields
						.newBuilder()
						.build())
					.setNearNdfLegTradeConfirmation(
					TradeConfPartsDef.NDFLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setSwapFields(
					TradeConfPartsDef.SwapTradeConfirmationFields
						.newBuilder()
						.setSwapMidPoints("0.004553")
						.setSwapPips("53.90")
						.setSwapPoints("0.005390")
						.setSwapType("SPOTFWD")
						.build())
					.build())
				.setFarSalesLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.addTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build())
					.setAdjustedSwapMargin(BigDecimal.valueOf(0.0))
					.setAdjustedTraderSwapPoints("")
					.setAllInMargin("0.00054")
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor("1.2")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints("0.005390")
						.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setFwdMargin("0.000019")
					.setFwdMarginEditable()
					.setOriginalMargin(BigDecimal.valueOf(0.0))
					.setReferenceFwdPoints(BigDecimal.valueOf(0.0))
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTraderAllInRate(BigDecimal.valueOf(1.005390))
					.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setNearSalesLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.build())
				.setSalesCommonFields(
				TradeConfPartsDef.SalesCommonTradeConfirmationFields
					.newBuilder()
					.setAmendmentReasonDisplayFields(arg)
					.setAmendmentSummaryDisplayFields("")
					.setCompetition("")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips(2)
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS(5)
						.setTraderSpotRate("1.09174")
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("")
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit("1000")
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS(5)
					.setProfitIsHouse("")
					.setProfitRate("1.091790")
					.setReasons("Customer Initiated")
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin("", true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate("1.09174")
					.setXVANetProfit("14.12")
					.setXVATotalAmount(BigDecimal.valueOf(15))
					.build())
				.setSalesSwapFields(
				TradeConfPartsDef.SalesSwapTradeConfirmationFields
					.newBuilder()
					.setComponent1(
					TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setTraderSwapPoints("0.004211")
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setSwapMargin(BigDecimal.valueOf(0.0), true)
					.setSwapMarginEditable()
					.setTraderSwapPoints("0.004211")
					.build())
				.build())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setSubmitFields(new SubmitFields().fields(/* ... */))
			.build();
            
    }
}
```

### Event: Error (server)

Message specification:

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

### Event: ExecuteAck (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "ExecuteAck",
  "message_origin": "server"
}
```

### Event: Expire (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Expire",
  "message_origin": "server"
}
```

### Event: Hold (server)

Message specification:

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

### Event: PickUp (server)

Message specification:

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


### Event: PriceUpdate (server)

The PriceUpdate event is polymorphic. When building a PriceUpdate event message, choose the specification appropriate to the client's web application (Caplin FX Professional or Caplin FX Sales) and the TradingType field of the trade being allocated.

#### TradingType SPOT, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SpotQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SpotQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/SpotQuoteExample.html",
  "parts": [
    {
      "part_name": "CommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
      "fields": [
        {
          "name": "BidQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the bid side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the ask side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "GFA",
          "type": "string",
          "flags": "",
          "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
          "example_value": "1000000",
          "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
        },
        {
          "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": "SpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
          "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": "SpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
          "example_value": "1.08349",
          "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": "OverallTimeOut",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RemainingTimeOutMillis",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RateUnavailableReason",
          "type": "string",
          "flags": "",
          "definition": "The reason for a rate not being provided",
          "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
          "deprecated": false
        },
        {
          "name": "WarningCategory",
          "type": "string",
          "flags": "",
          "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
          "example_value": "WARNING",
          "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": "NumberOfFractionalPips",
          "type": "string",
          "flags": "",
          "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "AskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "SwapGFA",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "1 000 000",
          "deprecated": false
        },
        {
          "name": "CurrencyPair",
          "type": "string",
          "flags": "",
          "definition": "The currency pair for the trade. For example, EURUSD",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "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": "AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "PriceUpdateSource",
          "type": "string",
          "flags": "",
          "definition": "The name of the adapter a particular price update originated from.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "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": "ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "LegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
      "fields": [
        {
          "name": "L1_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": "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_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": "L1_IsTimeOption",
          "type": "boolean",
          "flags": "",
          "definition": "true if a leg is time-option",
          "example_value": "true",
          "deprecated": false
        },
        {
          "name": "L1_StartTenor",
          "type": "string",
          "flags": "",
          "definition": "The tenor of which the time option becomes active from.",
          "example_value": "1W",
          "deprecated": false
        },
        {
          "name": "L1_StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "L1_AllInSpread",
          "type": "decimal",
          "flags": "",
          "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
          "example_value": "0.00162",
          "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_AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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_FwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "deprecated": false
        },
        {
          "name": "L1_AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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_FwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "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_FwdBidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "deprecated": false
        },
        {
          "name": "L1_FwdAskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "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_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "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_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_BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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_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_ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.SpotQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SpotQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.SpotQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class SpotQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.SpotQuote spotQuote =
		QuoteTypesDef.SpotQuote
			.newBuilder()
			.setCommonFields(
			QuotePartsDef.CommonFields
				.newBuilder()
				.setAskContraCostAmount("")
				.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate("")
				.setAskIndicative(true)
				.setAskPips("11.98")
				.setAskQuoteID("")
				.setBidContraCostAmount(BigDecimal.valueOf(0.0))
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount("150000.00")
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBidIndicative("")
				.setBidPips("11.98")
				.setBidQuoteID("")
				.setContraCostAmount("")
				.setContraCostCurrency("GBP")
				.setContraCostPercentage("13.56")
				.setCostCurrency("GBP")
				.setCostCurrencyDPS("2")
				.setCurrencyPair("")
				.setDetailedWarningMessage("")
				.setDigitsBeforePips("2")
				.setGFA("1000000")
				.setNumberOfFractionalPips("")
				.setNumberOfPips(2)
				.setOverallTimeOut(0)
				.setPriceUpdateSource("")
				.setRateUnavailableReason(arg)
				.setRemainingTimeOutMillis(0)
				.setSpotAskRate("1.08349")
				.setSpotBidRate(BigDecimal.valueOf(1.08341))
				.setSpotMidRate(BigDecimal.valueOf(1.08345))
				.setSpotRateDPS("5")
				.setSwapGFA("1 000 000")
				.setTimePriceReceived("1721952000000")
				.setWarningCategory("WARNING")
				.setWarningCode("001")
				.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
				.build())
			.setLegFields(
			QuotePartsDef.LegFields
				.newBuilder()
				.setAllInAskRate("1.091790")
				.setAllInBidRate("1.091790")
				.setAllInMidRate(BigDecimal.valueOf(1.091790))
				.setAllInRateDPS("5")
				.setAllInSpread(BigDecimal.valueOf(0.00162))
				.setAmount("0")
				.setAskContraCostAmount(BigDecimal.valueOf(0.0))
				.setAskContraCostPercentage("1.5")
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate(BigDecimal.valueOf(0.0))
				.setBidContraCostAmount("")
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount(BigDecimal.valueOf(150000.00))
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBuySell("")
				.setContraCostAmount(BigDecimal.valueOf(0.0))
				.setContraCostCurrency("GBP")
				.setContraCostPercentage(BigDecimal.valueOf(13.56))
				.setCostCurrency("GBP")
				.setForwardPointsDecimalOffset("")
				.setFwdAskPips("53.90")
				.setFwdAskPoints("0.005390")
				.setFwdBidPips("53.90")
				.setFwdBidPoints(BigDecimal.valueOf(0.005390))
				.setFwdMidPoints(BigDecimal.valueOf(0.005390))
				.setIsTimeOption("true")
				.setRiskDate("20160314")
				.setRiskTenor("1W")
				.setSettlementDate("20160314")
				.setStartDate("20150620")
				.setStartTenor("1W")
				.setTenor("1M")
				.build())
			.build();
            
    }
}
```

#### TradingType SPOT, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesSpotQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesSpotQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/SalesSpotQuoteExample.html",
  "parts": [
    {
      "part_name": "SpotQuote",
      "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SpotQuote",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SpotQuote.html",
      "parts": [
        {
          "part_name": "CommonFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
          "fields": [
            {
              "name": "BidQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the bid side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the ask side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "GFA",
              "type": "string",
              "flags": "",
              "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
              "example_value": "1000000",
              "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
            },
            {
              "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": "SpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
              "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": "SpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
              "example_value": "1.08349",
              "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": "OverallTimeOut",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RemainingTimeOutMillis",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RateUnavailableReason",
              "type": "string",
              "flags": "",
              "definition": "The reason for a rate not being provided",
              "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
              "deprecated": false
            },
            {
              "name": "WarningCategory",
              "type": "string",
              "flags": "",
              "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
              "example_value": "WARNING",
              "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": "NumberOfFractionalPips",
              "type": "string",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "AskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "SwapGFA",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "1 000 000",
              "deprecated": false
            },
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "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": "AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "PriceUpdateSource",
              "type": "string",
              "flags": "",
              "definition": "The name of the adapter a particular price update originated from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "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": "ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
          "fields": [
            {
              "name": "L1_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": "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_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": "L1_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_AllInSpread",
              "type": "decimal",
              "flags": "",
              "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
              "example_value": "0.00162",
              "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_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "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_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "L1_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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_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_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "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
            }
          ]
        }
      ]
    },
    {
      "part_name": "SalesCommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesCommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesCommonFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C1_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C2_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "TraderSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "TraderSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "DefaultSpotBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotBidRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "DefaultSpotAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotAskRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "ProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The profit currency that the ProfitBidRate is being provided for.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "ProfitCurrencyDPS",
          "type": "integer",
          "flags": "",
          "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
          "example_value": "5",
          "deprecated": false
        },
        {
          "name": "ProfitIsHouse",
          "type": "boolean",
          "flags": "",
          "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ProfitBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "ProfitAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.090098",
          "deprecated": false
        },
        {
          "name": "Reasons",
          "type": "string",
          "flags": "",
          "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SyntheticCrossCurrency",
          "type": "string",
          "flags": "",
          "definition": "The common currency of each synthetic component.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "ForceManual",
          "type": "boolean",
          "flags": "",
          "definition": "If this field is set to true then the Sales RFS ticket should be forced into manual pricing mode. If not specified, the default is false.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Spot values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotMarginAgreed",
          "type": "boolean",
          "flags": "",
          "definition": "This flag shows if the user can(false)/cannot(true) exceed the agreed margin or not",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "SalesLegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesLegFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_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
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_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
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "L1_TraderAllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward bid points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdBidPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_TraderAllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in ask rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward ask points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdAskPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd bid points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd ask points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_XVABidAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid amount. XVA refers to a combined value representing valuation adjustments beyond the basic bid/ask spread.",
          "example_value": "3",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask amount",
          "example_value": "9",
          "deprecated": false
        },
        {
          "name": "L1_XVABidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid points value",
          "example_value": "0.000005",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask points value",
          "example_value": "0.000008",
          "deprecated": false
        },
        {
          "name": "L1_BidDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The bid discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_AskDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The ask discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_FwdPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Fwd values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesSpotQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesSpotQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.SalesSpotQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class SalesSpotQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.SalesSpotQuote salesSpotQuote =
		QuoteTypesDef.SalesSpotQuote
			.newBuilder()
			.setSalesCommonFields(
			QuotePartsDef.SalesCommonFields
				.newBuilder()
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.setCurrencyPair("")
					.setDigitsBeforePips(2)
					.setNumberOfPips("2")
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS(5)
					.setTraderSpotAskRate("1.08575")
					.setTraderSpotBidRate("1.08575")
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.build())
				.setDefaultSpotAskMargin(BigDecimal.valueOf(0.00054))
				.setDefaultSpotBidMargin("0.00054")
				.setForceManual("")
				.setProfitAskRate("1.090098")
				.setProfitBidRate(BigDecimal.valueOf(1.091790))
				.setProfitCurrency("USD")
				.setProfitCurrencyDPS("5")
				.setProfitIsHouse("")
				.setReasons("Customer Initiated")
				.setReferenceSpotAskRate(BigDecimal.valueOf(0.0))
				.setReferenceSpotBidRate("")
				.setSpotMarginAgreed(true)
				.setSpotPriceMode("")
				.setSyntheticCrossCurrency("GBP")
				.setTraderSpotAskRate("1.08575")
				.setTraderSpotBidRate("1.08575")
				.build())
			.setSalesLegFields(
			QuotePartsDef.SalesLegFields
				.newBuilder()
				.setAskDiscountFactor(BigDecimal.valueOf(1.2))
				.setBidDiscountFactor("1.2")
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.setAllInRateDPS("5")
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setTraderFwdAskPoints(BigDecimal.valueOf(0.001198))
					.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.build())
				.setDefaultFwdAskMargin(BigDecimal.valueOf(0.000019))
				.setDefaultFwdBidMargin("0.000019")
				.setFwdPriceMode("")
				.setReferenceFwdAskPoints(BigDecimal.valueOf(0.0))
				.setReferenceFwdBidPoints(BigDecimal.valueOf(0.0))
				.setTraderAllInAskRate("1.091790")
				.setTraderAllInBidRate(BigDecimal.valueOf(1.091790))
				.setTraderFwdAskPoints("0.001198")
				.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
				.setXVAAskAmount(BigDecimal.valueOf(9))
				.setXVAAskPoints("0.000008")
				.setXVABidAmount("3")
				.setXVABidPoints("0.000005")
				.build())
			.setSpotQuote(
			QuoteTypesDef.SpotQuote
				.newBuilder()
				.setCommonFields(
				QuotePartsDef.CommonFields
					.newBuilder()
					.setAskContraCostAmount("")
					.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate("")
					.setAskIndicative(true)
					.setAskPips("11.98")
					.setAskQuoteID("")
					.setBidContraCostAmount(BigDecimal.valueOf(0.0))
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount("150000.00")
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBidIndicative("")
					.setBidPips("11.98")
					.setBidQuoteID("")
					.setContraCostAmount("")
					.setContraCostCurrency("GBP")
					.setContraCostPercentage("13.56")
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCurrencyPair("")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setGFA("1000000")
					.setNumberOfFractionalPips("")
					.setNumberOfPips(2)
					.setOverallTimeOut(0)
					.setPriceUpdateSource("")
					.setRateUnavailableReason(arg)
					.setRemainingTimeOutMillis(0)
					.setSpotAskRate("1.08349")
					.setSpotBidRate(BigDecimal.valueOf(1.08341))
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS("5")
					.setSwapGFA("1 000 000")
					.setTimePriceReceived("1721952000000")
					.setWarningCategory("WARNING")
					.setWarningCode("001")
					.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
					.build())
				.setLegFields(
				QuotePartsDef.LegFields
					.newBuilder()
					.setAllInAskRate("1.091790")
					.setAllInBidRate("1.091790")
					.setAllInMidRate(BigDecimal.valueOf(1.091790))
					.setAllInRateDPS("5")
					.setAllInSpread(BigDecimal.valueOf(0.00162))
					.setAmount("0")
					.setAskContraCostAmount(BigDecimal.valueOf(0.0))
					.setAskContraCostPercentage("1.5")
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate(BigDecimal.valueOf(0.0))
					.setBidContraCostAmount("")
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount(BigDecimal.valueOf(150000.00))
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBuySell("")
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostCurrency("GBP")
					.setForwardPointsDecimalOffset("")
					.setFwdAskPips("53.90")
					.setFwdAskPoints("0.005390")
					.setFwdBidPips("53.90")
					.setFwdBidPoints(BigDecimal.valueOf(0.005390))
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setIsTimeOption("true")
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTenor("1M")
					.build())
				.build())
			.build();
            
    }
}
```

#### TradingType FWD, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.ForwardQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.ForwardQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/ForwardQuoteExample.html",
  "parts": [
    {
      "part_name": "CommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
      "fields": [
        {
          "name": "BidQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the bid side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the ask side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "GFA",
          "type": "string",
          "flags": "",
          "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
          "example_value": "1000000",
          "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
        },
        {
          "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": "SpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
          "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": "SpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
          "example_value": "1.08349",
          "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": "OverallTimeOut",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RemainingTimeOutMillis",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RateUnavailableReason",
          "type": "string",
          "flags": "",
          "definition": "The reason for a rate not being provided",
          "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
          "deprecated": false
        },
        {
          "name": "WarningCategory",
          "type": "string",
          "flags": "",
          "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
          "example_value": "WARNING",
          "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": "NumberOfFractionalPips",
          "type": "string",
          "flags": "",
          "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "AskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "SwapGFA",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "1 000 000",
          "deprecated": false
        },
        {
          "name": "CurrencyPair",
          "type": "string",
          "flags": "",
          "definition": "The currency pair for the trade. For example, EURUSD",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "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": "AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "PriceUpdateSource",
          "type": "string",
          "flags": "",
          "definition": "The name of the adapter a particular price update originated from.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "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": "ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "LegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
      "fields": [
        {
          "name": "L1_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": "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_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": "L1_IsTimeOption",
          "type": "boolean",
          "flags": "",
          "definition": "true if a leg is time-option",
          "example_value": "true",
          "deprecated": false
        },
        {
          "name": "L1_StartTenor",
          "type": "string",
          "flags": "",
          "definition": "The tenor of which the time option becomes active from.",
          "example_value": "1W",
          "deprecated": false
        },
        {
          "name": "L1_StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "L1_AllInSpread",
          "type": "decimal",
          "flags": "",
          "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
          "example_value": "0.00162",
          "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_AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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_FwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "deprecated": false
        },
        {
          "name": "L1_AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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_FwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "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_FwdBidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "deprecated": false
        },
        {
          "name": "L1_FwdAskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "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_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "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_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_BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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_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_ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.ForwardQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.ForwardQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.ForwardQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class ForwardQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.ForwardQuote forwardQuote =
		QuoteTypesDef.ForwardQuote
			.newBuilder()
			.setCommonFields(
			QuotePartsDef.CommonFields
				.newBuilder()
				.setAskContraCostAmount("")
				.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate("")
				.setAskIndicative(true)
				.setAskPips("11.98")
				.setAskQuoteID("")
				.setBidContraCostAmount(BigDecimal.valueOf(0.0))
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount("150000.00")
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBidIndicative("")
				.setBidPips("11.98")
				.setBidQuoteID("")
				.setContraCostAmount("")
				.setContraCostCurrency("GBP")
				.setContraCostPercentage("13.56")
				.setCostCurrency("GBP")
				.setCostCurrencyDPS("2")
				.setCurrencyPair("")
				.setDetailedWarningMessage("")
				.setDigitsBeforePips("2")
				.setGFA("1000000")
				.setNumberOfFractionalPips("")
				.setNumberOfPips(2)
				.setOverallTimeOut(0)
				.setPriceUpdateSource("")
				.setRateUnavailableReason(arg)
				.setRemainingTimeOutMillis(0)
				.setSpotAskRate("1.08349")
				.setSpotBidRate(BigDecimal.valueOf(1.08341))
				.setSpotMidRate(BigDecimal.valueOf(1.08345))
				.setSpotRateDPS("5")
				.setSwapGFA("1 000 000")
				.setTimePriceReceived("1721952000000")
				.setWarningCategory("WARNING")
				.setWarningCode("001")
				.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
				.build())
			.setLegFields(
			QuotePartsDef.LegFields
				.newBuilder()
				.setAllInAskRate("1.091790")
				.setAllInBidRate("1.091790")
				.setAllInMidRate(BigDecimal.valueOf(1.091790))
				.setAllInRateDPS("5")
				.setAllInSpread(BigDecimal.valueOf(0.00162))
				.setAmount("0")
				.setAskContraCostAmount(BigDecimal.valueOf(0.0))
				.setAskContraCostPercentage("1.5")
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate(BigDecimal.valueOf(0.0))
				.setBidContraCostAmount("")
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount(BigDecimal.valueOf(150000.00))
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBuySell("")
				.setContraCostAmount(BigDecimal.valueOf(0.0))
				.setContraCostCurrency("GBP")
				.setContraCostPercentage(BigDecimal.valueOf(13.56))
				.setCostCurrency("GBP")
				.setForwardPointsDecimalOffset("")
				.setFwdAskPips("53.90")
				.setFwdAskPoints("0.005390")
				.setFwdBidPips("53.90")
				.setFwdBidPoints(BigDecimal.valueOf(0.005390))
				.setFwdMidPoints(BigDecimal.valueOf(0.005390))
				.setIsTimeOption("true")
				.setRiskDate("20160314")
				.setRiskTenor("1W")
				.setSettlementDate("20160314")
				.setStartDate("20150620")
				.setStartTenor("1W")
				.setTenor("1M")
				.build())
			.build();
            
    }
}
```

#### TradingType FWD, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesForwardQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesForwardQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/SalesForwardQuoteExample.html",
  "parts": [
    {
      "part_name": "ForwardQuote",
      "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.ForwardQuote",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.ForwardQuote.html",
      "parts": [
        {
          "part_name": "CommonFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
          "fields": [
            {
              "name": "BidQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the bid side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the ask side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "GFA",
              "type": "string",
              "flags": "",
              "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
              "example_value": "1000000",
              "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
            },
            {
              "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": "SpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
              "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": "SpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
              "example_value": "1.08349",
              "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": "OverallTimeOut",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RemainingTimeOutMillis",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RateUnavailableReason",
              "type": "string",
              "flags": "",
              "definition": "The reason for a rate not being provided",
              "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
              "deprecated": false
            },
            {
              "name": "WarningCategory",
              "type": "string",
              "flags": "",
              "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
              "example_value": "WARNING",
              "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": "NumberOfFractionalPips",
              "type": "string",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "AskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "SwapGFA",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "1 000 000",
              "deprecated": false
            },
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "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": "AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "PriceUpdateSource",
              "type": "string",
              "flags": "",
              "definition": "The name of the adapter a particular price update originated from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "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": "ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
          "fields": [
            {
              "name": "L1_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": "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_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": "L1_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_AllInSpread",
              "type": "decimal",
              "flags": "",
              "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
              "example_value": "0.00162",
              "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_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "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_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "L1_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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_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_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "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
            }
          ]
        }
      ]
    },
    {
      "part_name": "SalesCommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesCommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesCommonFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C1_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C2_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "TraderSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "TraderSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "DefaultSpotBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotBidRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "DefaultSpotAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotAskRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "ProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The profit currency that the ProfitBidRate is being provided for.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "ProfitCurrencyDPS",
          "type": "integer",
          "flags": "",
          "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
          "example_value": "5",
          "deprecated": false
        },
        {
          "name": "ProfitIsHouse",
          "type": "boolean",
          "flags": "",
          "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ProfitBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "ProfitAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.090098",
          "deprecated": false
        },
        {
          "name": "Reasons",
          "type": "string",
          "flags": "",
          "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SyntheticCrossCurrency",
          "type": "string",
          "flags": "",
          "definition": "The common currency of each synthetic component.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "ForceManual",
          "type": "boolean",
          "flags": "",
          "definition": "If this field is set to true then the Sales RFS ticket should be forced into manual pricing mode. If not specified, the default is false.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Spot values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotMarginAgreed",
          "type": "boolean",
          "flags": "",
          "definition": "This flag shows if the user can(false)/cannot(true) exceed the agreed margin or not",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "SalesLegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesLegFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_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
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_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
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "L1_TraderAllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward bid points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdBidPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_TraderAllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in ask rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward ask points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdAskPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd bid points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd ask points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_XVABidAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid amount. XVA refers to a combined value representing valuation adjustments beyond the basic bid/ask spread.",
          "example_value": "3",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask amount",
          "example_value": "9",
          "deprecated": false
        },
        {
          "name": "L1_XVABidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid points value",
          "example_value": "0.000005",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask points value",
          "example_value": "0.000008",
          "deprecated": false
        },
        {
          "name": "L1_BidDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The bid discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_AskDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The ask discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_FwdPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Fwd values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesForwardQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesForwardQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.SalesForwardQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class SalesForwardQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.SalesForwardQuote salesForwardQuote =
		QuoteTypesDef.SalesForwardQuote
			.newBuilder()
			.setFwdQuote(
			QuoteTypesDef.ForwardQuote
				.newBuilder()
				.setCommonFields(
				QuotePartsDef.CommonFields
					.newBuilder()
					.setAskContraCostAmount("")
					.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate("")
					.setAskIndicative(true)
					.setAskPips("11.98")
					.setAskQuoteID("")
					.setBidContraCostAmount(BigDecimal.valueOf(0.0))
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount("150000.00")
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBidIndicative("")
					.setBidPips("11.98")
					.setBidQuoteID("")
					.setContraCostAmount("")
					.setContraCostCurrency("GBP")
					.setContraCostPercentage("13.56")
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCurrencyPair("")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setGFA("1000000")
					.setNumberOfFractionalPips("")
					.setNumberOfPips(2)
					.setOverallTimeOut(0)
					.setPriceUpdateSource("")
					.setRateUnavailableReason(arg)
					.setRemainingTimeOutMillis(0)
					.setSpotAskRate("1.08349")
					.setSpotBidRate(BigDecimal.valueOf(1.08341))
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS("5")
					.setSwapGFA("1 000 000")
					.setTimePriceReceived("1721952000000")
					.setWarningCategory("WARNING")
					.setWarningCode("001")
					.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
					.build())
				.setLegFields(
				QuotePartsDef.LegFields
					.newBuilder()
					.setAllInAskRate("1.091790")
					.setAllInBidRate("1.091790")
					.setAllInMidRate(BigDecimal.valueOf(1.091790))
					.setAllInRateDPS("5")
					.setAllInSpread(BigDecimal.valueOf(0.00162))
					.setAmount("0")
					.setAskContraCostAmount(BigDecimal.valueOf(0.0))
					.setAskContraCostPercentage("1.5")
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate(BigDecimal.valueOf(0.0))
					.setBidContraCostAmount("")
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount(BigDecimal.valueOf(150000.00))
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBuySell("")
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostCurrency("GBP")
					.setForwardPointsDecimalOffset("")
					.setFwdAskPips("53.90")
					.setFwdAskPoints("0.005390")
					.setFwdBidPips("53.90")
					.setFwdBidPoints(BigDecimal.valueOf(0.005390))
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setIsTimeOption("true")
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTenor("1M")
					.build())
				.build())
			.setSalesCommonFields(
			QuotePartsDef.SalesCommonFields
				.newBuilder()
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.setCurrencyPair("")
					.setDigitsBeforePips(2)
					.setNumberOfPips("2")
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS(5)
					.setTraderSpotAskRate("1.08575")
					.setTraderSpotBidRate("1.08575")
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.build())
				.setDefaultSpotAskMargin(BigDecimal.valueOf(0.00054))
				.setDefaultSpotBidMargin("0.00054")
				.setForceManual("")
				.setProfitAskRate("1.090098")
				.setProfitBidRate(BigDecimal.valueOf(1.091790))
				.setProfitCurrency("USD")
				.setProfitCurrencyDPS("5")
				.setProfitIsHouse("")
				.setReasons("Customer Initiated")
				.setReferenceSpotAskRate(BigDecimal.valueOf(0.0))
				.setReferenceSpotBidRate("")
				.setSpotMarginAgreed(true)
				.setSpotPriceMode("")
				.setSyntheticCrossCurrency("GBP")
				.setTraderSpotAskRate("1.08575")
				.setTraderSpotBidRate("1.08575")
				.build())
			.setSalesLegFields(
			QuotePartsDef.SalesLegFields
				.newBuilder()
				.setAskDiscountFactor(BigDecimal.valueOf(1.2))
				.setBidDiscountFactor("1.2")
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.setAllInRateDPS("5")
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setTraderFwdAskPoints(BigDecimal.valueOf(0.001198))
					.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.build())
				.setDefaultFwdAskMargin(BigDecimal.valueOf(0.000019))
				.setDefaultFwdBidMargin("0.000019")
				.setFwdPriceMode("")
				.setReferenceFwdAskPoints(BigDecimal.valueOf(0.0))
				.setReferenceFwdBidPoints(BigDecimal.valueOf(0.0))
				.setTraderAllInAskRate("1.091790")
				.setTraderAllInBidRate(BigDecimal.valueOf(1.091790))
				.setTraderFwdAskPoints("0.001198")
				.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
				.setXVAAskAmount(BigDecimal.valueOf(9))
				.setXVAAskPoints("0.000008")
				.setXVABidAmount("3")
				.setXVABidPoints("0.000005")
				.build())
			.build();
            
    }
}
```

#### TradingType SWAP, Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SwapQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SwapQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/SwapQuoteExample.html",
  "parts": [
    {
      "part_name": "CommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
      "fields": [
        {
          "name": "BidQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the bid side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskQuoteID",
          "type": "string",
          "flags": "",
          "definition": "A unique ID that identifies the ask side of this quote.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskIndicative",
          "type": "boolean",
          "flags": "",
          "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "GFA",
          "type": "string",
          "flags": "",
          "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
          "example_value": "1000000",
          "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
        },
        {
          "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": "SpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
          "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": "SpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
          "example_value": "1.08349",
          "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": "OverallTimeOut",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RemainingTimeOutMillis",
          "type": "integer",
          "flags": "",
          "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "RateUnavailableReason",
          "type": "string",
          "flags": "",
          "definition": "The reason for a rate not being provided",
          "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
          "deprecated": false
        },
        {
          "name": "WarningCategory",
          "type": "string",
          "flags": "",
          "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
          "example_value": "WARNING",
          "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": "NumberOfFractionalPips",
          "type": "string",
          "flags": "",
          "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "AskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "11.98",
          "deprecated": false
        },
        {
          "name": "SwapGFA",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "1 000 000",
          "deprecated": false
        },
        {
          "name": "CurrencyPair",
          "type": "string",
          "flags": "",
          "definition": "The currency pair for the trade. For example, EURUSD",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "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": "AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "PriceUpdateSource",
          "type": "string",
          "flags": "",
          "definition": "The name of the adapter a particular price update originated from.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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": "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": "ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "LegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
      "fields": [
        {
          "name": "L1_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": "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_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": "L1_IsTimeOption",
          "type": "boolean",
          "flags": "",
          "definition": "true if a leg is time-option",
          "example_value": "true",
          "deprecated": false
        },
        {
          "name": "L1_StartTenor",
          "type": "string",
          "flags": "",
          "definition": "The tenor of which the time option becomes active from.",
          "example_value": "1W",
          "deprecated": false
        },
        {
          "name": "L1_StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "L1_AllInSpread",
          "type": "decimal",
          "flags": "",
          "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
          "example_value": "0.00162",
          "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_AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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_FwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "deprecated": false
        },
        {
          "name": "L1_AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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_FwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "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_FwdBidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "deprecated": false
        },
        {
          "name": "L1_FwdAskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "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_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "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_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_BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L1_AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L1_BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "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_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_ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "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
        }
      ]
    },
    {
      "part_name": "LegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
      "fields": [
        {
          "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_IsTimeOption",
          "type": "boolean",
          "flags": "",
          "definition": "true if a leg is time-option",
          "example_value": "true",
          "deprecated": false
        },
        {
          "name": "L2_StartTenor",
          "type": "string",
          "flags": "",
          "definition": "The tenor of which the time option becomes active from.",
          "example_value": "1W",
          "deprecated": false
        },
        {
          "name": "L2_StartDate",
          "type": "string",
          "flags": "",
          "definition": "The date of which the time option becomes active from.",
          "example_value": "20150620",
          "deprecated": false
        },
        {
          "name": "L2_AllInSpread",
          "type": "decimal",
          "flags": "",
          "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
          "example_value": "0.00162",
          "deprecated": false
        },
        {
          "name": "L2_AllInRateDPS",
          "type": "integer",
          "flags": "",
          "definition": "The number of decimal places to display after the decimal point.",
          "example_value": "5",
          "deprecated": false
        },
        {
          "name": "L2_AllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The bid 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": "L2_FwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "deprecated": false
        },
        {
          "name": "L2_AllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The ask 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": "L2_FwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
          "example_value": "0.005390",
          "deprecated": false
        },
        {
          "name": "L2_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": "L2_FwdBidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "deprecated": false
        },
        {
          "name": "L2_FwdAskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "53.90",
          "deprecated": false
        },
        {
          "name": "L2_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": "L2_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_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": "L2_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": "L2_BidCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L2_BidCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L2_BidCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_AskCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote",
          "example_value": "150000.00",
          "deprecated": false
        },
        {
          "name": "L2_AskCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L2_AskCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_AskContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_AskContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L2_AskContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_BidContraCostAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_BidContraCostPercentage",
          "type": "decimal",
          "flags": "",
          "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
          "example_value": "1.5",
          "deprecated": false
        },
        {
          "name": "L2_BidContraCostRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "L2_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": "L2_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": "L2_ContraCostCurrency",
          "type": "string",
          "flags": "",
          "definition": "The contra currency that the cost is displayed in",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "L2_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
        }
      ]
    },
    {
      "part_name": "SwapQuoteFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SwapQuoteFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SwapQuoteFields.html",
      "fields": [
        {
          "name": "SwapAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap ask points that the client wants to trade on",
          "example_value": "0.004934",
          "deprecated": false
        },
        {
          "name": "SwapBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap bid points that the client wants to trade on",
          "example_value": "0.004171",
          "deprecated": false
        },
        {
          "name": "SwapMidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The value of swap points that is halfway between the swap bid points and the swap ask points.",
          "example_value": "0.004553",
          "deprecated": false
        },
        {
          "name": "SwapAskPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "49.34",
          "deprecated": false
        },
        {
          "name": "SwapBidPips",
          "type": "string",
          "flags": "",
          "definition": "",
          "example_value": "41.71",
          "deprecated": false
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.SwapQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SwapQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.SwapQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class SwapQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.SwapQuote swapQuote =
		QuoteTypesDef.SwapQuote
			.newBuilder()
			.setCommonFields(
			QuotePartsDef.CommonFields
				.newBuilder()
				.setAskContraCostAmount("")
				.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate("")
				.setAskIndicative(true)
				.setAskPips("11.98")
				.setAskQuoteID("")
				.setBidContraCostAmount(BigDecimal.valueOf(0.0))
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount("150000.00")
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBidIndicative("")
				.setBidPips("11.98")
				.setBidQuoteID("")
				.setContraCostAmount("")
				.setContraCostCurrency("GBP")
				.setContraCostPercentage("13.56")
				.setCostCurrency("GBP")
				.setCostCurrencyDPS("2")
				.setCurrencyPair("")
				.setDetailedWarningMessage("")
				.setDigitsBeforePips("2")
				.setGFA("1000000")
				.setNumberOfFractionalPips("")
				.setNumberOfPips(2)
				.setOverallTimeOut(0)
				.setPriceUpdateSource("")
				.setRateUnavailableReason(arg)
				.setRemainingTimeOutMillis(0)
				.setSpotAskRate("1.08349")
				.setSpotBidRate(BigDecimal.valueOf(1.08341))
				.setSpotMidRate(BigDecimal.valueOf(1.08345))
				.setSpotRateDPS("5")
				.setSwapGFA("1 000 000")
				.setTimePriceReceived("1721952000000")
				.setWarningCategory("WARNING")
				.setWarningCode("001")
				.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
				.build())
			.setFarLegFields(
			QuotePartsDef.LegFields
				.newBuilder()
				.setAllInAskRate("1.091790")
				.setAllInBidRate("1.091790")
				.setAllInMidRate(BigDecimal.valueOf(1.091790))
				.setAllInRateDPS("5")
				.setAllInSpread(BigDecimal.valueOf(0.00162))
				.setAmount("0")
				.setAskContraCostAmount(BigDecimal.valueOf(0.0))
				.setAskContraCostPercentage("1.5")
				.setAskContraCostRate(BigDecimal.valueOf(0.0))
				.setAskCostAmount(BigDecimal.valueOf(150000.00))
				.setAskCostPercentage(BigDecimal.valueOf(1.5))
				.setAskCostRate(BigDecimal.valueOf(0.0))
				.setBidContraCostAmount("")
				.setBidContraCostPercentage("1.5")
				.setBidContraCostRate("")
				.setBidCostAmount(BigDecimal.valueOf(150000.00))
				.setBidCostPercentage("1.5")
				.setBidCostRate(BigDecimal.valueOf(0.0))
				.setBuySell("")
				.setContraCostAmount(BigDecimal.valueOf(0.0))
				.setContraCostCurrency("GBP")
				.setContraCostPercentage(BigDecimal.valueOf(13.56))
				.setCostCurrency("GBP")
				.setForwardPointsDecimalOffset("")
				.setFwdAskPips("53.90")
				.setFwdAskPoints("0.005390")
				.setFwdBidPips("53.90")
				.setFwdBidPoints(BigDecimal.valueOf(0.005390))
				.setFwdMidPoints(BigDecimal.valueOf(0.005390))
				.setIsTimeOption("true")
				.setRiskDate("20160314")
				.setRiskTenor("1W")
				.setSettlementDate("20160314")
				.setStartDate("20150620")
				.setStartTenor("1W")
				.setTenor("1M")
				.build())
			.setNearLegFields(
			QuotePartsDef.LegFields
				.newBuilder()
				.build())
			.setSwapFields(
			QuotePartsDef.SwapQuoteFields
				.newBuilder()
				.setSwapAskPips("49.34")
				.setSwapAskPoints("0.004934")
				.setSwapBidPips("41.71")
				.setSwapBidPoints("0.004171")
				.setSwapMidPoints("0.004553")
				.build())
			.build();
            
    }
}
```


#### TradingType SWAP, Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "PriceUpdate",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesSwapQuote",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesSwapQuote.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/rates/QuoteTypesDef/SalesSwapQuoteExample.html",
  "parts": [
    {
      "part_name": "SwapQuote",
      "java_class": "com.caplin.generated.motif.fx.rates.QuoteTypesDef.SwapQuote",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SwapQuote.html",
      "parts": [
        {
          "part_name": "CommonFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.CommonFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.CommonFields.html",
          "fields": [
            {
              "name": "BidQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the bid side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskQuoteID",
              "type": "string",
              "flags": "",
              "definition": "A unique ID that identifies the ask side of this quote.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Bid price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskIndicative",
              "type": "boolean",
              "flags": "",
              "definition": "Determines whether the Ask price is indicative. Indicative prices cannot be executed upon",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "GFA",
              "type": "string",
              "flags": "",
              "definition": "The maximum amount that a quote can be executed for. If the client wishes to quote for more than this, they must perform an RFS",
              "example_value": "1000000",
              "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
            },
            {
              "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": "SpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInBidRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInBidRate - L1_FwdBidPoints.",
              "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": "SpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "For SPOT quotes this value will be identical to the L1_AllInAskRate. For forward quotes this will contain the SPOT rate that the forward all-in rate was derived from. For forward quotes the value in this field should always equal L1_AllInAskRate - L1_FwdAskPoints.",
              "example_value": "1.08349",
              "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": "OverallTimeOut",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining before this stream (not this individual quote) is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RemainingTimeOutMillis",
              "type": "integer",
              "flags": "",
              "definition": "The number of seconds remaining of the OverallTimeOut before this stream is timed out. This is not present for standard price updates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RateUnavailableReason",
              "type": "string",
              "flags": "",
              "definition": "The reason for a rate not being provided",
              "example_value": "{ \\\"message\\\": \\\"This is a warning\\\" }",
              "deprecated": false
            },
            {
              "name": "WarningCategory",
              "type": "string",
              "flags": "",
              "definition": "The category of a warning message. This is field is optional and the frontend should default to WARNING if not provided. Caplin supported warning categories are [SUCCESS, WARNING]. See the constants defined within com.caplin.motif.fx.trading.WarningCategory",
              "example_value": "WARNING",
              "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": "NumberOfFractionalPips",
              "type": "string",
              "flags": "",
              "definition": "Precision-related field that tells the client how to display rates. This is the number of digits after the pips. For example, for a USDGBP rate of 1.23456 the pips are the 45 and there is one digit (the 6) after the pips, so the value of the NumberOfFractionalPips field should be 1. There are typically more fractional pips on forward rates than spot rates.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "AskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "SwapGFA",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "1 000 000",
              "deprecated": false
            },
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "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": "AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "PriceUpdateSource",
              "type": "string",
              "flags": "",
              "definition": "The name of the adapter a particular price update originated from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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": "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": "ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
          "fields": [
            {
              "name": "L1_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": "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_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": "L1_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_AllInSpread",
              "type": "decimal",
              "flags": "",
              "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
              "example_value": "0.00162",
              "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_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L1_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "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_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "L1_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L1_AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L1_BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "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_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_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "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
            }
          ]
        },
        {
          "part_name": "LegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.LegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.LegFields.html",
          "fields": [
            {
              "name": "L2_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": "L2_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": "L2_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": "L2_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": "L2_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "L2_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "L2_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L2_AllInSpread",
              "type": "decimal",
              "flags": "",
              "definition": "Optional field for displaying the spread between a bid and ask rate value. Calculate by subtracting bid rate from ask rate.",
              "example_value": "0.00162",
              "deprecated": false
            },
            {
              "name": "L2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L2_AllInBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "The bid 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": "L2_FwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the bid rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L2_AllInAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "The ask 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": "L2_FwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The number of basis points added to or subtracted from the ask rate to determine the forward rate for delivery on a specific value date.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_FwdBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "L2_FwdAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "53.90",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_BidCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L2_BidCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L2_BidCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_AskCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote",
              "example_value": "150000.00",
              "deprecated": false
            },
            {
              "name": "L2_AskCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L2_AskCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in home currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_AskContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the ask side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_AskContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the ask side in contra currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L2_AskContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_BidContraCostAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The total amount on the bid side of the trade when requesting a quote seen in contra currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_BidContraCostPercentage",
              "type": "decimal",
              "flags": "",
              "definition": "Percentage of the overall price which is the transactional cost to the client of performing the trade, displayed on the bid side in cost currency. This number should be out of 100, where 100.0 represents 100%.",
              "example_value": "1.5",
              "deprecated": false
            },
            {
              "name": "L2_BidContraCostRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate to multiply by the margin (in contra currency), to get the cost in the CostCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "L2_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": "L2_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": "L2_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "L2_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
            }
          ]
        },
        {
          "part_name": "SwapQuoteFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SwapQuoteFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SwapQuoteFields.html",
          "fields": [
            {
              "name": "SwapAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The swap ask points that the client wants to trade on",
              "example_value": "0.004934",
              "deprecated": false
            },
            {
              "name": "SwapBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The swap bid points that the client wants to trade on",
              "example_value": "0.004171",
              "deprecated": false
            },
            {
              "name": "SwapMidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The value of swap points that is halfway between the swap bid points and the swap ask points.",
              "example_value": "0.004553",
              "deprecated": false
            },
            {
              "name": "SwapAskPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "49.34",
              "deprecated": false
            },
            {
              "name": "SwapBidPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "41.71",
              "deprecated": false
            }
          ]
        }
      ]
    },
    {
      "part_name": "SalesCommonFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesCommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesCommonFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C1_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentFields.html",
          "fields": [
            {
              "name": "C2_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotBidRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot bid rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotAskRate",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the spot ask rate with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "TraderSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "TraderSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "DefaultSpotBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotBidRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "DefaultSpotAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the SpotAskRate. It should be sent as an unformatted, raw value.",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "ProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The profit currency that the ProfitBidRate is being provided for.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "ProfitCurrencyDPS",
          "type": "integer",
          "flags": "",
          "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
          "example_value": "5",
          "deprecated": false
        },
        {
          "name": "ProfitIsHouse",
          "type": "boolean",
          "flags": "",
          "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ProfitBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "ProfitAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate between the contra currency and the profit currency. This can be used for entering profit in an amount of settlement currency.",
          "example_value": "1.090098",
          "deprecated": false
        },
        {
          "name": "Reasons",
          "type": "string",
          "flags": "",
          "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SyntheticCrossCurrency",
          "type": "string",
          "flags": "",
          "definition": "The common currency of each synthetic component.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "ForceManual",
          "type": "boolean",
          "flags": "",
          "definition": "If this field is set to true then the Sales RFS ticket should be forced into manual pricing mode. If not specified, the default is false.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Spot values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "SpotMarginAgreed",
          "type": "boolean",
          "flags": "",
          "definition": "This flag shows if the user can(false)/cannot(true) exceed the agreed margin or not",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot ask rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "SalesLegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesLegFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C1_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
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L1_C2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L1_C2_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
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "L1_TraderAllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward bid points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdBidPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_TraderAllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in ask rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L1_TraderFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward ask points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L1_DefaultFwdAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdAskPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd bid points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_ReferenceFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd ask points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L1_XVABidAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid amount. XVA refers to a combined value representing valuation adjustments beyond the basic bid/ask spread.",
          "example_value": "3",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask amount",
          "example_value": "9",
          "deprecated": false
        },
        {
          "name": "L1_XVABidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid points value",
          "example_value": "0.000005",
          "deprecated": false
        },
        {
          "name": "L1_XVAAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask points value",
          "example_value": "0.000008",
          "deprecated": false
        },
        {
          "name": "L1_BidDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The bid discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_AskDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The ask discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L1_FwdPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Fwd values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "SalesLegFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesLegFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L2_C1_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L2_C1_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L2_C1_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L2_C1_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
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentLegFields",
          "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSyntheticComponentLegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSyntheticComponentLegFields.html",
          "fields": [
            {
              "name": "L2_C2_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "L2_C2_TraderFwdBidPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward bid points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L2_C2_TraderFwdAskPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the forward ask points with no client margin applied to them.",
              "example_value": "0.001198",
              "deprecated": false
            },
            {
              "name": "L2_C2_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
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "L2_TraderAllInBidRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in bid rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L2_TraderFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward bid points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L2_DefaultFwdBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdBidPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L2_TraderAllInAskRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the all-in ask rate, with no client margin applied to it",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "L2_TraderFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the forward ask points with no client margin applied to them.",
          "example_value": "0.001198",
          "deprecated": false
        },
        {
          "name": "L2_DefaultFwdAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the default margin to be applied to the L1_TraderFwdAskPoints. It should be sent as an unformatted, raw value.",
          "example_value": "0.000019",
          "deprecated": false
        },
        {
          "name": "L2_ReferenceFwdBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd bid points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L2_ReferenceFwdAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference fwd ask points with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "L2_XVABidAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid amount. XVA refers to a combined value representing valuation adjustments beyond the basic bid/ask spread.",
          "example_value": "3",
          "deprecated": false
        },
        {
          "name": "L2_XVAAskAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask amount",
          "example_value": "9",
          "deprecated": false
        },
        {
          "name": "L2_XVABidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA bid points value",
          "example_value": "0.000005",
          "deprecated": false
        },
        {
          "name": "L2_XVAAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The XVA ask points value",
          "example_value": "0.000008",
          "deprecated": false
        },
        {
          "name": "L2_BidDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The bid discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L2_AskDiscountFactor",
          "type": "decimal",
          "flags": "",
          "definition": "The ask discount factor value",
          "example_value": "1.2",
          "deprecated": false
        },
        {
          "name": "L2_FwdPriceMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the Fwd values provided by the pricing engine have been automatically or manually priced. Enum of: MANUAL, AUTO",
          "example_value": "",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "SalesSwapQuoteFields",
      "java_class": "com.caplin.generated.motif.fx.rates.QuotePartsDef.SalesSwapQuoteFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/rates/QuotePartsDef.SalesSwapQuoteFields.html",
      "fields": [
        {
          "name": "TraderSwapAskPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap ask points with no client margins applied to them.",
          "example_value": "0.004894",
          "deprecated": false
        },
        {
          "name": "DefaultSwapAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The default swap margin to be applied to the ask side: L1_DefaultFwdBidMargin + L2_DefaultFwdAskMargin",
          "example_value": "0.000040",
          "deprecated": false
        },
        {
          "name": "TraderSwapBidPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The swap bid points with no client margins applied to them.",
          "example_value": "0.004211",
          "deprecated": false
        },
        {
          "name": "DefaultSwapBidMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The default swap margin to be applied to the bid side: L1_DefaultFwdAskMargin + L2_DefaultFwdBidMargin",
          "example_value": "0.000040",
          "deprecated": false
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.rates.QuoteTypesDef.SalesSwapQuote](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/rates/QuoteTypesDef.SalesSwapQuote.html)

Instantiation pattern: Static Factory Method (via `QuoteTypesDef.SalesSwapQuote.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.rates.QuoteTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.rates.QuotePartsDef;
import com.caplin.generated.motif.fx.rates.QuoteTypesDef;

public class SalesSwapQuoteExample {
    public static void main(String[] args) {
                    		
		QuoteTypesDef.SalesSwapQuote salesSwapQuote =
		QuoteTypesDef.SalesSwapQuote
			.newBuilder()
			.setFarSalesLegFields(
			QuotePartsDef.SalesLegFields
				.newBuilder()
				.setAskDiscountFactor(BigDecimal.valueOf(1.2))
				.setBidDiscountFactor("1.2")
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.setAllInRateDPS("5")
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setTraderFwdAskPoints(BigDecimal.valueOf(0.001198))
					.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentLegFields
					.newBuilder()
					.build())
				.setDefaultFwdAskMargin(BigDecimal.valueOf(0.000019))
				.setDefaultFwdBidMargin("0.000019")
				.setFwdPriceMode("")
				.setReferenceFwdAskPoints(BigDecimal.valueOf(0.0))
				.setReferenceFwdBidPoints(BigDecimal.valueOf(0.0))
				.setTraderAllInAskRate("1.091790")
				.setTraderAllInBidRate(BigDecimal.valueOf(1.091790))
				.setTraderFwdAskPoints("0.001198")
				.setTraderFwdBidPoints(BigDecimal.valueOf(0.001198))
				.setXVAAskAmount(BigDecimal.valueOf(9))
				.setXVAAskPoints("0.000008")
				.setXVABidAmount("3")
				.setXVABidPoints("0.000005")
				.build())
			.setNearSalesLegFields(
			QuotePartsDef.SalesLegFields
				.newBuilder()
				.build())
			.setSalesCommonFields(
			QuotePartsDef.SalesCommonFields
				.newBuilder()
				.setComponent1(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.setCurrencyPair("")
					.setDigitsBeforePips(2)
					.setNumberOfPips("2")
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS(5)
					.setTraderSpotAskRate("1.08575")
					.setTraderSpotBidRate("1.08575")
					.build())
				.setComponent2(
				QuotePartsDef.SalesSyntheticComponentFields
					.newBuilder()
					.build())
				.setDefaultSpotAskMargin(BigDecimal.valueOf(0.00054))
				.setDefaultSpotBidMargin("0.00054")
				.setForceManual("")
				.setProfitAskRate("1.090098")
				.setProfitBidRate(BigDecimal.valueOf(1.091790))
				.setProfitCurrency("USD")
				.setProfitCurrencyDPS("5")
				.setProfitIsHouse("")
				.setReasons("Customer Initiated")
				.setReferenceSpotAskRate(BigDecimal.valueOf(0.0))
				.setReferenceSpotBidRate("")
				.setSpotMarginAgreed(true)
				.setSpotPriceMode("")
				.setSyntheticCrossCurrency("GBP")
				.setTraderSpotAskRate("1.08575")
				.setTraderSpotBidRate("1.08575")
				.build())
			.setSalesSwapFields(
			QuotePartsDef.SalesSwapQuoteFields
				.newBuilder()
				.setDefaultSwapAskMargin("0.000040")
				.setDefaultSwapBidMargin(BigDecimal.valueOf(0.000040))
				.setTraderSwapAskPoints("0.004894")
				.setTraderSwapBidPoints("0.004211")
				.build())
			.setSwapQuote(
			QuoteTypesDef.SwapQuote
				.newBuilder()
				.setCommonFields(
				QuotePartsDef.CommonFields
					.newBuilder()
					.setAskContraCostAmount("")
					.setAskContraCostPercentage(BigDecimal.valueOf(1.5))
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate("")
					.setAskIndicative(true)
					.setAskPips("11.98")
					.setAskQuoteID("")
					.setBidContraCostAmount(BigDecimal.valueOf(0.0))
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount("150000.00")
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBidIndicative("")
					.setBidPips("11.98")
					.setBidQuoteID("")
					.setContraCostAmount("")
					.setContraCostCurrency("GBP")
					.setContraCostPercentage("13.56")
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCurrencyPair("")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setGFA("1000000")
					.setNumberOfFractionalPips("")
					.setNumberOfPips(2)
					.setOverallTimeOut(0)
					.setPriceUpdateSource("")
					.setRateUnavailableReason(arg)
					.setRemainingTimeOutMillis(0)
					.setSpotAskRate("1.08349")
					.setSpotBidRate(BigDecimal.valueOf(1.08341))
					.setSpotMidRate(BigDecimal.valueOf(1.08345))
					.setSpotRateDPS("5")
					.setSwapGFA("1 000 000")
					.setTimePriceReceived("1721952000000")
					.setWarningCategory("WARNING")
					.setWarningCode("001")
					.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
					.build())
				.setFarLegFields(
				QuotePartsDef.LegFields
					.newBuilder()
					.setAllInAskRate("1.091790")
					.setAllInBidRate("1.091790")
					.setAllInMidRate(BigDecimal.valueOf(1.091790))
					.setAllInRateDPS("5")
					.setAllInSpread(BigDecimal.valueOf(0.00162))
					.setAmount("0")
					.setAskContraCostAmount(BigDecimal.valueOf(0.0))
					.setAskContraCostPercentage("1.5")
					.setAskContraCostRate(BigDecimal.valueOf(0.0))
					.setAskCostAmount(BigDecimal.valueOf(150000.00))
					.setAskCostPercentage(BigDecimal.valueOf(1.5))
					.setAskCostRate(BigDecimal.valueOf(0.0))
					.setBidContraCostAmount("")
					.setBidContraCostPercentage("1.5")
					.setBidContraCostRate("")
					.setBidCostAmount(BigDecimal.valueOf(150000.00))
					.setBidCostPercentage("1.5")
					.setBidCostRate(BigDecimal.valueOf(0.0))
					.setBuySell("")
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostCurrency("GBP")
					.setForwardPointsDecimalOffset("")
					.setFwdAskPips("53.90")
					.setFwdAskPoints("0.005390")
					.setFwdBidPips("53.90")
					.setFwdBidPoints(BigDecimal.valueOf(0.005390))
					.setFwdMidPoints(BigDecimal.valueOf(0.005390))
					.setIsTimeOption("true")
					.setRiskDate("20160314")
					.setRiskTenor("1W")
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTenor("1M")
					.build())
				.setNearLegFields(
				QuotePartsDef.LegFields
					.newBuilder()
					.build())
				.setSwapFields(
				QuotePartsDef.SwapQuoteFields
					.newBuilder()
					.setSwapAskPips("49.34")
					.setSwapAskPoints("0.004934")
					.setSwapBidPips("41.71")
					.setSwapBidPoints("0.004171")
					.setSwapMidPoints("0.004553")
					.build())
				.build())
			.build();
            
    }
}
```


### Event: Reject (server)

Message specification:

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

### Event: SubmitAck (server)

Message specification:

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


### Event: TradeConfirmation

The TradeConfirmation event is polymorphic. When building a TradeConfirmation event message, choose the specification appropriate to the client's web application (Caplin FX Professional or Caplin FX Sales).

#### Caplin FX Professional web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "TradeConfirmation",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationConfirmation",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationConfirmation.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/AllocationConfirmationExample.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": "NetConfirmationFields",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.NetConfirmationFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.NetConfirmationFields.html",
      "fields": [
        {
          "name": "NetBuySell",
          "type": "string",
          "flags": "",
          "definition": "The net direction of all the trade legs, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "NetDealtAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The net dealt amount (unsigned) for all the trade legs",
          "example_value": "1000000",
          "deprecated": false
        },
        {
          "name": "NetContraAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The net contra amount (unsigned) for all the trade legs",
          "example_value": "1123400",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "NettedLegTradeConfirmationFields",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.NettedLegTradeConfirmationFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.NettedLegTradeConfirmationFields.html",
      "parts": [
        {
          "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": "Ln_Pay[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_Pay[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_Pay[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_Pay[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Pay[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_Receive[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_Receive[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_Receive[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_Receive[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Receive[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_PayNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_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": "Ln_ReceiveNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_ReceiveNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "Ln_CanAffirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Affirm the Trade Details are as agreed.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_CanConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Confirm the Settlement Details are now final.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_CanAdHoc",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can confirm adhoc settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_CanCancel",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_CanUnconfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to move the deal back to a Pending state.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_CanApproveInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can approve settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_CanRejectInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can reject settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_CanRelease",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Relates to post trade actions: User can release the trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_SettlementStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_NextActionDeadlineDisplayTimezone",
                  "type": "string",
                  "flags": "",
                  "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                  "example_value": "America/New_York",
                  "deprecated": false
                },
                {
                  "name": "Ln_AffirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who affirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_ConfirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who confirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_IsPayNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_IsReceiveNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_IsPayNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_IsReceiveNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_IsPaySplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_NostroName",
                  "type": "string",
                  "flags": "",
                  "definition": "An identifier for the given nostro account.",
                  "example_value": "GBP Nostro Account.",
                  "deprecated": false
                },
                {
                  "name": "Ln_NostroBIC",
                  "type": "string",
                  "flags": "",
                  "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                  "example_value": "ARABAEADABC",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_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": "Ln_Remarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_Remarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "Ln_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": "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_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": "Ln_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "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_Amount",
              "type": "decimal",
              "flags": "Editable, Risk",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "Ln_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "Ln_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_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": "Ln_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_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": "Ln_ServiceContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_ServiceCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service home currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_AllocatableAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_OriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The Rate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_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": "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_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": "Ln_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": "Ln_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": "Ln_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": "Ln_ReferenceCurrency",
              "type": "string",
              "flags": "",
              "definition": "The Buy or Sell Currency that is not the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_SettlementAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a settlement",
              "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": "Ln_In_Pay[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_Pay[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Pay[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_Pay[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Pay[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_Receive[n]SettlementId",
                      "type": "string",
                      "flags": "",
                      "definition": "The identifier for the settlement instruction.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a settlement",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_Receive[n]IsDefaultSettlementInstruction",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Is this the default settlement instruction for this currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Receive[n]BankAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the bank",
                      "example_value": "12345678",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]BankSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the bank ",
                      "example_value": "CAP123",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]BankName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the bank",
                      "example_value": "Bank Of Caplin",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]BankAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the bank's address",
                      "example_value": "12 Capitol",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]BankAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the bank's address",
                      "example_value": "The City",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]BankAddress3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of the bank's address",
                      "example_value": "London",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]IndividualAccount",
                      "type": "string",
                      "flags": "",
                      "definition": "The account number of the recipient",
                      "example_value": "87654321",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]IndividualSwift",
                      "type": "string",
                      "flags": "",
                      "definition": "The BIC of the recipient's account",
                      "example_value": "SOLD987",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]IndividualName",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the payee or payee's bank",
                      "example_value": "Susan Sellers",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]IndividualAddress1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of the recipient",
                      "example_value": "98 Lane",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]IndividualAddress2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of the recipient",
                      "example_value": "Manchester",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_Receive[n]SplitComponentId",
                      "type": "string",
                      "flags": "",
                      "definition": "The unique ID of a split component",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementDetailsLine1",
                      "type": "string",
                      "flags": "",
                      "definition": "The first line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementDetailsLine2",
                      "type": "string",
                      "flags": "",
                      "definition": "The second line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementDetailsLine3",
                      "type": "string",
                      "flags": "",
                      "definition": "The third line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementDetailsLine4",
                      "type": "string",
                      "flags": "",
                      "definition": "The fourth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Receive[n]SettlementDetailsLine5",
                      "type": "string",
                      "flags": "",
                      "definition": "The fifth line of remittance information.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_PayNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_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": "Ln_In_ReceiveNettingComponents[n]TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_ReceiveNettingComponents[n]Amount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "Ln_In_CanAffirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Affirm the Trade Details are as agreed.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_CanConfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Confirm the Settlement Details are now final.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_CanAdHoc",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can confirm adhoc settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_CanCancel",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_CanUnconfirm",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Ability to move the deal back to a Pending state.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_CanApproveInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can approve settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_CanRejectInstructions",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Can reject settlement instructions for a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_CanRelease",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Relates to post trade actions: User can release the trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_SettlementStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_NextActionDeadlineDisplayTimezone",
                  "type": "string",
                  "flags": "",
                  "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                  "example_value": "America/New_York",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_AffirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who affirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_ConfirmedBy",
                  "type": "string",
                  "flags": "",
                  "definition": "The name of the user who confirmed a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_IsPayNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_IsReceiveNetted",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade has been netted.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_IsPayNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_IsReceiveNettingRequired",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the receive side of a trade requires netting.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_IsPaySplit",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Denotes whether the pay side of a trade has been split.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_NostroName",
                  "type": "string",
                  "flags": "",
                  "definition": "An identifier for the given nostro account.",
                  "example_value": "GBP Nostro Account.",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_NostroBIC",
                  "type": "string",
                  "flags": "",
                  "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                  "example_value": "ARABAEADABC",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Remarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_Remarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_TradeID",
              "type": "string",
              "flags": "",
              "definition": "A unique identifier for this trade",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_AllInRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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_In_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": "Ln_In_FwdPips",
              "type": "string",
              "flags": "",
              "definition": "",
              "example_value": "11.98",
              "deprecated": false
            },
            {
              "name": "Ln_In_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_In_Amount",
              "type": "decimal",
              "flags": "Editable, Risk",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_StartDate",
              "type": "string",
              "flags": "Risk",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "Ln_In_StartTenor",
              "type": "string",
              "flags": "Risk",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "name": "Ln_In_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_Profit",
              "type": "decimal",
              "flags": "",
              "definition": "The sales profit in the specified currency.",
              "example_value": "1000",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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": "Ln_In_EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_ContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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": "Ln_In_ServiceContraCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service contra currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_ServiceCostCurrency",
              "type": "string",
              "flags": "",
              "definition": "The service home currency that the cost is displayed in",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_FullName",
              "type": "string",
              "flags": "",
              "definition": "The full name of the user the trade is on behalf of",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_AllocatableAmount",
              "type": "decimal",
              "flags": "",
              "definition": "This is the amount that can be allocated or rolled.",
              "example_value": "500",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_OriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The Rate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_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_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_ReferenceCurrency",
              "type": "string",
              "flags": "",
              "definition": "The Buy or Sell Currency that is not the Settlement Currency",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_SettlementAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a settlement",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SwapPartnerLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields.html",
          "fields": [
            {
              "name": "Ln_In_SwapPartnerNettedLegID",
              "type": "integer",
              "flags": "",
              "definition": "",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_SwapPartnerInputLegID",
              "type": "integer",
              "flags": "",
              "definition": "",
              "example_value": "",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "Ln_IsReprice",
          "type": "boolean",
          "flags": "",
          "definition": "Defines if the leg of an allocation needs to be repriced.",
          "example_value": "",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "AllocationNettedLegTradeConfirmationFields",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields.html",
      "parts": [
        {
          "part_name": "AllocationLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.AllocationLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.AllocationLegTradeConfirmationFields.html",
          "fields": [
            {
              "name": "Ln_MarkToMarket",
              "type": "decimal",
              "flags": "",
              "definition": "A signed numerical value which represents a positive or negative cashflow when rolling forward or back a new deal from the original deal",
              "example_value": "12.45",
              "deprecated": false
            },
            {
              "name": "Ln_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
            }
          ]
        },
        {
          "part_name": "AllocationLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.AllocationLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.AllocationLegTradeConfirmationFields.html",
          "fields": [
            {
              "name": "Ln_In_MarkToMarket",
              "type": "decimal",
              "flags": "",
              "definition": "A signed numerical value which represents a positive or negative cashflow when rolling forward or back a new deal from the original deal",
              "example_value": "12.45",
              "deprecated": false
            },
            {
              "name": "Ln_In_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
            }
          ]
        }
      ]
    }
  ],
  "fields": [
    {
      "name": "NettedAmount",
      "type": "decimal",
      "flags": "",
      "definition": "Use NetDealtAmount and NetContraAmount instead",
      "example_value": "",
      "deprecated": false
    },
    {
      "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.AllocationConfirmation](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationConfirmation.html)

Instantiation pattern: Static Factory Method (via `TradeConfTypesDef.AllocationConfirmation.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 AllocationConfirmationExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationConfirmation allocationConfirmation =
		TradeConfTypesDef.AllocationConfirmation
			.newBuilder()
			.addAllocationNettedLegTradeConfirmationFields(
			TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields
				.newBuilder()
				.addAllocationInputLegTradeConfirmationFields(
				TradeConfPartsDef.AllocationLegTradeConfirmationFields
					.newBuilder()
					.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
					.setMarkToMarket("12.45")
					.build())
				.setAllocationNettedLegTradeConfirmation(
				TradeConfPartsDef.AllocationLegTradeConfirmationFields
					.newBuilder()
					.build())
				.build())
			.addNettedLegTradeConfirmationFields(
			TradeConfTypesDef.NettedLegTradeConfirmationFields
				.newBuilder()
				.addInputLegSwapPartnerTradeConfirmation(
				TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields
					.newBuilder()
					.setSwapPartnerInputLegID(0)
					.setSwapPartnerNettedLegID("")
					.build())
				.addInputLegTradeConfirmation(
				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())
				.addInputNDFLegTradeConfirmation(
				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())
				.setIsReprice("")
				.setNdfNettedLegTradeConfirmation(
				TradeConfPartsDef.NDFLegTradeConfirmationFields
					.newBuilder()
					.build())
				.setNettedLegTradeConfirmation(
				TradeConfPartsDef.LegTradeConfirmationFields
					.newBuilder()
					.build())
				.build())
			.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")
				.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())
			.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
			.setNdfFields(
			TradeConfPartsDef.NDFTradeConfirmationFields
				.newBuilder()
				.setFixingSource("WMR 8am London Time")
				.setLocationType("")
				.setSettlementCurrency("GBP")
				.build())
			.setNetFields(
			TradeConfPartsDef.NetConfirmationFields
				.newBuilder()
				.setNetBuySell("")
				.setNetContraAmount("1123400")
				.setNetDealtAmount(BigDecimal.valueOf(1000000))
				.build())
			.setNettedAmount(BigDecimal.valueOf(0.0))
			.build();
            
    }
}
```

#### Caplin FX Sales web application

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "TradeConfirmation",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationSalesConfirmation",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationSalesConfirmation.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/AllocationSalesConfirmationExample.html",
  "parts": [
    {
      "part_name": "AllocationConfirmation",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationConfirmation",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationConfirmation.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": "NetConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.NetConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.NetConfirmationFields.html",
          "fields": [
            {
              "name": "NetBuySell",
              "type": "string",
              "flags": "",
              "definition": "The net direction of all the trade legs, from the client's perspective. This always refers to the BaseCurrency, NOT the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "NetDealtAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The net dealt amount (unsigned) for all the trade legs",
              "example_value": "1000000",
              "deprecated": false
            },
            {
              "name": "NetContraAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The net contra amount (unsigned) for all the trade legs",
              "example_value": "1123400",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "NettedLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.NettedLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.NettedLegTradeConfirmationFields.html",
          "parts": [
            {
              "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": "Ln_Pay[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_Pay[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_Pay[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_Pay[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Pay[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_Receive[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_Receive[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_Receive[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_Receive[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_Receive[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_PayNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_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": "Ln_ReceiveNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_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": "Ln_ReceiveNettingComponents[n]Amount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a trade or order in the DealtCurrency.",
                          "example_value": "",
                          "deprecated": false
                        }
                      ]
                    }
                  ],
                  "fields": [
                    {
                      "name": "Ln_CanAffirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Affirm the Trade Details are as agreed.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_CanConfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Confirm the Settlement Details are now final.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_CanAdHoc",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can confirm adhoc settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_CanCancel",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_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": "Ln_CanUnconfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to move the deal back to a Pending state.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_CanApproveInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can approve settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_CanRejectInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can reject settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_CanRelease",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Relates to post trade actions: User can release the trade",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_NextActionDeadlineDisplayTimezone",
                      "type": "string",
                      "flags": "",
                      "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                      "example_value": "America/New_York",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_AffirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who affirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_ConfirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who confirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_IsPayNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_IsReceiveNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_IsPayNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_IsReceiveNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_IsPaySplit",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been split.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_NostroName",
                      "type": "string",
                      "flags": "",
                      "definition": "An identifier for the given nostro account.",
                      "example_value": "GBP Nostro Account.",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_NostroBIC",
                      "type": "string",
                      "flags": "",
                      "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                      "example_value": "ARABAEADABC",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_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": "Ln_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": "Ln_Remarks[n]RemarkSource",
                      "type": "string",
                      "flags": "",
                      "definition": "The username of the person who left a remark on a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_Remarks[n]RemarkOriginStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Additional remark field pointing at the previous status of the trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_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": "Ln_TradeID",
                  "type": "string",
                  "flags": "",
                  "definition": "A unique identifier for this trade",
                  "example_value": "00001561",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "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_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": "Ln_FwdPips",
                  "type": "string",
                  "flags": "",
                  "definition": "",
                  "example_value": "11.98",
                  "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_Amount",
                  "type": "decimal",
                  "flags": "Editable, Risk",
                  "definition": "The amount of a trade or order in the DealtCurrency.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_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": "Ln_StartDate",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The date of which the time option becomes active from.",
                  "example_value": "20150620",
                  "deprecated": false
                },
                {
                  "name": "Ln_StartTenor",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The tenor of which the time option becomes active from.",
                  "example_value": "1W",
                  "deprecated": false
                },
                {
                  "name": "Ln_IsTimeOption",
                  "type": "boolean",
                  "flags": "",
                  "definition": "true if a leg is time-option",
                  "example_value": "true",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_Profit",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The sales profit in the specified currency.",
                  "example_value": "1000",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_EntityDescription",
                  "type": "string",
                  "flags": "",
                  "definition": "The description of a trade on behalf of entity.",
                  "example_value": "Customer 1",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_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": "Ln_ContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_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": "Ln_ServiceContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_ServiceCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service home currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_FullName",
                  "type": "string",
                  "flags": "",
                  "definition": "The full name of the user the trade is on behalf of",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_AllocatableAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This is the amount that can be allocated or rolled.",
                  "example_value": "500",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_OriginalRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The Rate of the trade that this trade was created from.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "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_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": "Ln_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": "Ln_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": "Ln_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": "Ln_ReferenceCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The Buy or Sell Currency that is not the Settlement Currency",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_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": "Ln_SettlementAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The amount of a settlement",
                  "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": "Ln_In_Pay[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_Pay[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Pay[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_Pay[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Pay[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_Receive[n]SettlementId",
                          "type": "string",
                          "flags": "",
                          "definition": "The identifier for the settlement instruction.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementCurrency",
                          "type": "string",
                          "flags": "",
                          "definition": "A currency for of settlement instruction",
                          "example_value": "GBP",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementAmount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a settlement",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_Receive[n]IsDefaultSettlementInstruction",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Is this the default settlement instruction for this currency",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Receive[n]BankAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the bank",
                          "example_value": "12345678",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]BankSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the bank ",
                          "example_value": "CAP123",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]BankName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the bank",
                          "example_value": "Bank Of Caplin",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]BankAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the bank's address",
                          "example_value": "12 Capitol",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]BankAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the bank's address",
                          "example_value": "The City",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]BankAddress3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of the bank's address",
                          "example_value": "London",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]IndividualAccount",
                          "type": "string",
                          "flags": "",
                          "definition": "The account number of the recipient",
                          "example_value": "87654321",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]IndividualSwift",
                          "type": "string",
                          "flags": "",
                          "definition": "The BIC of the recipient's account",
                          "example_value": "SOLD987",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]IndividualName",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the payee or payee's bank",
                          "example_value": "Susan Sellers",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]IndividualAddress1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of the recipient",
                          "example_value": "98 Lane",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]IndividualAddress2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of the recipient",
                          "example_value": "Manchester",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_Receive[n]SplitComponentId",
                          "type": "string",
                          "flags": "",
                          "definition": "The unique ID of a split component",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementDetailsLine1",
                          "type": "string",
                          "flags": "",
                          "definition": "The first line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementDetailsLine2",
                          "type": "string",
                          "flags": "",
                          "definition": "The second line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementDetailsLine3",
                          "type": "string",
                          "flags": "",
                          "definition": "The third line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementDetailsLine4",
                          "type": "string",
                          "flags": "",
                          "definition": "The fourth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_Receive[n]SettlementDetailsLine5",
                          "type": "string",
                          "flags": "",
                          "definition": "The fifth line of remittance information.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_PayNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_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": "Ln_In_ReceiveNettingComponents[n]TradeID",
                          "type": "string",
                          "flags": "",
                          "definition": "A unique identifier for this trade",
                          "example_value": "00001561",
                          "deprecated": false
                        },
                        {
                          "name": "Ln_In_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": "Ln_In_ReceiveNettingComponents[n]Amount",
                          "type": "decimal",
                          "flags": "",
                          "definition": "The amount of a trade or order in the DealtCurrency.",
                          "example_value": "",
                          "deprecated": false
                        }
                      ]
                    }
                  ],
                  "fields": [
                    {
                      "name": "Ln_In_CanAffirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Affirm the Trade Details are as agreed.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_CanConfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Confirm the Settlement Details are now final.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_CanAdHoc",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can confirm adhoc settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_CanCancel",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_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": "Ln_In_CanUnconfirm",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to move the deal back to a Pending state.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_CanApproveInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can approve settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_CanRejectInstructions",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Can reject settlement instructions for a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_CanRelease",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Relates to post trade actions: User can release the trade",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_SettlementStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_NextActionDeadlineDisplayTimezone",
                      "type": "string",
                      "flags": "",
                      "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                      "example_value": "America/New_York",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_AffirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who affirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_ConfirmedBy",
                      "type": "string",
                      "flags": "",
                      "definition": "The name of the user who confirmed a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_IsPayNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_IsReceiveNetted",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade has been netted.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_IsPayNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_IsReceiveNettingRequired",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the receive side of a trade requires netting.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_IsPaySplit",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Denotes whether the pay side of a trade has been split.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_NostroName",
                      "type": "string",
                      "flags": "",
                      "definition": "An identifier for the given nostro account.",
                      "example_value": "GBP Nostro Account.",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_NostroBIC",
                      "type": "string",
                      "flags": "",
                      "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                      "example_value": "ARABAEADABC",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_Remarks[n]RemarkSource",
                      "type": "string",
                      "flags": "",
                      "definition": "The username of the person who left a remark on a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_Remarks[n]RemarkOriginStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Additional remark field pointing at the previous status of the trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "Ln_In_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": "Ln_In_TradeID",
                  "type": "string",
                  "flags": "",
                  "definition": "A unique identifier for this trade",
                  "example_value": "00001561",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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_In_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": "Ln_In_FwdPips",
                  "type": "string",
                  "flags": "",
                  "definition": "",
                  "example_value": "11.98",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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_In_Amount",
                  "type": "decimal",
                  "flags": "Editable, Risk",
                  "definition": "The amount of a trade or order in the DealtCurrency.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_StartDate",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The date of which the time option becomes active from.",
                  "example_value": "20150620",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_StartTenor",
                  "type": "string",
                  "flags": "Risk",
                  "definition": "The tenor of which the time option becomes active from.",
                  "example_value": "1W",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_IsTimeOption",
                  "type": "boolean",
                  "flags": "",
                  "definition": "true if a leg is time-option",
                  "example_value": "true",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_Profit",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The sales profit in the specified currency.",
                  "example_value": "1000",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_EntityDescription",
                  "type": "string",
                  "flags": "",
                  "definition": "The description of a trade on behalf of entity.",
                  "example_value": "Customer 1",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_ContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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": "Ln_In_ServiceContraCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service contra currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_ServiceCostCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The service home currency that the cost is displayed in",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_FullName",
                  "type": "string",
                  "flags": "",
                  "definition": "The full name of the user the trade is on behalf of",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_AllocatableAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "This is the amount that can be allocated or rolled.",
                  "example_value": "500",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_OriginalRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The Rate of the trade that this trade was created from.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_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_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_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": "Ln_In_ReferenceCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The Buy or Sell Currency that is not the Settlement Currency",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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": "Ln_In_SettlementAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The amount of a settlement",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            },
            {
              "part_name": "SwapPartnerLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_In_SwapPartnerNettedLegID",
                  "type": "integer",
                  "flags": "",
                  "definition": "",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_SwapPartnerInputLegID",
                  "type": "integer",
                  "flags": "",
                  "definition": "",
                  "example_value": "",
                  "deprecated": false
                }
              ]
            }
          ],
          "fields": [
            {
              "name": "Ln_IsReprice",
              "type": "boolean",
              "flags": "",
              "definition": "Defines if the leg of an allocation needs to be repriced.",
              "example_value": "",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "AllocationNettedLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "AllocationLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.AllocationLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.AllocationLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_MarkToMarket",
                  "type": "decimal",
                  "flags": "",
                  "definition": "A signed numerical value which represents a positive or negative cashflow when rolling forward or back a new deal from the original deal",
                  "example_value": "12.45",
                  "deprecated": false
                },
                {
                  "name": "Ln_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
                }
              ]
            },
            {
              "part_name": "AllocationLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.AllocationLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.AllocationLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_In_MarkToMarket",
                  "type": "decimal",
                  "flags": "",
                  "definition": "A signed numerical value which represents a positive or negative cashflow when rolling forward or back a new deal from the original deal",
                  "example_value": "12.45",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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
                }
              ]
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "NettedAmount",
          "type": "decimal",
          "flags": "",
          "definition": "Use NetDealtAmount and NetContraAmount instead",
          "example_value": "",
          "deprecated": false
        },
        {
          "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
        }
      ]
    },
    {
      "part_name": "SalesCommonTradeConfirmationFields",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesCommonTradeConfirmationFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesCommonTradeConfirmationFields.html",
      "parts": [
        {
          "part_name": "SalesSyntheticComponentTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
          "fields": [
            {
              "name": "C1_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C1_TraderSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "1.09174",
              "deprecated": false
            },
            {
              "name": "C1_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": "C1_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": "C1_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": "C1_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesSyntheticComponentTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields.html",
          "fields": [
            {
              "name": "C2_CurrencyPair",
              "type": "string",
              "flags": "",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "C2_TraderSpotRate",
              "type": "decimal",
              "flags": "",
              "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
              "example_value": "1.09174",
              "deprecated": false
            },
            {
              "name": "C2_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": "C2_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": "C2_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": "C2_SpotRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The number of decimal places to display after the decimal point.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        }
      ],
      "fields": [
        {
          "name": "ProfitCurrency",
          "type": "string",
          "flags": "",
          "definition": "The profit currency that the ProfitBidRate is being provided for.",
          "example_value": "USD",
          "deprecated": false
        },
        {
          "name": "ProfitCurrencyDPS",
          "type": "integer",
          "flags": "",
          "definition": "The number of decimal places that should be used for formatting the amount in profit currency field.",
          "example_value": "5",
          "deprecated": false
        },
        {
          "name": "ProfitIsHouse",
          "type": "boolean",
          "flags": "",
          "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ProfitRate",
          "type": "decimal",
          "flags": "",
          "definition": "The conversion rate from the contra currency into the profit currency.",
          "example_value": "1.091790",
          "deprecated": false
        },
        {
          "name": "TraderSpotRate",
          "type": "decimal",
          "flags": "",
          "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
          "example_value": "1.09174",
          "deprecated": false
        },
        {
          "name": "SpotMargin",
          "type": "decimal",
          "flags": "Editable",
          "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
          "example_value": "0.00054",
          "deprecated": false
        },
        {
          "name": "Profit",
          "type": "decimal",
          "flags": "",
          "definition": "The sales profit in the specified currency.",
          "example_value": "1000",
          "deprecated": false
        },
        {
          "name": "Competition",
          "type": "boolean",
          "flags": "",
          "definition": "Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Source",
          "type": "string",
          "flags": "",
          "definition": "The source of a quote request. The name or ID of an ECN, SDP or other channel",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Reasons",
          "type": "string",
          "flags": "",
          "definition": "A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "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
        },
        {
          "name": "ExternalRemarks",
          "type": "string",
          "flags": "",
          "definition": "The trader's comments on an order leg - visible to only the sales, set/edited only by the Trader",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "IsAdvised",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the trader gave the client advice",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "StreamingMode",
          "type": "string",
          "flags": "",
          "definition": "Indicates whether the rates/margins of this trade have been manually set by the frontend",
          "example_value": "MANUAL, STREAMING",
          "deprecated": false
        },
        {
          "name": "SyntheticCrossCurrency",
          "type": "string",
          "flags": "",
          "definition": "The common currency of each synthetic component.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "AmendmentReasonDisplayFields",
          "type": "string",
          "flags": "",
          "definition": "Configuration for a frontend to display label-value pairs for the amendment type/reasons. Use DefaultDisplayFields builders to provide Caplin default fields.",
          "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentReasonDisplayFields','name':'addDefaultSalesAmendmentReasonDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
          "deprecated": false
        },
        {
          "name": "SpotTrader",
          "type": "string",
          "flags": "Editable",
          "definition": "The Spot trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ForwardPointsTrader",
          "type": "string",
          "flags": "Editable",
          "definition": "The Forward points trader for a manual mode trade",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ReferenceSpotRate",
          "type": "decimal",
          "flags": "",
          "definition": "This field represents the reference spot bid rate with no client margin applied to it.",
          "example_value": "1.08575",
          "deprecated": false
        },
        {
          "name": "XVATotalAmount",
          "type": "decimal",
          "flags": "",
          "definition": "The sum of all the XVA amounts",
          "example_value": "15",
          "deprecated": false
        },
        {
          "name": "XVANetProfit",
          "type": "decimal",
          "flags": "",
          "definition": "Calculated as the (total profit - xva total amount)",
          "example_value": "14.12",
          "deprecated": false
        },
        {
          "name": "AmendmentSummaryDisplayFields",
          "type": "string",
          "flags": "",
          "definition": "Configuration to display amended details for a trade.",
          "example_value": "method={'import':'static com.caplin.motif.fx.config.DefaultDisplayFields.addDefaultSalesAmendmentSummaryDisplayFields','name':'addDefaultSalesAmendmentSummaryDisplayFields','comment':'See DefaultDisplayFields javadoc for parameters and available builder methods.'}",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "NettedLegSalesTradeConfirmationFields",
      "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef.NettedLegSalesTradeConfirmationFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfTypesDef.NettedLegSalesTradeConfirmationFields.html",
      "parts": [
        {
          "part_name": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "Ln_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "Ln_C2_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
                }
              ]
            },
            {
              "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": "Ln_TraderRemarks[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": "Ln_TraderRemarks[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": "Ln_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_TraderRemarks[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": "Ln_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "Ln_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "Ln_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "Ln_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": "Ln_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "Ln_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "Ln_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "Ln_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "Ln_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "SalesLegTradeConfirmationFields",
          "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesLegTradeConfirmationFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesLegTradeConfirmationFields.html",
          "parts": [
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_In_C1_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_C1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_C1_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
                }
              ]
            },
            {
              "part_name": "SalesSyntheticComponentLegTradeConfirmationFields",
              "java_class": "com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradeconfirmation/TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields.html",
              "fields": [
                {
                  "name": "Ln_In_C2_AllInRateDPS",
                  "type": "integer",
                  "flags": "",
                  "definition": "The number of decimal places to display after the decimal point.",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_C2_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_C2_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
                }
              ]
            },
            {
              "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": "Ln_In_TraderRemarks[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": "Ln_In_TraderRemarks[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": "Ln_In_TraderRemarks[n]RemarkSource",
                  "type": "string",
                  "flags": "",
                  "definition": "The username of the person who left a remark on a trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_TraderRemarks[n]RemarkOriginStatus",
                  "type": "string",
                  "flags": "",
                  "definition": "Additional remark field pointing at the previous status of the trade.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_TraderRemarks[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": "Ln_In_TraderAllInRate",
              "type": "decimal",
              "flags": "",
              "definition": "The all-in rate, with no client margin applied to it",
              "example_value": "1.005390",
              "deprecated": false
            },
            {
              "name": "Ln_In_TraderFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The forward points with no client margin applied to them.",
              "example_value": "0.005390",
              "deprecated": false
            },
            {
              "name": "Ln_In_FwdMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The Forward margin that the user has selected. This field should be sent raw and unformatted.",
              "example_value": "0.000019",
              "deprecated": false
            },
            {
              "name": "Ln_In_AllInMargin",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The sales user's selected SpotMargin added to the sales user's selected L1_FwdMargin.",
              "example_value": "0.00054",
              "deprecated": false
            },
            {
              "name": "Ln_In_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": "Ln_In_TraderOriginalRate",
              "type": "decimal",
              "flags": "",
              "definition": "The TraderRate of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_OriginalMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The Margin of the trade that this trade was created from.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_AdjustedTraderSwapPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The trader swap points adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_AdjustedSwapMargin",
              "type": "decimal",
              "flags": "",
              "definition": "The swap margin adjusted for this repriced trade",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Ln_In_ReferenceFwdPoints",
              "type": "decimal",
              "flags": "",
              "definition": "This field represents the reference fwd points with no client margin applied to it.",
              "example_value": "1.08575",
              "deprecated": false
            },
            {
              "name": "Ln_In_XVAAmount",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA amount on a TradeConfirmation",
              "example_value": "5",
              "deprecated": false
            },
            {
              "name": "Ln_In_XVAPoints",
              "type": "decimal",
              "flags": "",
              "definition": "The XVA points on a TradeConfirmation",
              "example_value": "0.000002",
              "deprecated": false
            },
            {
              "name": "Ln_In_AskDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The ask discount factor value",
              "example_value": "1.2",
              "deprecated": false
            },
            {
              "name": "Ln_In_BidDiscountFactor",
              "type": "decimal",
              "flags": "",
              "definition": "The bid discount factor value",
              "example_value": "1.2",
              "deprecated": false
            }
          ]
        }
      ]
    }
  ]
}
```

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

Instantiation pattern: Static Factory Method (via `TradeConfTypesDef.AllocationSalesConfirmation.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 AllocationSalesConfirmationExample {
    public static void main(String[] args) {
                    		
		TradeConfTypesDef.AllocationSalesConfirmation allocationSalesConfirmation =
		TradeConfTypesDef.AllocationSalesConfirmation
			.newBuilder()
			.addSalesNettedLegConfirmationFields(
			TradeConfTypesDef.NettedLegSalesTradeConfirmationFields
				.newBuilder()
				.addSalesInputLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.addTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.setRemarkDateTime("2018-03-16T07:25:16+00:00")
						.setRemarkOriginStatus("")
						.setRemarkSource("")
						.setRemarkTargetStatus("")
						.setRemarks("")
						.build())
					.setAdjustedSwapMargin(BigDecimal.valueOf(0.0))
					.setAdjustedTraderSwapPoints("")
					.setAllInMargin("0.00054")
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor("1.2")
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints("0.005390")
						.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setFwdMargin("0.000019")
					.setFwdMarginEditable()
					.setOriginalMargin(BigDecimal.valueOf(0.0))
					.setReferenceFwdPoints(BigDecimal.valueOf(0.0))
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTraderAllInRate(BigDecimal.valueOf(1.005390))
					.setTraderFwdPoints(BigDecimal.valueOf(0.005390))
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setSalesNettedLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.build())
				.build())
			.setAllocationConfirmation(
			TradeConfTypesDef.AllocationConfirmation
				.newBuilder()
				.addAllocationNettedLegTradeConfirmationFields(
				TradeConfTypesDef.AllocationNettedLegTradeConfirmationFields
					.newBuilder()
					.addAllocationInputLegTradeConfirmationFields(
					TradeConfPartsDef.AllocationLegTradeConfirmationFields
						.newBuilder()
						.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
						.setMarkToMarket("12.45")
						.build())
					.setAllocationNettedLegTradeConfirmation(
					TradeConfPartsDef.AllocationLegTradeConfirmationFields
						.newBuilder()
						.build())
					.build())
				.addNettedLegTradeConfirmationFields(
				TradeConfTypesDef.NettedLegTradeConfirmationFields
					.newBuilder()
					.addInputLegSwapPartnerTradeConfirmation(
					TradeConfPartsDef.SwapPartnerLegTradeConfirmationFields
						.newBuilder()
						.setSwapPartnerInputLegID(0)
						.setSwapPartnerNettedLegID("")
						.build())
					.addInputLegTradeConfirmation(
					TradeConfPartsDef.LegTradeConfirmationFields
						.newBuilder()
						.addRemarks(
						TradeConfPartsDef.RemarksEntry
							.newBuilder()
							.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())
					.addInputNDFLegTradeConfirmation(
					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())
					.setIsReprice("")
					.setNdfNettedLegTradeConfirmation(
					TradeConfPartsDef.NDFLegTradeConfirmationFields
						.newBuilder()
						.build())
					.setNettedLegTradeConfirmation(
					TradeConfPartsDef.LegTradeConfirmationFields
						.newBuilder()
						.build())
					.build())
				.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")
					.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())
				.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
				.setNdfFields(
				TradeConfPartsDef.NDFTradeConfirmationFields
					.newBuilder()
					.setFixingSource("WMR 8am London Time")
					.setLocationType("")
					.setSettlementCurrency("GBP")
					.build())
				.setNetFields(
				TradeConfPartsDef.NetConfirmationFields
					.newBuilder()
					.setNetBuySell("")
					.setNetContraAmount("1123400")
					.setNetDealtAmount(BigDecimal.valueOf(1000000))
					.build())
				.setNettedAmount(BigDecimal.valueOf(0.0))
				.build())
			.setSalesCommonTradeConfirmationFields(
			TradeConfPartsDef.SalesCommonTradeConfirmationFields
				.newBuilder()
				.setAmendmentReasonDisplayFields(arg)
				.setAmendmentSummaryDisplayFields("")
				.setCompetition("")
				.setComponent1(
				TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
					.newBuilder()
					.setCurrencyPair("")
					.setDigitsBeforePips(2)
					.setNumberOfPips("2")
					.setSpotMidRate("1.08345")
					.setSpotRateDPS(5)
					.setTraderSpotRate("1.09174")
					.build())
				.setComponent2(
				TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
					.newBuilder()
					.build())
				.setExternalRemarks("")
				.setForwardPointsTrader("")
				.setForwardPointsTraderEditable()
				.setIsAdvised(true)
				.setProfit("1000")
				.setProfitCurrency("USD")
				.setProfitCurrencyDPS(5)
				.setProfitIsHouse("")
				.setProfitRate("1.091790")
				.setReasons("Customer Initiated")
				.setReferenceSpotRate("")
				.setSource("WMR 8am London Time")
				.setSpotMargin("", true)
				.setSpotMarginEditable()
				.setSpotTrader("")
				.setSpotTraderEditable()
				.setStreamingMode("MANUAL, STREAMING")
				.setSyntheticCrossCurrency("GBP")
				.setTraderSpotRate("1.09174")
				.setXVANetProfit("14.12")
				.setXVATotalAmount(BigDecimal.valueOf(15))
				.build())
			.build();
            
    }
}
```


### Event: Warning (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Warning",
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.warning.WarningPartsDef.Warning",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/warning/WarningPartsDef.Warning.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/warning/WarningPartsDef/WarningExample.html",
  "fields": [
    {
      "name": "WarningType",
      "type": "string",
      "flags": "",
      "definition": "The type of a warning message. Caplin supported warning types are [AMEND_REASON, GENERIC]. See the constants defined within com.caplin.motif.fx.trading.WarningTypes.",
      "example_value": "Generic",
      "deprecated": false
    },
    {
      "name": "WarningTitle",
      "type": "string",
      "flags": "",
      "definition": "The title of a warning message. Supports strings and i18n tokens.",
      "example_value": "Credit Check",
      "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
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.warning.WarningPartsDef.Warning](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/warning/WarningPartsDef.Warning.html)

Instantiation pattern: Static Factory Method (via `WarningPartsDef.Warning.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.warning.WarningPartsDef; 

import com.caplin.generated.motif.fx.warning.WarningPartsDef;

public class WarningExample {
    public static void main(String[] args) {
                    		
		WarningPartsDef.Warning warning =
		WarningPartsDef.Warning
			.newBuilder()
			.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
			.setWarningTitle("Credit Check")
			.setWarningType("Generic")
			.build();
            
    }
}
```

### Event: Withdraw (server)

Message specification:

```json
{
  "trade_model_name": "Allocate",
  "trade_model_trigger": "Withdraw",
  "message_origin": "server"
}
```
