# FX blotter records

This page describes the FX API's FX blotter records.

This documentation is for the FX Integration API 12.10.0.

## FX order blotter record

The message specification for a record in the FX order blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.OrderBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.OrderBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/orders/OrderBlotterTypesDef/OrderBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "AmountDPS",
          "type": "integer",
          "flags": "",
          "definition": "The precision for a specified currency pair and dealt currency",
          "example_value": "2",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "CommonFields",
      "java_class": "com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef.CommonFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderDetailsPartsDef.CommonFields.html",
      "fields": [
        {
          "name": "CurrencyPair",
          "type": "string",
          "flags": "Editable",
          "definition": "The currency pair for the trade. For example, EURUSD",
          "example_value": "",
          "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": "AllowedActions",
          "type": "string",
          "flags": "",
          "definition": "Comma separated list of Caplin supported values. See the constants defined within com.caplin.motif.fx.orders.AllowedActions",
          "example_value": "View,AuditTrail,Cancel,Deactivate,Duplicate,Edit",
          "deprecated": false
        },
        {
          "name": "ActivationType",
          "type": "string",
          "flags": "Editable",
          "definition": "How the order should be activated. Caplin supported statuses are [GFA, EXPLICIT]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ActivationDateTime",
          "type": "datetime",
          "flags": "Editable",
          "definition": "The time and date the order will become active. This is in ISO-8601 format.",
          "example_value": "2013-07-24T17:13:59.985",
          "deprecated": false
        },
        {
          "name": "ActivationDisplayTimeZone",
          "type": "timezone",
          "flags": "Editable",
          "definition": "The timezone that the activation time and date should be formatted to for display. This is in the TZ database format.",
          "example_value": "Europe/London",
          "deprecated": false
        },
        {
          "name": "ExpirationType",
          "type": "string",
          "flags": "Editable",
          "definition": "How the order should be deactivated. Caplin supported statuses are [IOC, GTC, GFD, FOK, EXPLICIT]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ExpirationDateTime",
          "type": "datetime",
          "flags": "Editable",
          "definition": "The time and date the order will be deactivated. This is in ISO-8601 format.",
          "example_value": "2013-07-24T17:13:59.985",
          "deprecated": false
        },
        {
          "name": "ExpirationDisplayTimeZone",
          "type": "timezone",
          "flags": "Editable",
          "definition": "The timezone that the expiration time and date should be formatted to for display. This is in the TZ database format.",
          "example_value": "Europe/London",
          "deprecated": false
        },
        {
          "name": "AlertType",
          "type": "string",
          "flags": "Editable",
          "definition": "The type of alert that an order will send. Caplin supported statuses are [EMAIL, SMS].",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "StrategyID",
          "type": "string",
          "flags": "",
          "definition": "The strategy Id of the order.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "StrategyType",
          "type": "string",
          "flags": "Editable",
          "definition": "The strategy the order was submitted with. This field should not be used by the front end for structuring orders. Comma separated list of Caplin supported values are [SINGLE, IF-DONE-OCO, OCO, IF-DONE, IF-TIMEOUT, IF-DONE-LOOP, LOOP]. OTHER denotes a strategy type that is unsupported.",
          "example_value": "",
          "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",
          "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": "OrderCount",
          "type": "integer",
          "flags": "",
          "definition": "",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "OrderID",
          "type": "string",
          "flags": "",
          "definition": "The id of the order.",
          "example_value": "000012345",
          "deprecated": false
        },
        {
          "name": "ActivationDate",
          "type": "string",
          "flags": "Editable",
          "definition": "What date the strategy should be activated.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ActivationTime",
          "type": "string",
          "flags": "Editable",
          "definition": "What time the strategy should be activated if the ActivationDate was in the format of yyyymmdd.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ActivationLocation",
          "type": "string",
          "flags": "Editable",
          "definition": "When location should be used to evaluate the time to activate if the ActivationDate was in the format of yyyymmdd.",
          "example_value": "Europe/London",
          "deprecated": false
        },
        {
          "name": "ActivationUTCOffset",
          "type": "string",
          "flags": "Editable",
          "definition": "",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ExpirationDate",
          "type": "string",
          "flags": "Editable",
          "definition": "What date the strategy should expire.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ExpirationTime",
          "type": "string",
          "flags": "Editable",
          "definition": "What time the strategy should be activated if the ExpirationDate was in the format of yyyymmdd.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ExpirationLocation",
          "type": "string",
          "flags": "Editable",
          "definition": "When location should be used to evaluate the time to expire if the ExpirationDate was in the format of yyyymmdd.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "ExpirationUTCOffset",
          "type": "string",
          "flags": "Editable",
          "definition": "",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Temperature",
          "type": "string",
          "flags": "",
          "definition": "Shows how close an Order is to its trigger point at the leg level. Shows the maximum of the leg temperatures at the common level [1=cold,2=warm,3=hot,4=very hot,5=target rate reached].",
          "example_value": "2",
          "deprecated": false
        },
        {
          "name": "SubmittedDateTime",
          "type": "datetime",
          "flags": "",
          "definition": "The time and date a trade or order was submitted",
          "example_value": "2023-04-19T11:09:45.00Z",
          "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": "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": "OrderRateDPS",
          "type": "integer",
          "flags": "",
          "definition": "The precision to use for order rate information.",
          "example_value": "5",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "LegFields",
      "java_class": "com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef.LegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderDetailsPartsDef.LegFields.html",
      "fields": [
        {
          "name": "Editable",
          "type": "boolean",
          "flags": "",
          "definition": "Whether a trade or order is editable.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "OrderID",
          "type": "string",
          "flags": "",
          "definition": "The id of the order.",
          "example_value": "000012345",
          "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": "OrderStatus",
          "type": "string",
          "flags": "",
          "definition": "Caplin supported statuses are [PENDING-ACCEPT, PENDING-ACTIVATION, PENDING-CONFIRMATION, ACTIVE, PARENT-ACTIVE, PENDING-DEACTIVATION, DEACTIVATED, EXPIRED, COMPLETED, REJECTED, PENDING-CANCEL, CANCELLED, CANCELLED-BY-PARTNER]",
          "example_value": "ACTIVE",
          "deprecated": false
        },
        {
          "name": "SubmittedDateTime",
          "type": "datetime",
          "flags": "",
          "definition": "The time and date a trade or order was submitted",
          "example_value": "2023-04-19T11:09:45.00Z",
          "deprecated": false
        },
        {
          "name": "LastActionBy",
          "type": "string",
          "flags": "",
          "definition": "The last person or system to perform an action on an order.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "LastActionDateTime",
          "type": "datetime",
          "flags": "",
          "definition": "The time and date of the last action on an order.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Amount",
          "type": "decimal",
          "flags": "Editable",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Filled",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of an order that has been filled.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Remaining",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of an order that has not been filled.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "MonitorSide",
          "type": "string",
          "flags": "Editable",
          "definition": "The side that should be monitored for an order to be triggered.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "DealtCurrency",
          "type": "string",
          "flags": "Editable",
          "definition": "The currency of the Amount of a trade or order.",
          "example_value": "GBP",
          "deprecated": false
        },
        {
          "name": "BuySell",
          "type": "string",
          "flags": "Editable",
          "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": "ExecutionType",
          "type": "string",
          "flags": "Editable",
          "definition": "The order type. Caplin supported types are [BENCHMARK, CALL-ORDER, MARKET, PEGGED, STOP-LOSS, TAKE-PROFIT]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BenchmarkType",
          "type": "string",
          "flags": "Editable",
          "definition": "The benchmark order name. For example, ECB.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BenchmarkTime",
          "type": "time",
          "flags": "Editable",
          "definition": "The fixing time of the benchmark in ISO-8601 format",
          "example_value": "18:00",
          "deprecated": false
        },
        {
          "name": "BenchmarkDate",
          "type": "date",
          "flags": "Editable",
          "definition": "The fixing date of the benchmark in ISO-8601 format",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "BenchmarkTimeZone",
          "type": "timezone",
          "flags": "Editable",
          "definition": "The TZ format timezone for the provided time and date",
          "example_value": "Europe/London",
          "deprecated": false
        },
        {
          "name": "LimitPrice",
          "type": "decimal",
          "flags": "Editable",
          "definition": "The price at which a leg should fill.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Remarks",
          "type": "string",
          "flags": "Editable",
          "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": "ChildLegId",
          "type": "integer",
          "flags": "Editable",
          "definition": "The id of the child leg, if the order has a child leg",
          "example_value": "1",
          "deprecated": false
        },
        {
          "name": "ChildRelationship",
          "type": "string",
          "flags": "Editable",
          "definition": "Describes the relationship with the child if it exists.",
          "example_value": "IF-DONE",
          "deprecated": false
        },
        {
          "name": "PartnerLegId",
          "type": "integer",
          "flags": "Editable",
          "definition": "The id of the partner leg, if the order has a partner leg",
          "example_value": "1",
          "deprecated": false
        },
        {
          "name": "PartnerRelationship",
          "type": "string",
          "flags": "Editable",
          "definition": "Describes the relationship with the partner leg if it exists.",
          "example_value": "OCO",
          "deprecated": false
        },
        {
          "name": "LoopLegId",
          "type": "integer",
          "flags": "Editable",
          "definition": "The leg to loop back to upon completion.",
          "example_value": "1",
          "deprecated": false
        },
        {
          "name": "FillRate",
          "type": "string",
          "flags": "Editable",
          "definition": "",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "OrderTenor",
          "type": "string",
          "flags": "Editable",
          "definition": "The tenor the order will settle on for Forward and NDF orders. Either OrderTenor or OrderSettlementDate should be provided but not both.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "OrderSettlementDate",
          "type": "date",
          "flags": "Editable",
          "definition": "The settlement date the order will settle on for Forward and NDF orders. Either OrderTenor or OrderSettlementDate should be provided but not both.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "OrderFixingDate",
          "type": "date",
          "flags": "",
          "definition": "The date an NDF order will fix on if filled.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Temperature",
          "type": "string",
          "flags": "",
          "definition": "Shows how close an Order is to its trigger point at the leg level. Shows the maximum of the leg temperatures at the common level [1=cold,2=warm,3=hot,4=very hot,5=target rate reached].",
          "example_value": "2",
          "deprecated": false
        },
        {
          "name": "FilledRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate at which an order has been filled.",
          "example_value": "123.012345",
          "deprecated": false
        },
        {
          "name": "OrderType",
          "type": "string",
          "flags": "",
          "definition": "The order execution type. Caplin supported types are TAKE-PROFIT, STOP-LOSS, CALL-ORDER, MARKET, BENCHMARK, MARKET, PEGGED.",
          "example_value": "TAKE-PROFIT, STOP-LOSS",
          "deprecated": false
        },
        {
          "name": "FillID",
          "type": "string",
          "flags": "",
          "definition": "The Trade ID of the trade created when an order is fully filled by a single fill.",
          "example_value": "00001561",
          "deprecated": false
        },
        {
          "name": "Trigger",
          "type": "string",
          "flags": "",
          "definition": "The trigger type for the order",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "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": "AllowPartialFill",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the order leg can be partially filled",
          "example_value": "",
          "deprecated": false
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.OrderBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.OrderBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `OrderBlotterTypesDef.OrderBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.orders.OrderBlotterTypesDef; 

import java.math.BigInteger;
import java.time.ZoneId;
import static com.caplin.motif.fx.config.definitions.common.Tag;

import com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef;
import com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef;

public class OrderBlotterRecordExample {
    public static void main(String[] args) {
                    		
		OrderBlotterTypesDef.OrderBlotterRecord orderBlotterRecord =
		OrderBlotterTypesDef.OrderBlotterRecord
			.newBuilder()
			.setCommonBlotterFields(
			OrderBlotterTypesDef.CommonBlotterFields
				.newBuilder()
				.setAmountDPS("2")
				.build())
			.setCommonFields(
			OrderDetailsPartsDef.CommonFields
				.newBuilder()
				.setAccount("", true)
				.setAccountEditable()
				.setActivationDate("", true)
				.setActivationDateEditable()
				.setActivationDateTime("2013-07-24T17:13:59.985")
				.setActivationDateTimeEditable()
				.setActivationDisplayTimeZone(ZoneId.systemDefault())
				.setActivationDisplayTimeZoneEditable()
				.setActivationLocation("Europe/London")
				.setActivationLocationEditable()
				.setActivationTime("", true)
				.setActivationTimeEditable()
				.setActivationType("")
				.setActivationTypeEditable()
				.setActivationUTCOffset("")
				.setActivationUTCOffsetEditable()
				.setAlertType("", true)
				.setAlertTypeEditable()
				.setAllowedActions("View,AuditTrail,Cancel,Deactivate,Duplicate,Edit")
				.setCurrencyPair("", true)
				.setCurrencyPairEditable()
				.setEntityDescription("Customer 1")
				.setEntityId("CUSTONE")
				.setExpirationDate("")
				.setExpirationDateEditable()
				.setExpirationDateTime(Instant.now(), true)
				.setExpirationDateTimeEditable()
				.setExpirationDisplayTimeZone(ZoneId.systemDefault(), true)
				.setExpirationDisplayTimeZoneEditable()
				.setExpirationLocation("", true)
				.setExpirationLocationEditable()
				.setExpirationTime("", true)
				.setExpirationTimeEditable()
				.setExpirationType("")
				.setExpirationTypeEditable()
				.setExpirationUTCOffset("")
				.setExpirationUTCOffsetEditable()
				.setFixingSource("WMR 8am London Time")
				.setFullName("")
				.setOrderCount("")
				.setOrderID("000012345")
				.setOrderRateDPS("5")
				.setSettlementCurrency("GBP")
				.setStrategyID("")
				.setStrategyType("")
				.setStrategyTypeEditable()
				.setSubmittedDateTime("2023-04-19T11:09:45.00Z")
				.setTOBOUser("client@customer.co.za")
				.setTOBOUserEditable()
				.setTags(Arrays.asList(/* ... */))
				.setTemperature("2")
				.setTraderUsername("sales_trader@novobank.co.za")
				.build())
			.setLegFields(
			OrderDetailsPartsDef.LegFields
				.newBuilder()
				.setAllowPartialFill(true)
				.setAmount(BigDecimal.valueOf(0.0), true)
				.setAmountEditable()
				.setBenchmarkDate(LocalDate.now())
				.setBenchmarkDateEditable()
				.setBenchmarkTime("18:00")
				.setBenchmarkTimeEditable()
				.setBenchmarkTimeZone("Europe/London")
				.setBenchmarkTimeZoneEditable()
				.setBenchmarkType("")
				.setBenchmarkTypeEditable()
				.setBuySell("", true)
				.setBuySellEditable()
				.setChildLegId(1)
				.setChildLegIdEditable()
				.setChildRelationship("IF-DONE")
				.setChildRelationshipEditable()
				.setDealtCurrency("GBP")
				.setDealtCurrencyEditable()
				.setEditable(true)
				.setExecutionType("")
				.setExecutionTypeEditable()
				.setFillID("00001561")
				.setFillRate("", true)
				.setFillRateEditable()
				.setFilled(BigDecimal.valueOf(0.0))
				.setFilledRate("123.012345")
				.setLastActionBy("")
				.setLastActionDateTime("")
				.setLimitPrice(BigDecimal.valueOf(0.0), true)
				.setLimitPriceEditable()
				.setLoopLegId("1")
				.setLoopLegIdEditable()
				.setMonitorSide("", true)
				.setMonitorSideEditable()
				.setOrderFixingDate("")
				.setOrderID("000012345")
				.setOrderSettlementDate("", true)
				.setOrderSettlementDateEditable()
				.setOrderStatus("ACTIVE")
				.setOrderTenor("")
				.setOrderTenorEditable()
				.setOrderType("TAKE-PROFIT, STOP-LOSS")
				.setPartnerLegId("1")
				.setPartnerLegIdEditable()
				.setPartnerRelationship("", true)
				.setPartnerRelationshipEditable()
				.setRemaining("")
				.setRemarks("")
				.setRemarksEditable()
				.setSettlementDate("20160314")
				.setStatus("Completed")
				.setStatusCategory("SUCCESS")
				.setStatusIsFinal("true")
				.setSubmittedDateTime(Instant.now())
				.setTemperature("2")
				.setTrigger("")
				.build())
			.build();
            
    }
}
```

## FX sales order blotter record

The message specification for a record in the FX order blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.SalesOrderBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.SalesOrderBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/orders/OrderBlotterTypesDef/SalesOrderBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "OrderBlotterRecord",
      "java_class": "com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.OrderBlotterRecord",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.OrderBlotterRecord.html",
      "parts": [
        {
          "part_name": "CommonBlotterFields",
          "java_class": "com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.CommonBlotterFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.CommonBlotterFields.html",
          "fields": [
            {
              "name": "AmountDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision for a specified currency pair and dealt currency",
              "example_value": "2",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "CommonFields",
          "java_class": "com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef.CommonFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderDetailsPartsDef.CommonFields.html",
          "fields": [
            {
              "name": "CurrencyPair",
              "type": "string",
              "flags": "Editable",
              "definition": "The currency pair for the trade. For example, EURUSD",
              "example_value": "",
              "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": "AllowedActions",
              "type": "string",
              "flags": "",
              "definition": "Comma separated list of Caplin supported values. See the constants defined within com.caplin.motif.fx.orders.AllowedActions",
              "example_value": "View,AuditTrail,Cancel,Deactivate,Duplicate,Edit",
              "deprecated": false
            },
            {
              "name": "ActivationType",
              "type": "string",
              "flags": "Editable",
              "definition": "How the order should be activated. Caplin supported statuses are [GFA, EXPLICIT]",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ActivationDateTime",
              "type": "datetime",
              "flags": "Editable",
              "definition": "The time and date the order will become active. This is in ISO-8601 format.",
              "example_value": "2013-07-24T17:13:59.985",
              "deprecated": false
            },
            {
              "name": "ActivationDisplayTimeZone",
              "type": "timezone",
              "flags": "Editable",
              "definition": "The timezone that the activation time and date should be formatted to for display. This is in the TZ database format.",
              "example_value": "Europe/London",
              "deprecated": false
            },
            {
              "name": "ExpirationType",
              "type": "string",
              "flags": "Editable",
              "definition": "How the order should be deactivated. Caplin supported statuses are [IOC, GTC, GFD, FOK, EXPLICIT]",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ExpirationDateTime",
              "type": "datetime",
              "flags": "Editable",
              "definition": "The time and date the order will be deactivated. This is in ISO-8601 format.",
              "example_value": "2013-07-24T17:13:59.985",
              "deprecated": false
            },
            {
              "name": "ExpirationDisplayTimeZone",
              "type": "timezone",
              "flags": "Editable",
              "definition": "The timezone that the expiration time and date should be formatted to for display. This is in the TZ database format.",
              "example_value": "Europe/London",
              "deprecated": false
            },
            {
              "name": "AlertType",
              "type": "string",
              "flags": "Editable",
              "definition": "The type of alert that an order will send. Caplin supported statuses are [EMAIL, SMS].",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "StrategyID",
              "type": "string",
              "flags": "",
              "definition": "The strategy Id of the order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "StrategyType",
              "type": "string",
              "flags": "Editable",
              "definition": "The strategy the order was submitted with. This field should not be used by the front end for structuring orders. Comma separated list of Caplin supported values are [SINGLE, IF-DONE-OCO, OCO, IF-DONE, IF-TIMEOUT, IF-DONE-LOOP, LOOP]. OTHER denotes a strategy type that is unsupported.",
              "example_value": "",
              "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",
              "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": "OrderCount",
              "type": "integer",
              "flags": "",
              "definition": "",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OrderID",
              "type": "string",
              "flags": "",
              "definition": "The id of the order.",
              "example_value": "000012345",
              "deprecated": false
            },
            {
              "name": "ActivationDate",
              "type": "string",
              "flags": "Editable",
              "definition": "What date the strategy should be activated.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ActivationTime",
              "type": "string",
              "flags": "Editable",
              "definition": "What time the strategy should be activated if the ActivationDate was in the format of yyyymmdd.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ActivationLocation",
              "type": "string",
              "flags": "Editable",
              "definition": "When location should be used to evaluate the time to activate if the ActivationDate was in the format of yyyymmdd.",
              "example_value": "Europe/London",
              "deprecated": false
            },
            {
              "name": "ActivationUTCOffset",
              "type": "string",
              "flags": "Editable",
              "definition": "",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ExpirationDate",
              "type": "string",
              "flags": "Editable",
              "definition": "What date the strategy should expire.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ExpirationTime",
              "type": "string",
              "flags": "Editable",
              "definition": "What time the strategy should be activated if the ExpirationDate was in the format of yyyymmdd.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ExpirationLocation",
              "type": "string",
              "flags": "Editable",
              "definition": "When location should be used to evaluate the time to expire if the ExpirationDate was in the format of yyyymmdd.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "ExpirationUTCOffset",
              "type": "string",
              "flags": "Editable",
              "definition": "",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Temperature",
              "type": "string",
              "flags": "",
              "definition": "Shows how close an Order is to its trigger point at the leg level. Shows the maximum of the leg temperatures at the common level [1=cold,2=warm,3=hot,4=very hot,5=target rate reached].",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "SubmittedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date a trade or order was submitted",
              "example_value": "2023-04-19T11:09:45.00Z",
              "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": "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": "OrderRateDPS",
              "type": "integer",
              "flags": "",
              "definition": "The precision to use for order rate information.",
              "example_value": "5",
              "deprecated": false
            }
          ]
        },
        {
          "part_name": "LegFields",
          "java_class": "com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef.LegFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderDetailsPartsDef.LegFields.html",
          "fields": [
            {
              "name": "Editable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade or order is editable.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OrderID",
              "type": "string",
              "flags": "",
              "definition": "The id of the order.",
              "example_value": "000012345",
              "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": "OrderStatus",
              "type": "string",
              "flags": "",
              "definition": "Caplin supported statuses are [PENDING-ACCEPT, PENDING-ACTIVATION, PENDING-CONFIRMATION, ACTIVE, PARENT-ACTIVE, PENDING-DEACTIVATION, DEACTIVATED, EXPIRED, COMPLETED, REJECTED, PENDING-CANCEL, CANCELLED, CANCELLED-BY-PARTNER]",
              "example_value": "ACTIVE",
              "deprecated": false
            },
            {
              "name": "SubmittedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date a trade or order was submitted",
              "example_value": "2023-04-19T11:09:45.00Z",
              "deprecated": false
            },
            {
              "name": "LastActionBy",
              "type": "string",
              "flags": "",
              "definition": "The last person or system to perform an action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "LastActionDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date of the last action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Amount",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Filled",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of an order that has been filled.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Remaining",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of an order that has not been filled.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "MonitorSide",
              "type": "string",
              "flags": "Editable",
              "definition": "The side that should be monitored for an order to be triggered.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "DealtCurrency",
              "type": "string",
              "flags": "Editable",
              "definition": "The currency of the Amount of a trade or order.",
              "example_value": "GBP",
              "deprecated": false
            },
            {
              "name": "BuySell",
              "type": "string",
              "flags": "Editable",
              "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": "ExecutionType",
              "type": "string",
              "flags": "Editable",
              "definition": "The order type. Caplin supported types are [BENCHMARK, CALL-ORDER, MARKET, PEGGED, STOP-LOSS, TAKE-PROFIT]",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BenchmarkType",
              "type": "string",
              "flags": "Editable",
              "definition": "The benchmark order name. For example, ECB.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BenchmarkTime",
              "type": "time",
              "flags": "Editable",
              "definition": "The fixing time of the benchmark in ISO-8601 format",
              "example_value": "18:00",
              "deprecated": false
            },
            {
              "name": "BenchmarkDate",
              "type": "date",
              "flags": "Editable",
              "definition": "The fixing date of the benchmark in ISO-8601 format",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "BenchmarkTimeZone",
              "type": "timezone",
              "flags": "Editable",
              "definition": "The TZ format timezone for the provided time and date",
              "example_value": "Europe/London",
              "deprecated": false
            },
            {
              "name": "LimitPrice",
              "type": "decimal",
              "flags": "Editable",
              "definition": "The price at which a leg should fill.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Remarks",
              "type": "string",
              "flags": "Editable",
              "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": "ChildLegId",
              "type": "integer",
              "flags": "Editable",
              "definition": "The id of the child leg, if the order has a child leg",
              "example_value": "1",
              "deprecated": false
            },
            {
              "name": "ChildRelationship",
              "type": "string",
              "flags": "Editable",
              "definition": "Describes the relationship with the child if it exists.",
              "example_value": "IF-DONE",
              "deprecated": false
            },
            {
              "name": "PartnerLegId",
              "type": "integer",
              "flags": "Editable",
              "definition": "The id of the partner leg, if the order has a partner leg",
              "example_value": "1",
              "deprecated": false
            },
            {
              "name": "PartnerRelationship",
              "type": "string",
              "flags": "Editable",
              "definition": "Describes the relationship with the partner leg if it exists.",
              "example_value": "OCO",
              "deprecated": false
            },
            {
              "name": "LoopLegId",
              "type": "integer",
              "flags": "Editable",
              "definition": "The leg to loop back to upon completion.",
              "example_value": "1",
              "deprecated": false
            },
            {
              "name": "FillRate",
              "type": "string",
              "flags": "Editable",
              "definition": "",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OrderTenor",
              "type": "string",
              "flags": "Editable",
              "definition": "The tenor the order will settle on for Forward and NDF orders. Either OrderTenor or OrderSettlementDate should be provided but not both.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OrderSettlementDate",
              "type": "date",
              "flags": "Editable",
              "definition": "The settlement date the order will settle on for Forward and NDF orders. Either OrderTenor or OrderSettlementDate should be provided but not both.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "OrderFixingDate",
              "type": "date",
              "flags": "",
              "definition": "The date an NDF order will fix on if filled.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "Temperature",
              "type": "string",
              "flags": "",
              "definition": "Shows how close an Order is to its trigger point at the leg level. Shows the maximum of the leg temperatures at the common level [1=cold,2=warm,3=hot,4=very hot,5=target rate reached].",
              "example_value": "2",
              "deprecated": false
            },
            {
              "name": "FilledRate",
              "type": "decimal",
              "flags": "",
              "definition": "The rate at which an order has been filled.",
              "example_value": "123.012345",
              "deprecated": false
            },
            {
              "name": "OrderType",
              "type": "string",
              "flags": "",
              "definition": "The order execution type. Caplin supported types are TAKE-PROFIT, STOP-LOSS, CALL-ORDER, MARKET, BENCHMARK, MARKET, PEGGED.",
              "example_value": "TAKE-PROFIT, STOP-LOSS",
              "deprecated": false
            },
            {
              "name": "FillID",
              "type": "string",
              "flags": "",
              "definition": "The Trade ID of the trade created when an order is fully filled by a single fill.",
              "example_value": "00001561",
              "deprecated": false
            },
            {
              "name": "Trigger",
              "type": "string",
              "flags": "",
              "definition": "The trigger type for the order",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "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": "AllowPartialFill",
              "type": "boolean",
              "flags": "",
              "definition": "Indicates whether the order leg can be partially filled",
              "example_value": "",
              "deprecated": false
            }
          ]
        }
      ]
    },
    {
      "part_name": "SalesLegFields",
      "java_class": "com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef.SalesLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/orders/OrderDetailsPartsDef.SalesLegFields.html",
      "fields": [
        {
          "name": "Margin",
          "type": "decimal",
          "flags": "Editable",
          "definition": "The amount of margin",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "Discretion",
          "type": "decimal",
          "flags": "Editable",
          "definition": "Number of points the trader has discretion to fill the order",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "TraderRemarks",
          "type": "string",
          "flags": "Editable",
          "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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef.SalesOrderBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/orders/OrderBlotterTypesDef.SalesOrderBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `OrderBlotterTypesDef.SalesOrderBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.orders.OrderBlotterTypesDef; 

import java.math.BigInteger;
import java.time.ZoneId;
import static com.caplin.motif.fx.config.definitions.common.Tag;

import com.caplin.generated.motif.fx.orders.OrderBlotterTypesDef;
import com.caplin.generated.motif.fx.orders.OrderDetailsPartsDef;

public class SalesOrderBlotterRecordExample {
    public static void main(String[] args) {
                    		
		OrderBlotterTypesDef.SalesOrderBlotterRecord salesOrderBlotterRecord =
		OrderBlotterTypesDef.SalesOrderBlotterRecord
			.newBuilder()
			.setOrderBlotterRecord(
			OrderBlotterTypesDef.OrderBlotterRecord
				.newBuilder()
				.setCommonBlotterFields(
				OrderBlotterTypesDef.CommonBlotterFields
					.newBuilder()
					.setAmountDPS("2")
					.build())
				.setCommonFields(
				OrderDetailsPartsDef.CommonFields
					.newBuilder()
					.setAccount("", true)
					.setAccountEditable()
					.setActivationDate("", true)
					.setActivationDateEditable()
					.setActivationDateTime("2013-07-24T17:13:59.985")
					.setActivationDateTimeEditable()
					.setActivationDisplayTimeZone(ZoneId.systemDefault())
					.setActivationDisplayTimeZoneEditable()
					.setActivationLocation("Europe/London")
					.setActivationLocationEditable()
					.setActivationTime("", true)
					.setActivationTimeEditable()
					.setActivationType("")
					.setActivationTypeEditable()
					.setActivationUTCOffset("")
					.setActivationUTCOffsetEditable()
					.setAlertType("", true)
					.setAlertTypeEditable()
					.setAllowedActions("View,AuditTrail,Cancel,Deactivate,Duplicate,Edit")
					.setCurrencyPair("", true)
					.setCurrencyPairEditable()
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExpirationDate("")
					.setExpirationDateEditable()
					.setExpirationDateTime(Instant.now(), true)
					.setExpirationDateTimeEditable()
					.setExpirationDisplayTimeZone(ZoneId.systemDefault(), true)
					.setExpirationDisplayTimeZoneEditable()
					.setExpirationLocation("", true)
					.setExpirationLocationEditable()
					.setExpirationTime("", true)
					.setExpirationTimeEditable()
					.setExpirationType("")
					.setExpirationTypeEditable()
					.setExpirationUTCOffset("")
					.setExpirationUTCOffsetEditable()
					.setFixingSource("WMR 8am London Time")
					.setFullName("")
					.setOrderCount("")
					.setOrderID("000012345")
					.setOrderRateDPS("5")
					.setSettlementCurrency("GBP")
					.setStrategyID("")
					.setStrategyType("")
					.setStrategyTypeEditable()
					.setSubmittedDateTime("2023-04-19T11:09:45.00Z")
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTags(Arrays.asList(/* ... */))
					.setTemperature("2")
					.setTraderUsername("sales_trader@novobank.co.za")
					.build())
				.setLegFields(
				OrderDetailsPartsDef.LegFields
					.newBuilder()
					.setAllowPartialFill(true)
					.setAmount(BigDecimal.valueOf(0.0), true)
					.setAmountEditable()
					.setBenchmarkDate(LocalDate.now())
					.setBenchmarkDateEditable()
					.setBenchmarkTime("18:00")
					.setBenchmarkTimeEditable()
					.setBenchmarkTimeZone("Europe/London")
					.setBenchmarkTimeZoneEditable()
					.setBenchmarkType("")
					.setBenchmarkTypeEditable()
					.setBuySell("", true)
					.setBuySellEditable()
					.setChildLegId(1)
					.setChildLegIdEditable()
					.setChildRelationship("IF-DONE")
					.setChildRelationshipEditable()
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setEditable(true)
					.setExecutionType("")
					.setExecutionTypeEditable()
					.setFillID("00001561")
					.setFillRate("", true)
					.setFillRateEditable()
					.setFilled(BigDecimal.valueOf(0.0))
					.setFilledRate("123.012345")
					.setLastActionBy("")
					.setLastActionDateTime("")
					.setLimitPrice(BigDecimal.valueOf(0.0), true)
					.setLimitPriceEditable()
					.setLoopLegId("1")
					.setLoopLegIdEditable()
					.setMonitorSide("", true)
					.setMonitorSideEditable()
					.setOrderFixingDate("")
					.setOrderID("000012345")
					.setOrderSettlementDate("", true)
					.setOrderSettlementDateEditable()
					.setOrderStatus("ACTIVE")
					.setOrderTenor("")
					.setOrderTenorEditable()
					.setOrderType("TAKE-PROFIT, STOP-LOSS")
					.setPartnerLegId("1")
					.setPartnerLegIdEditable()
					.setPartnerRelationship("", true)
					.setPartnerRelationshipEditable()
					.setRemaining("")
					.setRemarks("")
					.setRemarksEditable()
					.setSettlementDate("20160314")
					.setStatus("Completed")
					.setStatusCategory("SUCCESS")
					.setStatusIsFinal("true")
					.setSubmittedDateTime(Instant.now())
					.setTemperature("2")
					.setTrigger("")
					.build())
				.build())
			.setSalesLegFields(
			OrderDetailsPartsDef.SalesLegFields
				.newBuilder()
				.setDiscretion("")
				.setDiscretionEditable()
				.setExternalRemarks("")
				.setMargin("1.08341")
				.setMarginEditable()
				.setTraderRemarks("")
				.setTraderRemarksEditable()
				.build())
			.build();
            
    }
}
```

## FX spot trade blotter record

The message specification for an spot-trade record in the FX trade blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SpotBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SpotBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/SpotBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SpotBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SpotBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.SpotBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 SpotBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.SpotBlotterRecord spotBlotterRecord =
		BlotterTypesDef.SpotBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonSpotTradeConfirmation(
			TradeConfTypesDef.CommonSpotTradeConfirmation
				.newBuilder()
				.setCommonFields(
				TradeConfPartsDef.CommonTradeConfirmationFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAccountEditable()
					.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
					.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
					.setAmountDPS(2)
					.setAssetType("")
					.setBackOfficeID("")
					.setCanAllocate("")
					.setCanDrawdown("")
					.setClient("")
					.setClientAgreementDateTime(Instant.now(), true)
					.setClientAgreementDateTimeEditable()
					.setContraAmountDPS(2)
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostCurrencyDPS(2)
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostAmount(BigDecimal.valueOf(12412891.31))
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCostPercentage("13.56")
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setDealtCurrencyRisk()
					.setDeliverableType("DELIVERABLE")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExecutionDateTime("20160322123621")
					.setFullName("")
					.setHasPostTradeHistory("")
					.setIsAllocated("")
					.setIsAmendable("")
					.setIsCancellable(true)
					.setIsCommercial(true)
					.setIsRepriceTrade("")
					.setIsReversible("")
					.setNaturalLanguageSummaryHidden("")
					.setNumberOfPips(2)
					.setOrderID("000012345")
					.setOriginalTradeID("")
					.setPostTradeType("")
					.setPriceSource("st1@caplin.com")
					.setPurpose("Commercial")
					.setRemarks("")
					.setServiceContraCostCurrencyDPS("2")
					.setServiceCostCurrencyDPS(2)
					.setSpotMidRate("1.08345")
					.setSpotRate(BigDecimal.valueOf(1.08341))
					.setSpotRateDPS(5)
					.setStatus("Completed")
					.setStatusCategory("SUCCESS")
					.setStatusIsFinal("true")
					.setTOBOUser("client@customer.co.za")
					.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(BigDecimal.valueOf(1.091790))
					.setAllInRate("1.091790")
					.setAllInRateDPS("5")
					.setAllocatableAmount("500")
					.setAllocatableContraAmount("500")
					.setAmount(BigDecimal.valueOf(0))
					.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(true)
							.setIsDefaultSettlementInstruction("")
							.setNettingStatus("NETTED")
							.setSettlementAmount(BigDecimal.valueOf(0.0))
							.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(Instant.now())
						.setCanAdHoc("")
						.setCanAffirm(true)
						.setCanApproveInstructions(true)
						.setCanAutoConfirm("")
						.setCanCancel("")
						.setCanConfirm("")
						.setCanDispute(true)
						.setCanRejectInstructions(true)
						.setCanRelease("")
						.setCanReplace(true)
						.setCanUnconfirm("")
						.setConfirmedBy("")
						.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
						.setIsPayNetted(true)
						.setIsPayNettingRequired("")
						.setIsPaySplit("")
						.setIsReceiveNetted("")
						.setIsReceiveNettingRequired(true)
						.setIsReceiveSplit(true)
						.setNextActionDeadline(Instant.now())
						.setNextActionDeadlineDisplayTimezone("America/New_York")
						.setSettlementStatus("")
						.build())
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("", true)
					.setStartTenorRisk()
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTenor("1M")
					.setTenorEditable()
					.setTenorRisk()
					.setTradeID("00001561")
					.build())
				.build())
			.build();
            
    }
}
```

## FX sales spot trade blotter record

The message specification for a spot-trade record in the FX trade blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SpotSalesBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SpotSalesBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/SpotSalesBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SpotSalesBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SpotSalesBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.SpotSalesBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 SpotSalesBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.SpotSalesBlotterRecord spotSalesBlotterRecord =
		BlotterTypesDef.SpotSalesBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonSpotSalesTradeConfirmation(
			TradeConfTypesDef.CommonSpotSalesTradeConfirmation
				.newBuilder()
				.setCommonSpotTradeConfirmation(
				TradeConfTypesDef.CommonSpotTradeConfirmation
					.newBuilder()
					.setCommonFields(
					TradeConfPartsDef.CommonTradeConfirmationFields
						.newBuilder()
						.setAccount("Garfields|GARF")
						.setAccountEditable()
						.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
						.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
						.setAmountDPS(2)
						.setAssetType("")
						.setBackOfficeID("")
						.setCanAllocate("")
						.setCanDrawdown("")
						.setClient("")
						.setClientAgreementDateTime(Instant.now(), true)
						.setClientAgreementDateTimeEditable()
						.setContraAmountDPS(2)
						.setContraCostAmount(BigDecimal.valueOf(0.0))
						.setContraCostCurrency("GBP")
						.setContraCostCurrencyDPS(2)
						.setContraCostPercentage(BigDecimal.valueOf(13.56))
						.setCostAmount(BigDecimal.valueOf(12412891.31))
						.setCostCurrency("GBP")
						.setCostCurrencyDPS("2")
						.setCostPercentage("13.56")
						.setCurrencyPair("")
						.setDealtCurrency("GBP")
						.setDealtCurrencyEditable()
						.setDealtCurrencyRisk()
						.setDeliverableType("DELIVERABLE")
						.setDetailedWarningMessage("")
						.setDigitsBeforePips("2")
						.setEntityDescription("Customer 1")
						.setEntityId("CUSTONE")
						.setExecutionDateTime("20160322123621")
						.setFullName("")
						.setHasPostTradeHistory("")
						.setIsAllocated("")
						.setIsAmendable("")
						.setIsCancellable(true)
						.setIsCommercial(true)
						.setIsRepriceTrade("")
						.setIsReversible("")
						.setNaturalLanguageSummaryHidden("")
						.setNumberOfPips(2)
						.setOrderID("000012345")
						.setOriginalTradeID("")
						.setPostTradeType("")
						.setPriceSource("st1@caplin.com")
						.setPurpose("Commercial")
						.setRemarks("")
						.setServiceContraCostCurrencyDPS("2")
						.setServiceCostCurrencyDPS(2)
						.setSpotMidRate("1.08345")
						.setSpotRate(BigDecimal.valueOf(1.08341))
						.setSpotRateDPS(5)
						.setStatus("Completed")
						.setStatusCategory("SUCCESS")
						.setStatusIsFinal("true")
						.setTOBOUser("client@customer.co.za")
						.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(BigDecimal.valueOf(1.091790))
						.setAllInRate("1.091790")
						.setAllInRateDPS("5")
						.setAllocatableAmount("500")
						.setAllocatableContraAmount("500")
						.setAmount(BigDecimal.valueOf(0))
						.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(true)
								.setIsDefaultSettlementInstruction("")
								.setNettingStatus("NETTED")
								.setSettlementAmount(BigDecimal.valueOf(0.0))
								.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(Instant.now())
							.setCanAdHoc("")
							.setCanAffirm(true)
							.setCanApproveInstructions(true)
							.setCanAutoConfirm("")
							.setCanCancel("")
							.setCanConfirm("")
							.setCanDispute(true)
							.setCanRejectInstructions(true)
							.setCanRelease("")
							.setCanReplace(true)
							.setCanUnconfirm("")
							.setConfirmedBy("")
							.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
							.setIsPayNetted(true)
							.setIsPayNettingRequired("")
							.setIsPaySplit("")
							.setIsReceiveNetted("")
							.setIsReceiveNettingRequired(true)
							.setIsReceiveSplit(true)
							.setNextActionDeadline(Instant.now())
							.setNextActionDeadlineDisplayTimezone("America/New_York")
							.setSettlementStatus("")
							.build())
						.setStartDate("20150620")
						.setStartDateRisk()
						.setStartTenor("", true)
						.setStartTenorRisk()
						.setTOBOUser("client@customer.co.za")
						.setTOBOUserEditable()
						.setTOBOUserRisk()
						.setTenor("1M")
						.setTenorEditable()
						.setTenorRisk()
						.setTradeID("00001561")
						.build())
					.build())
				.setNearSalesLegTradeConfirmation(
				TradeConfPartsDef.SalesLegTradeConfirmationFields
					.newBuilder()
					.addTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build())
					.setAdjustedSwapMargin(BigDecimal.valueOf(0.0))
					.setAdjustedTraderSwapPoints(BigDecimal.valueOf(0.0))
					.setAllInMargin(BigDecimal.valueOf(0.00054))
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor(BigDecimal.valueOf(1.2))
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints(BigDecimal.valueOf(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("0.005390")
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setSalesCommonFields(
				TradeConfPartsDef.SalesCommonTradeConfirmationFields
					.newBuilder()
					.setAmendmentReasonDisplayFields("")
					.setAmendmentSummaryDisplayFields(arg)
					.setCompetition(true)
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips("2")
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS("5")
						.setTraderSpotRate(BigDecimal.valueOf(1.09174))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("", true)
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit(BigDecimal.valueOf(1000))
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS("5")
					.setProfitIsHouse("")
					.setProfitRate(BigDecimal.valueOf(1.091790))
					.setReasons(arg)
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin(BigDecimal.valueOf(0.0), true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate(BigDecimal.valueOf(1.09174))
					.setXVANetProfit("14.12")
					.setXVATotalAmount("15")
					.build())
				.build())
			.build();
            
    }
}
```

## FX forward trade blotter record

The message specification for a forward-trade record in the FX trade blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.ForwardBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.ForwardBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/ForwardBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.ForwardBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.ForwardBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.ForwardBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 ForwardBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.ForwardBlotterRecord forwardBlotterRecord =
		BlotterTypesDef.ForwardBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonForwardTradeConfirmation(
			TradeConfTypesDef.CommonForwardTradeConfirmation
				.newBuilder()
				.setCommonFields(
				TradeConfPartsDef.CommonTradeConfirmationFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAccountEditable()
					.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
					.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
					.setAmountDPS(2)
					.setAssetType("")
					.setBackOfficeID("")
					.setCanAllocate("")
					.setCanDrawdown("")
					.setClient("")
					.setClientAgreementDateTime(Instant.now(), true)
					.setClientAgreementDateTimeEditable()
					.setContraAmountDPS(2)
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostCurrencyDPS(2)
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostAmount(BigDecimal.valueOf(12412891.31))
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCostPercentage("13.56")
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setDealtCurrencyRisk()
					.setDeliverableType("DELIVERABLE")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExecutionDateTime("20160322123621")
					.setFullName("")
					.setHasPostTradeHistory("")
					.setIsAllocated("")
					.setIsAmendable("")
					.setIsCancellable(true)
					.setIsCommercial(true)
					.setIsRepriceTrade("")
					.setIsReversible("")
					.setNaturalLanguageSummaryHidden("")
					.setNumberOfPips(2)
					.setOrderID("000012345")
					.setOriginalTradeID("")
					.setPostTradeType("")
					.setPriceSource("st1@caplin.com")
					.setPurpose("Commercial")
					.setRemarks("")
					.setServiceContraCostCurrencyDPS("2")
					.setServiceCostCurrencyDPS(2)
					.setSpotMidRate("1.08345")
					.setSpotRate(BigDecimal.valueOf(1.08341))
					.setSpotRateDPS(5)
					.setStatus("Completed")
					.setStatusCategory("SUCCESS")
					.setStatusIsFinal("true")
					.setTOBOUser("client@customer.co.za")
					.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(BigDecimal.valueOf(1.091790))
					.setAllInRate("1.091790")
					.setAllInRateDPS("5")
					.setAllocatableAmount("500")
					.setAllocatableContraAmount("500")
					.setAmount(BigDecimal.valueOf(0))
					.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(true)
							.setIsDefaultSettlementInstruction("")
							.setNettingStatus("NETTED")
							.setSettlementAmount(BigDecimal.valueOf(0.0))
							.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(Instant.now())
						.setCanAdHoc("")
						.setCanAffirm(true)
						.setCanApproveInstructions(true)
						.setCanAutoConfirm("")
						.setCanCancel("")
						.setCanConfirm("")
						.setCanDispute(true)
						.setCanRejectInstructions(true)
						.setCanRelease("")
						.setCanReplace(true)
						.setCanUnconfirm("")
						.setConfirmedBy("")
						.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
						.setIsPayNetted(true)
						.setIsPayNettingRequired("")
						.setIsPaySplit("")
						.setIsReceiveNetted("")
						.setIsReceiveNettingRequired(true)
						.setIsReceiveSplit(true)
						.setNextActionDeadline(Instant.now())
						.setNextActionDeadlineDisplayTimezone("America/New_York")
						.setSettlementStatus("")
						.build())
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("", true)
					.setStartTenorRisk()
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTenor("1M")
					.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(BigDecimal.valueOf(0.0))
					.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())
			.build();
            
    }
}
```

## FX sales forward trade blotter record

The message specification for a forward-trade record in the FX trade blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.ForwardSalesBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.ForwardSalesBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/ForwardSalesBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.ForwardSalesBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.ForwardSalesBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.ForwardSalesBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 ForwardSalesBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.ForwardSalesBlotterRecord forwardSalesBlotterRecord =
		BlotterTypesDef.ForwardSalesBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonForwardSalesTradeConfirmation(
			TradeConfTypesDef.CommonForwardSalesTradeConfirmation
				.newBuilder()
				.setCommonForwardTradeConfirmation(
				TradeConfTypesDef.CommonForwardTradeConfirmation
					.newBuilder()
					.setCommonFields(
					TradeConfPartsDef.CommonTradeConfirmationFields
						.newBuilder()
						.setAccount("Garfields|GARF")
						.setAccountEditable()
						.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
						.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
						.setAmountDPS(2)
						.setAssetType("")
						.setBackOfficeID("")
						.setCanAllocate("")
						.setCanDrawdown("")
						.setClient("")
						.setClientAgreementDateTime(Instant.now(), true)
						.setClientAgreementDateTimeEditable()
						.setContraAmountDPS(2)
						.setContraCostAmount(BigDecimal.valueOf(0.0))
						.setContraCostCurrency("GBP")
						.setContraCostCurrencyDPS(2)
						.setContraCostPercentage(BigDecimal.valueOf(13.56))
						.setCostAmount(BigDecimal.valueOf(12412891.31))
						.setCostCurrency("GBP")
						.setCostCurrencyDPS("2")
						.setCostPercentage("13.56")
						.setCurrencyPair("")
						.setDealtCurrency("GBP")
						.setDealtCurrencyEditable()
						.setDealtCurrencyRisk()
						.setDeliverableType("DELIVERABLE")
						.setDetailedWarningMessage("")
						.setDigitsBeforePips("2")
						.setEntityDescription("Customer 1")
						.setEntityId("CUSTONE")
						.setExecutionDateTime("20160322123621")
						.setFullName("")
						.setHasPostTradeHistory("")
						.setIsAllocated("")
						.setIsAmendable("")
						.setIsCancellable(true)
						.setIsCommercial(true)
						.setIsRepriceTrade("")
						.setIsReversible("")
						.setNaturalLanguageSummaryHidden("")
						.setNumberOfPips(2)
						.setOrderID("000012345")
						.setOriginalTradeID("")
						.setPostTradeType("")
						.setPriceSource("st1@caplin.com")
						.setPurpose("Commercial")
						.setRemarks("")
						.setServiceContraCostCurrencyDPS("2")
						.setServiceCostCurrencyDPS(2)
						.setSpotMidRate("1.08345")
						.setSpotRate(BigDecimal.valueOf(1.08341))
						.setSpotRateDPS(5)
						.setStatus("Completed")
						.setStatusCategory("SUCCESS")
						.setStatusIsFinal("true")
						.setTOBOUser("client@customer.co.za")
						.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(BigDecimal.valueOf(1.091790))
						.setAllInRate("1.091790")
						.setAllInRateDPS("5")
						.setAllocatableAmount("500")
						.setAllocatableContraAmount("500")
						.setAmount(BigDecimal.valueOf(0))
						.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(true)
								.setIsDefaultSettlementInstruction("")
								.setNettingStatus("NETTED")
								.setSettlementAmount(BigDecimal.valueOf(0.0))
								.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(Instant.now())
							.setCanAdHoc("")
							.setCanAffirm(true)
							.setCanApproveInstructions(true)
							.setCanAutoConfirm("")
							.setCanCancel("")
							.setCanConfirm("")
							.setCanDispute(true)
							.setCanRejectInstructions(true)
							.setCanRelease("")
							.setCanReplace(true)
							.setCanUnconfirm("")
							.setConfirmedBy("")
							.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
							.setIsPayNetted(true)
							.setIsPayNettingRequired("")
							.setIsPaySplit("")
							.setIsReceiveNetted("")
							.setIsReceiveNettingRequired(true)
							.setIsReceiveSplit(true)
							.setNextActionDeadline(Instant.now())
							.setNextActionDeadlineDisplayTimezone("America/New_York")
							.setSettlementStatus("")
							.build())
						.setStartDate("20150620")
						.setStartDateRisk()
						.setStartTenor("", true)
						.setStartTenorRisk()
						.setTOBOUser("client@customer.co.za")
						.setTOBOUserEditable()
						.setTOBOUserRisk()
						.setTenor("1M")
						.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(BigDecimal.valueOf(0.0))
						.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(BigDecimal.valueOf(0.0))
					.setAllInMargin(BigDecimal.valueOf(0.00054))
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor(BigDecimal.valueOf(1.2))
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints(BigDecimal.valueOf(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("0.005390")
					.setTraderOriginalRate("")
					.setTraderRemarks(
					TradeConfPartsDef.RemarksEntry
						.newBuilder()
						.build(), 0)
					.setXVAAmount("5")
					.setXVAPoints(BigDecimal.valueOf(0.000002))
					.build())
				.setSalesCommonFields(
				TradeConfPartsDef.SalesCommonTradeConfirmationFields
					.newBuilder()
					.setAmendmentReasonDisplayFields("")
					.setAmendmentSummaryDisplayFields(arg)
					.setCompetition(true)
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips("2")
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS("5")
						.setTraderSpotRate(BigDecimal.valueOf(1.09174))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("", true)
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit(BigDecimal.valueOf(1000))
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS("5")
					.setProfitIsHouse("")
					.setProfitRate(BigDecimal.valueOf(1.091790))
					.setReasons(arg)
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin(BigDecimal.valueOf(0.0), true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate(BigDecimal.valueOf(1.09174))
					.setXVANetProfit("14.12")
					.setXVATotalAmount("15")
					.build())
				.build())
			.build();
            
    }
}
```

## FX swap trade blotter record

The message specification for a swap-trade record in the FX trade blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapTradeBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapTradeBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/SwapTradeBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```
Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapTradeBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapTradeBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.SwapTradeBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 SwapTradeBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.SwapTradeBlotterRecord swapTradeBlotterRecord =
		BlotterTypesDef.SwapTradeBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonSwapTradeConfirmation(
			TradeConfTypesDef.CommonSwapTradeConfirmation
				.newBuilder()
				.setCommonFields(
				TradeConfPartsDef.CommonTradeConfirmationFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAccountEditable()
					.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
					.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
					.setAmountDPS(2)
					.setAssetType("")
					.setBackOfficeID("")
					.setCanAllocate("")
					.setCanDrawdown("")
					.setClient("")
					.setClientAgreementDateTime(Instant.now(), true)
					.setClientAgreementDateTimeEditable()
					.setContraAmountDPS(2)
					.setContraCostAmount(BigDecimal.valueOf(0.0))
					.setContraCostCurrency("GBP")
					.setContraCostCurrencyDPS(2)
					.setContraCostPercentage(BigDecimal.valueOf(13.56))
					.setCostAmount(BigDecimal.valueOf(12412891.31))
					.setCostCurrency("GBP")
					.setCostCurrencyDPS("2")
					.setCostPercentage("13.56")
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setDealtCurrencyEditable()
					.setDealtCurrencyRisk()
					.setDeliverableType("DELIVERABLE")
					.setDetailedWarningMessage("")
					.setDigitsBeforePips("2")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setExecutionDateTime("20160322123621")
					.setFullName("")
					.setHasPostTradeHistory("")
					.setIsAllocated("")
					.setIsAmendable("")
					.setIsCancellable(true)
					.setIsCommercial(true)
					.setIsRepriceTrade("")
					.setIsReversible("")
					.setNaturalLanguageSummaryHidden("")
					.setNumberOfPips(2)
					.setOrderID("000012345")
					.setOriginalTradeID("")
					.setPostTradeType("")
					.setPriceSource("st1@caplin.com")
					.setPurpose("Commercial")
					.setRemarks("")
					.setServiceContraCostCurrencyDPS("2")
					.setServiceCostCurrencyDPS(2)
					.setSpotMidRate("1.08345")
					.setSpotRate(BigDecimal.valueOf(1.08341))
					.setSpotRateDPS(5)
					.setStatus("Completed")
					.setStatusCategory("SUCCESS")
					.setStatusIsFinal("true")
					.setTOBOUser("client@customer.co.za")
					.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(BigDecimal.valueOf(1.091790))
					.setAllInRate("1.091790")
					.setAllInRateDPS("5")
					.setAllocatableAmount("500")
					.setAllocatableContraAmount("500")
					.setAmount(BigDecimal.valueOf(0))
					.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(true)
							.setIsDefaultSettlementInstruction("")
							.setNettingStatus("NETTED")
							.setSettlementAmount(BigDecimal.valueOf(0.0))
							.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(Instant.now())
						.setCanAdHoc("")
						.setCanAffirm(true)
						.setCanApproveInstructions(true)
						.setCanAutoConfirm("")
						.setCanCancel("")
						.setCanConfirm("")
						.setCanDispute(true)
						.setCanRejectInstructions(true)
						.setCanRelease("")
						.setCanReplace(true)
						.setCanUnconfirm("")
						.setConfirmedBy("")
						.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
						.setIsPayNetted(true)
						.setIsPayNettingRequired("")
						.setIsPaySplit("")
						.setIsReceiveNetted("")
						.setIsReceiveNettingRequired(true)
						.setIsReceiveSplit(true)
						.setNextActionDeadline(Instant.now())
						.setNextActionDeadlineDisplayTimezone("America/New_York")
						.setSettlementStatus("")
						.build())
					.setStartDate("20150620")
					.setStartDateRisk()
					.setStartTenor("", true)
					.setStartTenorRisk()
					.setTOBOUser("client@customer.co.za")
					.setTOBOUserEditable()
					.setTOBOUserRisk()
					.setTenor("1M")
					.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(BigDecimal.valueOf(0.0))
					.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())
			.build();
            
    }
}
```

## FX sales swap trade blotter record

The message specification for a swap-trade record in the FX trade blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapSalesBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapSalesBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/SwapSalesBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonBlotterFields.html",
      "fields": [
        {
          "name": "BaseCurrency",
          "type": "string",
          "flags": "",
          "definition": "The first currency listed in the currency pair.",
          "example_value": "USD",
          "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": "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": "ExecutionStyle",
          "type": "string",
          "flags": "",
          "definition": "The execution style. Caplin supported types are [ORDER, RFS, ESP]",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "USI",
          "type": "string",
          "flags": "",
          "definition": "Unique swap identifier, global unique transaction identifier.",
          "example_value": "",
          "deprecated": false
        },
        {
          "name": "CanLaunchTradeConfirmation",
          "type": "boolean",
          "flags": "",
          "definition": "Indicates whether the user can launch the trade confirmation ticket",
          "example_value": "true",
          "deprecated": false
        }
      ]
    },
    {
      "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapSalesBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapSalesBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.SwapSalesBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
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 SwapSalesBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.SwapSalesBlotterRecord swapSalesBlotterRecord =
		BlotterTypesDef.SwapSalesBlotterRecord
			.newBuilder()
			.setCommonFields(
			BlotterPartsDef.CommonBlotterFields
				.newBuilder()
				.setBaseCurrency("USD")
				.setCanLaunchTradeConfirmation(true)
				.setExecutionStyle("")
				.setIsAmendable(true)
				.setIsCancellable("")
				.setIsReversible(true)
				.setTradingType("SPOT")
				.setUSI("")
				.build())
			.setCommonSwapSalesTradeConfirmation(
			TradeConfTypesDef.CommonSwapSalesTradeConfirmation
				.newBuilder()
				.setCommonSwapTradeConfirmation(
				TradeConfTypesDef.CommonSwapTradeConfirmation
					.newBuilder()
					.setCommonFields(
					TradeConfPartsDef.CommonTradeConfirmationFields
						.newBuilder()
						.setAccount("Garfields|GARF")
						.setAccountEditable()
						.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
						.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
						.setAmountDPS(2)
						.setAssetType("")
						.setBackOfficeID("")
						.setCanAllocate("")
						.setCanDrawdown("")
						.setClient("")
						.setClientAgreementDateTime(Instant.now(), true)
						.setClientAgreementDateTimeEditable()
						.setContraAmountDPS(2)
						.setContraCostAmount(BigDecimal.valueOf(0.0))
						.setContraCostCurrency("GBP")
						.setContraCostCurrencyDPS(2)
						.setContraCostPercentage(BigDecimal.valueOf(13.56))
						.setCostAmount(BigDecimal.valueOf(12412891.31))
						.setCostCurrency("GBP")
						.setCostCurrencyDPS("2")
						.setCostPercentage("13.56")
						.setCurrencyPair("")
						.setDealtCurrency("GBP")
						.setDealtCurrencyEditable()
						.setDealtCurrencyRisk()
						.setDeliverableType("DELIVERABLE")
						.setDetailedWarningMessage("")
						.setDigitsBeforePips("2")
						.setEntityDescription("Customer 1")
						.setEntityId("CUSTONE")
						.setExecutionDateTime("20160322123621")
						.setFullName("")
						.setHasPostTradeHistory("")
						.setIsAllocated("")
						.setIsAmendable("")
						.setIsCancellable(true)
						.setIsCommercial(true)
						.setIsRepriceTrade("")
						.setIsReversible("")
						.setNaturalLanguageSummaryHidden("")
						.setNumberOfPips(2)
						.setOrderID("000012345")
						.setOriginalTradeID("")
						.setPostTradeType("")
						.setPriceSource("st1@caplin.com")
						.setPurpose("Commercial")
						.setRemarks("")
						.setServiceContraCostCurrencyDPS("2")
						.setServiceCostCurrencyDPS(2)
						.setSpotMidRate("1.08345")
						.setSpotRate(BigDecimal.valueOf(1.08341))
						.setSpotRateDPS(5)
						.setStatus("Completed")
						.setStatusCategory("SUCCESS")
						.setStatusIsFinal("true")
						.setTOBOUser("client@customer.co.za")
						.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(BigDecimal.valueOf(1.091790))
						.setAllInRate("1.091790")
						.setAllInRateDPS("5")
						.setAllocatableAmount("500")
						.setAllocatableContraAmount("500")
						.setAmount(BigDecimal.valueOf(0))
						.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(true)
								.setIsDefaultSettlementInstruction("")
								.setNettingStatus("NETTED")
								.setSettlementAmount(BigDecimal.valueOf(0.0))
								.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(Instant.now())
							.setCanAdHoc("")
							.setCanAffirm(true)
							.setCanApproveInstructions(true)
							.setCanAutoConfirm("")
							.setCanCancel("")
							.setCanConfirm("")
							.setCanDispute(true)
							.setCanRejectInstructions(true)
							.setCanRelease("")
							.setCanReplace(true)
							.setCanUnconfirm("")
							.setConfirmedBy("")
							.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
							.setIsPayNetted(true)
							.setIsPayNettingRequired("")
							.setIsPaySplit("")
							.setIsReceiveNetted("")
							.setIsReceiveNettingRequired(true)
							.setIsReceiveSplit(true)
							.setNextActionDeadline(Instant.now())
							.setNextActionDeadlineDisplayTimezone("America/New_York")
							.setSettlementStatus("")
							.build())
						.setStartDate("20150620")
						.setStartDateRisk()
						.setStartTenor("", true)
						.setStartTenorRisk()
						.setTOBOUser("client@customer.co.za")
						.setTOBOUserEditable()
						.setTOBOUserRisk()
						.setTenor("1M")
						.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(BigDecimal.valueOf(0.0))
						.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(BigDecimal.valueOf(0.0))
					.setAllInMargin(BigDecimal.valueOf(0.00054))
					.setAllInMarginEditable()
					.setAskDiscountFactor("1.2")
					.setBidDiscountFactor(BigDecimal.valueOf(1.2))
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
						.newBuilder()
						.setAllInRateDPS("5")
						.setFwdMidPoints(BigDecimal.valueOf(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("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("")
					.setAmendmentSummaryDisplayFields(arg)
					.setCompetition(true)
					.setComponent1(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setCurrencyPair("")
						.setDigitsBeforePips("2")
						.setNumberOfPips("2")
						.setSpotMidRate("1.08345")
						.setSpotRateDPS("5")
						.setTraderSpotRate(BigDecimal.valueOf(1.09174))
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setExternalRemarks("")
					.setForwardPointsTrader("", true)
					.setForwardPointsTraderEditable()
					.setIsAdvised(true)
					.setProfit(BigDecimal.valueOf(1000))
					.setProfitCurrency("USD")
					.setProfitCurrencyDPS("5")
					.setProfitIsHouse("")
					.setProfitRate(BigDecimal.valueOf(1.091790))
					.setReasons(arg)
					.setReferenceSpotRate("")
					.setSource("WMR 8am London Time")
					.setSpotMargin(BigDecimal.valueOf(0.0), true)
					.setSpotMarginEditable()
					.setSpotTrader("")
					.setSpotTraderEditable()
					.setStreamingMode("MANUAL, STREAMING")
					.setSyntheticCrossCurrency("GBP")
					.setTraderSpotRate(BigDecimal.valueOf(1.09174))
					.setXVANetProfit("14.12")
					.setXVATotalAmount("15")
					.build())
				.setSalesSwapFields(
				TradeConfPartsDef.SalesSwapTradeConfirmationFields
					.newBuilder()
					.setComponent1(
					TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.setTraderSwapPoints("0.004211")
						.build())
					.setComponent2(
					TradeConfPartsDef.SalesSwapSyntheticComponentTradeConfirmationFields
						.newBuilder()
						.build())
					.setSwapMargin("0.000040")
					.setSwapMarginEditable()
					.setTraderSwapPoints("0.004211")
					.build())
				.build())
			.build();
            
    }
}
```


## FX outright quote blotter record

The message specification for an outright-trade record in the FX quote blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.OutrightQuoteBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.OutrightQuoteBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/OutrightQuoteBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "OutrightQuoteBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.OutrightQuoteBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.OutrightQuoteBlotterFields.html",
      "fields": [
        {
          "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": "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": "EntityDescription",
          "type": "string",
          "flags": "",
          "definition": "The description of a trade on behalf of entity.",
          "example_value": "Customer 1",
          "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": "RequestDateTime",
          "type": "datetime",
          "flags": "",
          "definition": "The time and date of when the request was sent.",
          "example_value": "2013-07-24T17:13:59.985",
          "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": "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": "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": "SpotRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate for trading two currencies on the spot settlement date.",
          "example_value": "1.08341",
          "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
        }
      ]
    },
    {
      "part_name": "NDFQuoteBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.NDFQuoteBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.NDFQuoteBlotterFields.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
        }
      ]
    },
    {
      "part_name": "QuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.QuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.QuoteBlotterLegFields.html",
      "fields": [
        {
          "name": "L1_Amount",
          "type": "decimal",
          "flags": "",
          "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_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_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_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_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_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_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
        }
      ]
    },
    {
      "part_name": "NDFQuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.NDFQuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.NDFQuoteBlotterLegFields.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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.OutrightQuoteBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.OutrightQuoteBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.OutrightQuoteBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;

public class OutrightQuoteBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.OutrightQuoteBlotterRecord outrightQuoteBlotterRecord =
		BlotterTypesDef.OutrightQuoteBlotterRecord
			.newBuilder()
			.setNdfQuoteBlotterFields(
			BlotterPartsDef.NDFQuoteBlotterFields
				.newBuilder()
				.setFixingSource("WMR 8am London Time")
				.setSettlementCurrency("GBP")
				.build())
			.setNdfQuoteBlotterLegFields(
			BlotterPartsDef.NDFQuoteBlotterLegFields
				.newBuilder()
				.setFixingDate("20150620")
				.build())
			.setOutrightQuoteBlotterFields(
			BlotterPartsDef.OutrightQuoteBlotterFields
				.newBuilder()
				.setAccount("Garfields|GARF")
				.setCurrencyPair("")
				.setDealtCurrency("GBP")
				.setEntityDescription("Customer 1")
				.setRemarks("")
				.setRequestDateTime("2013-07-24T17:13:59.985")
				.setRequestID("000012345")
				.setSpotRate(BigDecimal.valueOf(1.08341))
				.setStatus("Completed")
				.setStatusCategory("SUCCESS")
				.setStatusIsFinal("true")
				.setTradeID("00001561")
				.setTraderUsername("sales_trader@novobank.co.za")
				.setTradingType("SPOT")
				.build())
			.setQuoteBlotterLegFields(
			BlotterPartsDef.QuoteBlotterLegFields
				.newBuilder()
				.setAllInMidRate(BigDecimal.valueOf(1.091790))
				.setAllInRate(BigDecimal.valueOf(1.091790))
				.setAmount("0")
				.setBuySell("")
				.setContraAmount("500")
				.setFwdPoints("0.001198")
				.setSettlementDate("20160314")
				.setTenor("1M")
				.build())
			.build();
            
    }
}
```

## FX swap quote blotter record

The message specification for a swap-trade record in the FX quote blotter of Caplin's FX Professional web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapQuoteBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapQuoteBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/SwapQuoteBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "OutrightQuoteBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.OutrightQuoteBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.OutrightQuoteBlotterFields.html",
      "fields": [
        {
          "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": "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": "EntityDescription",
          "type": "string",
          "flags": "",
          "definition": "The description of a trade on behalf of entity.",
          "example_value": "Customer 1",
          "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": "RequestDateTime",
          "type": "datetime",
          "flags": "",
          "definition": "The time and date of when the request was sent.",
          "example_value": "2013-07-24T17:13:59.985",
          "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": "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": "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": "SpotRate",
          "type": "decimal",
          "flags": "",
          "definition": "The rate for trading two currencies on the spot settlement date.",
          "example_value": "1.08341",
          "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
        }
      ]
    },
    {
      "part_name": "SwapQuoteBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.SwapQuoteBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.SwapQuoteBlotterFields.html",
      "fields": [
        {
          "name": "SwapPoints",
          "type": "decimal",
          "flags": "",
          "definition": "The difference in interest rates between transaction currencies.",
          "example_value": "0.005390",
          "deprecated": false
        }
      ]
    },
    {
      "part_name": "NDFQuoteBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.NDFQuoteBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.NDFQuoteBlotterFields.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
        }
      ]
    },
    {
      "part_name": "QuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.QuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.QuoteBlotterLegFields.html",
      "fields": [
        {
          "name": "L1_Amount",
          "type": "decimal",
          "flags": "",
          "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_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_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_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_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_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_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
        }
      ]
    },
    {
      "part_name": "QuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.QuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.QuoteBlotterLegFields.html",
      "fields": [
        {
          "name": "L2_Amount",
          "type": "decimal",
          "flags": "",
          "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_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_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_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_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_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_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
        }
      ]
    },
    {
      "part_name": "NDFQuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.NDFQuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.NDFQuoteBlotterLegFields.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
        }
      ]
    },
    {
      "part_name": "NDFQuoteBlotterLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.NDFQuoteBlotterLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.NDFQuoteBlotterLegFields.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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.SwapQuoteBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.SwapQuoteBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.SwapQuoteBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;

public class SwapQuoteBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.SwapQuoteBlotterRecord swapQuoteBlotterRecord =
		BlotterTypesDef.SwapQuoteBlotterRecord
			.newBuilder()
			.setFarNDFQuoteBlotterLegFields(
			BlotterPartsDef.NDFQuoteBlotterLegFields
				.newBuilder()
				.setFixingDate("20150620")
				.build())
			.setFarQuoteBlotterLegFields(
			BlotterPartsDef.QuoteBlotterLegFields
				.newBuilder()
				.setAllInMidRate(BigDecimal.valueOf(1.091790))
				.setAllInRate(BigDecimal.valueOf(1.091790))
				.setAmount("0")
				.setBuySell("")
				.setContraAmount("500")
				.setFwdPoints("0.001198")
				.setSettlementDate("20160314")
				.setTenor("1M")
				.build())
			.setNdfQuoteBlotterFields(
			BlotterPartsDef.NDFQuoteBlotterFields
				.newBuilder()
				.setFixingSource("WMR 8am London Time")
				.setSettlementCurrency("GBP")
				.build())
			.setNearNDFQuoteBlotterLegFields(
			BlotterPartsDef.NDFQuoteBlotterLegFields
				.newBuilder()
				.build())
			.setNearQuoteBlotterLegFields(
			BlotterPartsDef.QuoteBlotterLegFields
				.newBuilder()
				.build())
			.setOutrightQuoteBlotterFields(
			BlotterPartsDef.OutrightQuoteBlotterFields
				.newBuilder()
				.setAccount("Garfields|GARF")
				.setCurrencyPair("")
				.setDealtCurrency("GBP")
				.setEntityDescription("Customer 1")
				.setRemarks("")
				.setRequestDateTime("2013-07-24T17:13:59.985")
				.setRequestID("000012345")
				.setSpotRate(BigDecimal.valueOf(1.08341))
				.setStatus("Completed")
				.setStatusCategory("SUCCESS")
				.setStatusIsFinal("true")
				.setTradeID("00001561")
				.setTraderUsername("sales_trader@novobank.co.za")
				.setTradingType("SPOT")
				.build())
			.setSwapQuoteBlotterFields(
			BlotterPartsDef.SwapQuoteBlotterFields
				.newBuilder()
				.setSwapPoints("0.005390")
				.build())
			.build();
            
    }
}
```


## FX allocation sales-intervention blotter record

The message specification for a trade allocation record in the FX sales-intervention blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionAllocationBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionAllocationBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/InterventionAllocationBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "AllocationTradeDetails",
      "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef.AllocationTradeDetails",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsTypesDef.AllocationTradeDetails.html",
      "parts": [
        {
          "part_name": "CommonTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.CommonTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.CommonTradeDetailsFields.html",
          "fields": [
            {
              "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": "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": "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": "LastActionDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date of the last action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RequestedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "",
              "example_value": "",
              "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
            }
          ]
        },
        {
          "part_name": "TradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.TradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.TradeDetailsFields.html",
          "fields": [
            {
              "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
            }
          ]
        },
        {
          "part_name": "InterventionTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.InterventionTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.InterventionTradeDetailsFields.html",
          "fields": [
            {
              "name": "InterventionStatus",
              "type": "string",
              "flags": "",
              "definition": "Use the TradeStatus field instead",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "InterventionTradingType",
              "type": "string",
              "flags": "",
              "definition": "The type of intervention that is required. Caplin supported values are [RFS, ALLOCATION, ALGO]. RFS is assumed if this is not specified. Constants are defined within com.caplin.motif.fx.trading.InterventionTradingType.",
              "example_value": "RFS",
              "deprecated": false
            },
            {
              "name": "InterventionMode",
              "type": "string",
              "flags": "",
              "definition": "Determine what type of intervention is required, such as whether it requires pricing or whether it is a simple accept/reject. Caplin supported values are [ACCEPT, PRICE]. PRICE is assumed if this is not specified.",
              "example_value": "ACCEPT",
              "deprecated": false
            },
            {
              "name": "TradeStatus",
              "type": "string",
              "flags": "",
              "definition": "The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.",
              "example_value": "AWAITING-PRICE",
              "deprecated": false
            },
            {
              "name": "Dealable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade request can be picked up by a sales trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PricingMode",
              "type": "string",
              "flags": "",
              "definition": "Whether the trade is being automatically or manually priced by the frontend. Supported types are [AUTO, MANUAL]",
              "example_value": "AUTO",
              "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": "PrimaryReason",
              "type": "string",
              "flags": "",
              "definition": "The headline reason that a trade requires intervention.",
              "example_value": "This trade exceeds the GFA",
              "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": "TradeRequestID",
              "type": "string",
              "flags": "",
              "definition": "The unique id identifying the trade to be picked up for intervention",
              "example_value": "000012345",
              "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": "IntervenerUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who is currently intervening on and potentially pricing a trade.",
              "example_value": "head_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "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": "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": "AllocatingFromTradeAllowedAllocationTypes",
                      "type": "string",
                      "flags": "",
                      "definition": "Comma separated string of allowed allocation types.",
                      "example_value": "ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeTradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeCurrencyPair",
                      "type": "string",
                      "flags": "",
                      "definition": "The currency pair for the trade. For example, EURUSD",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeDealtCurrency",
                      "type": "string",
                      "flags": "Editable, Risk",
                      "definition": "The currency of the Amount of a trade or order.",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeSpotRate",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The rate for trading two currencies on the spot settlement date.",
                      "example_value": "1.08341",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeSpotMidRate",
                      "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": "AllocatingFromTradeSpotRateDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "5",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeExecutionDateTime",
                      "type": "string",
                      "flags": "",
                      "definition": "The date and time a trade was executed on.",
                      "example_value": "20160322123621",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeTradeDate",
                      "type": "string",
                      "flags": "",
                      "definition": "The date a trade was executed on.",
                      "example_value": "20160314",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeAccount",
                      "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": "AllocatingFromTradeTraderUsername",
                      "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": "AllocatingFromTradeTOBOUser",
                      "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": "AllocatingFromTradeFullName",
                      "type": "string",
                      "flags": "",
                      "definition": "The full name of the user the trade is on behalf of",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeEntityId",
                      "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": "AllocatingFromTradeEntityDescription",
                      "type": "string",
                      "flags": "",
                      "definition": "The description of a trade on behalf of entity.",
                      "example_value": "Customer 1",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeAssetType",
                      "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": "AllocatingFromTradeTradingType",
                      "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": "AllocatingFromTradeDeliverableType",
                      "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": "AllocatingFromTradeDigitsBeforePips",
                      "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": "AllocatingFromTradeNumberOfPips",
                      "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": "AllocatingFromTradeOrderID",
                      "type": "string",
                      "flags": "",
                      "definition": "The id of the order.",
                      "example_value": "000012345",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeWarningCode",
                      "type": "string",
                      "flags": "",
                      "definition": "The code for the warning regarding a quote request.",
                      "example_value": "001",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeWarningMessage",
                      "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": "AllocatingFromTradeDetailedWarningMessage",
                      "type": "string",
                      "flags": "",
                      "definition": "",
                      "example_value": "color: {{theme:foreground.semantic.warning_inverse}}",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeClient",
                      "type": "string",
                      "flags": "",
                      "definition": "Client is a duplicate of TOBOUser",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeCostAmount",
                      "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": "AllocatingFromTradeCostCurrency",
                      "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": "AllocatingFromTradeCostCurrencyDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeCostPercentage",
                      "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": "AllocatingFromTradeContraCostAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The actual transactional cost of performing the trade to the client on the contra currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeContraCostCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "The contra currency that the cost is displayed in",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeContraCostCurrencyDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeContraCostPercentage",
                      "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": "AllocatingFromTradeServiceCostCurrencyDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeServiceContraCostCurrencyDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeCanAllocate",
                      "type": "string",
                      "flags": "",
                      "definition": "Defines if a user can allocate a trade. Enum of: NONE, FULL, FULL_OR_PARTIAL",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeCanDrawdown",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Ability to Drawdown a time option trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeAllocationSettlementDateOptions",
                      "type": "string",
                      "flags": "",
                      "definition": "Comma-separated list, defines available settlement dates for an allocation.",
                      "example_value": "ORIGINAL,EARLIER,LATER",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeIsAllocated",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Deprecated, use HasPostTradeHistory instead.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeHasPostTradeHistory",
                      "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": "AllocatingFromTradeIsReversible",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Whether a trade can be reversed.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeIsAmendable",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Whether a trade can be amended.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeIsCancellable",
                      "type": "boolean",
                      "flags": "",
                      "definition": "Whether a trade can be cancelled.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeAmountDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The precision for a specified currency pair and dealt currency",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeContraAmountDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The precision for a specified currency pair and contra currency",
                      "example_value": "2",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeRemarks",
                      "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": "AllocatingFromTradeUTI",
                      "type": "string",
                      "flags": "",
                      "definition": "Unique Transaction Identifier.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeBackOfficeID",
                      "type": "string",
                      "flags": "",
                      "definition": "Back office trade identifier.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradePriceSource",
                      "type": "string",
                      "flags": "",
                      "definition": "Identifies the person or system that priced the trade.",
                      "example_value": "st1@caplin.com",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeVenue",
                      "type": "string",
                      "flags": "",
                      "definition": "Where the trade was placed.",
                      "example_value": "FX Sales",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradePurpose",
                      "type": "string",
                      "flags": "",
                      "definition": "The purpose of a trade.",
                      "example_value": "Commercial",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeTags",
                      "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": "AllocatingFromTradeClientAgreementDateTime",
                      "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": "AllocatingFromTradePostTradeType",
                      "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": "AllocatingFromTradeIsRepriceTrade",
                      "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": "AllocatingFromTradeOriginalTradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "TradeID of the trade that this trade was created from.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeStatus",
                      "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": "AllocatingFromTradeNaturalLanguageSummaryHidden",
                      "type": "boolean",
                      "flags": "",
                      "definition": "When true, the natural language summary will be hidden on the RFS ticket summary.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeIsCommercial",
                      "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": "AllocatingFromTradeFixingSource",
                      "type": "string",
                      "flags": "",
                      "definition": "Specifies where the fixing rate comes from.",
                      "example_value": "WMR 8am London Time",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeSettlementCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "A currency for of settlement instruction",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeLocationType",
                      "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": "AllocatingFromTradeL1_Pay[n]SettlementId",
                              "type": "string",
                              "flags": "",
                              "definition": "The identifier for the settlement instruction.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementCurrency",
                              "type": "string",
                              "flags": "",
                              "definition": "A currency for of settlement instruction",
                              "example_value": "GBP",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementAmount",
                              "type": "decimal",
                              "flags": "",
                              "definition": "The amount of a settlement",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Pay[n]IsDefaultSettlementInstruction",
                              "type": "boolean",
                              "flags": "",
                              "definition": "Is this the default settlement instruction for this currency",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Pay[n]BankAccount",
                              "type": "string",
                              "flags": "",
                              "definition": "The account number of the bank",
                              "example_value": "12345678",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]BankSwift",
                              "type": "string",
                              "flags": "",
                              "definition": "The BIC of the bank ",
                              "example_value": "CAP123",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]BankName",
                              "type": "string",
                              "flags": "",
                              "definition": "The name of the bank",
                              "example_value": "Bank Of Caplin",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]BankAddress1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of the bank's address",
                              "example_value": "12 Capitol",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]BankAddress2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of the bank's address",
                              "example_value": "The City",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]BankAddress3",
                              "type": "string",
                              "flags": "",
                              "definition": "The third line of the bank's address",
                              "example_value": "London",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]IndividualAccount",
                              "type": "string",
                              "flags": "",
                              "definition": "The account number of the recipient",
                              "example_value": "87654321",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]IndividualSwift",
                              "type": "string",
                              "flags": "",
                              "definition": "The BIC of the recipient's account",
                              "example_value": "SOLD987",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]IndividualName",
                              "type": "string",
                              "flags": "",
                              "definition": "The name of the payee or payee's bank",
                              "example_value": "Susan Sellers",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]IndividualAddress1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of the recipient",
                              "example_value": "98 Lane",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]IndividualAddress2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of the recipient",
                              "example_value": "Manchester",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Pay[n]SplitComponentId",
                              "type": "string",
                              "flags": "",
                              "definition": "The unique ID of a split component",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementDetailsLine1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementDetailsLine2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementDetailsLine3",
                              "type": "string",
                              "flags": "",
                              "definition": "The third line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementDetailsLine4",
                              "type": "string",
                              "flags": "",
                              "definition": "The fourth line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Pay[n]SettlementDetailsLine5",
                              "type": "string",
                              "flags": "",
                              "definition": "The fifth line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Receive[n]SettlementId",
                              "type": "string",
                              "flags": "",
                              "definition": "The identifier for the settlement instruction.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementCurrency",
                              "type": "string",
                              "flags": "",
                              "definition": "A currency for of settlement instruction",
                              "example_value": "GBP",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementAmount",
                              "type": "decimal",
                              "flags": "",
                              "definition": "The amount of a settlement",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Receive[n]IsDefaultSettlementInstruction",
                              "type": "boolean",
                              "flags": "",
                              "definition": "Is this the default settlement instruction for this currency",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Receive[n]BankAccount",
                              "type": "string",
                              "flags": "",
                              "definition": "The account number of the bank",
                              "example_value": "12345678",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]BankSwift",
                              "type": "string",
                              "flags": "",
                              "definition": "The BIC of the bank ",
                              "example_value": "CAP123",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]BankName",
                              "type": "string",
                              "flags": "",
                              "definition": "The name of the bank",
                              "example_value": "Bank Of Caplin",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]BankAddress1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of the bank's address",
                              "example_value": "12 Capitol",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]BankAddress2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of the bank's address",
                              "example_value": "The City",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]BankAddress3",
                              "type": "string",
                              "flags": "",
                              "definition": "The third line of the bank's address",
                              "example_value": "London",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]IndividualAccount",
                              "type": "string",
                              "flags": "",
                              "definition": "The account number of the recipient",
                              "example_value": "87654321",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]IndividualSwift",
                              "type": "string",
                              "flags": "",
                              "definition": "The BIC of the recipient's account",
                              "example_value": "SOLD987",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]IndividualName",
                              "type": "string",
                              "flags": "",
                              "definition": "The name of the payee or payee's bank",
                              "example_value": "Susan Sellers",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]IndividualAddress1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of the recipient",
                              "example_value": "98 Lane",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]IndividualAddress2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of the recipient",
                              "example_value": "Manchester",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Receive[n]SplitComponentId",
                              "type": "string",
                              "flags": "",
                              "definition": "The unique ID of a split component",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementDetailsLine1",
                              "type": "string",
                              "flags": "",
                              "definition": "The first line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementDetailsLine2",
                              "type": "string",
                              "flags": "",
                              "definition": "The second line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementDetailsLine3",
                              "type": "string",
                              "flags": "",
                              "definition": "The third line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementDetailsLine4",
                              "type": "string",
                              "flags": "",
                              "definition": "The fourth line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_Receive[n]SettlementDetailsLine5",
                              "type": "string",
                              "flags": "",
                              "definition": "The fifth line of remittance information.",
                              "example_value": "",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_PayNettingComponents[n]TradeID",
                              "type": "string",
                              "flags": "",
                              "definition": "A unique identifier for this trade",
                              "example_value": "00001561",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ReceiveNettingComponents[n]TradeID",
                              "type": "string",
                              "flags": "",
                              "definition": "A unique identifier for this trade",
                              "example_value": "00001561",
                              "deprecated": false
                            },
                            {
                              "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ReceiveNettingComponents[n]Amount",
                              "type": "decimal",
                              "flags": "",
                              "definition": "The amount of a trade or order in the DealtCurrency.",
                              "example_value": "",
                              "deprecated": false
                            }
                          ]
                        }
                      ],
                      "fields": [
                        {
                          "name": "AllocatingFromTradeL1_CanAffirm",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Ability to Affirm the Trade Details are as agreed.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_CanConfirm",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Ability to Confirm the Settlement Details are now final.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_CanAdHoc",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Can confirm adhoc settlement instructions for a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_CanCancel",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Ability to Cancel a trade, for example if a mistake was made.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_CanUnconfirm",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Ability to move the deal back to a Pending state.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_CanApproveInstructions",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Can approve settlement instructions for a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_CanRejectInstructions",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Can reject settlement instructions for a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_CanRelease",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Relates to post trade actions: User can release the trade",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_SettlementStatus",
                          "type": "string",
                          "flags": "",
                          "definition": "Caplin supported statuses are [PENDING, AFFIRMED, CONFIRMED, DISPUTED, CANCELLED, REPLACED, AUTO_CONFIRMED, OVERDUE, REJECTED]",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_NextActionDeadlineDisplayTimezone",
                          "type": "string",
                          "flags": "",
                          "definition": "The timezone for the NextActionDeadline field in the form Area/Location",
                          "example_value": "America/New_York",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_AffirmedBy",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the user who affirmed a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ConfirmedBy",
                          "type": "string",
                          "flags": "",
                          "definition": "The name of the user who confirmed a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_IsPayNetted",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Denotes whether the pay side of a trade has been netted.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_IsReceiveNetted",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Denotes whether the receive side of a trade has been netted.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_IsPayNettingRequired",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Denotes whether the pay side of a trade requires netting.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_IsReceiveNettingRequired",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Denotes whether the receive side of a trade requires netting.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_IsPaySplit",
                          "type": "boolean",
                          "flags": "",
                          "definition": "Denotes whether the pay side of a trade has been split.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_NostroName",
                          "type": "string",
                          "flags": "",
                          "definition": "An identifier for the given nostro account.",
                          "example_value": "GBP Nostro Account.",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_NostroBIC",
                          "type": "string",
                          "flags": "",
                          "definition": "The Bank Identifier Code denoting the bank which will receive the money.",
                          "example_value": "ARABAEADABC",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Remarks[n]RemarkSource",
                          "type": "string",
                          "flags": "",
                          "definition": "The username of the person who left a remark on a trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_Remarks[n]RemarkOriginStatus",
                          "type": "string",
                          "flags": "",
                          "definition": "Additional remark field pointing at the previous status of the trade.",
                          "example_value": "",
                          "deprecated": false
                        },
                        {
                          "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_TradeID",
                      "type": "string",
                      "flags": "",
                      "definition": "A unique identifier for this trade",
                      "example_value": "00001561",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_AllInRateDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "5",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_FwdPips",
                      "type": "string",
                      "flags": "",
                      "definition": "",
                      "example_value": "11.98",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Amount",
                      "type": "decimal",
                      "flags": "Editable, Risk",
                      "definition": "The amount of a trade or order in the DealtCurrency.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_StartDate",
                      "type": "string",
                      "flags": "Risk",
                      "definition": "The date of which the time option becomes active from.",
                      "example_value": "20150620",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_StartTenor",
                      "type": "string",
                      "flags": "Risk",
                      "definition": "The tenor of which the time option becomes active from.",
                      "example_value": "1W",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_IsTimeOption",
                      "type": "boolean",
                      "flags": "",
                      "definition": "true if a leg is time-option",
                      "example_value": "true",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_Profit",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The sales profit in the specified currency.",
                      "example_value": "1000",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_EntityDescription",
                      "type": "string",
                      "flags": "",
                      "definition": "The description of a trade on behalf of entity.",
                      "example_value": "Customer 1",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ContraCostCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "The contra currency that the cost is displayed in",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ServiceContraCostCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "The service contra currency that the cost is displayed in",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ServiceCostCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "The service home currency that the cost is displayed in",
                      "example_value": "GBP",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_FullName",
                      "type": "string",
                      "flags": "",
                      "definition": "The full name of the user the trade is on behalf of",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_AllocatableAmount",
                      "type": "decimal",
                      "flags": "",
                      "definition": "This is the amount that can be allocated or rolled.",
                      "example_value": "500",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_OriginalRate",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The Rate of the trade that this trade was created from.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_ReferenceCurrency",
                      "type": "string",
                      "flags": "",
                      "definition": "The Buy or Sell Currency that is not the Settlement Currency",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_StartDate",
                      "type": "string",
                      "flags": "Risk",
                      "definition": "The date of which the time option becomes active from.",
                      "example_value": "20150620",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_C1_AllInRateDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "5",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_C1_TraderFwdPoints",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The forward points with no client margin applied to them.",
                      "example_value": "0.005390",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_C2_AllInRateDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "5",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_C2_TraderFwdPoints",
                      "type": "decimal",
                      "flags": "",
                      "definition": "The forward points with no client margin applied to them.",
                      "example_value": "0.005390",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_TraderRemarks[n]RemarkSource",
                      "type": "string",
                      "flags": "",
                      "definition": "The username of the person who left a remark on a trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_TraderRemarks[n]RemarkOriginStatus",
                      "type": "string",
                      "flags": "",
                      "definition": "Additional remark field pointing at the previous status of the trade.",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_TraderAllInRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The all-in rate, with no client margin applied to it",
                  "example_value": "1.005390",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_TraderFwdPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The forward points with no client margin applied to them.",
                  "example_value": "0.005390",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_TraderOriginalRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The TraderRate of the trade that this trade was created from.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_OriginalMargin",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The Margin of the trade that this trade was created from.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_AdjustedTraderSwapPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The trader swap points adjusted for this repriced trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_AdjustedSwapMargin",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The swap margin adjusted for this repriced trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeL1_XVAAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The XVA amount on a TradeConfirmation",
                  "example_value": "5",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_XVAPoints",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The XVA points on a TradeConfirmation",
                  "example_value": "0.000002",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_AskDiscountFactor",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The ask discount factor value",
                  "example_value": "1.2",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeL1_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": "AllocatingFromTradeC1_CurrencyPair",
                      "type": "string",
                      "flags": "",
                      "definition": "The currency pair for the trade. For example, EURUSD",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeC1_TraderSpotRate",
                      "type": "decimal",
                      "flags": "",
                      "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                      "example_value": "1.09174",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeC1_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": "AllocatingFromTradeC1_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": "AllocatingFromTradeC1_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": "AllocatingFromTradeC1_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": "AllocatingFromTradeC2_CurrencyPair",
                      "type": "string",
                      "flags": "",
                      "definition": "The currency pair for the trade. For example, EURUSD",
                      "example_value": "",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeC2_TraderSpotRate",
                      "type": "decimal",
                      "flags": "",
                      "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                      "example_value": "1.09174",
                      "deprecated": false
                    },
                    {
                      "name": "AllocatingFromTradeC2_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": "AllocatingFromTradeC2_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": "AllocatingFromTradeC2_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": "AllocatingFromTradeC2_SpotRateDPS",
                      "type": "integer",
                      "flags": "",
                      "definition": "The number of decimal places to display after the decimal point.",
                      "example_value": "5",
                      "deprecated": false
                    }
                  ]
                }
              ],
              "fields": [
                {
                  "name": "AllocatingFromTradeProfitCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The profit currency that the ProfitBidRate is being provided for.",
                  "example_value": "USD",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeProfitCurrencyDPS",
                  "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": "AllocatingFromTradeProfitIsHouse",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Whether the field ProfitCurrency is the system/house currency or not.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeProfitRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The conversion rate from the contra currency into the profit currency.",
                  "example_value": "1.091790",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeTraderSpotRate",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "1.09174",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeSpotMargin",
                  "type": "decimal",
                  "flags": "Editable",
                  "definition": "Can be formatted using DigitsBeforePips, NumberOfPips and SpotRateDPS",
                  "example_value": "0.00054",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeProfit",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The sales profit in the specified currency.",
                  "example_value": "1000",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeCompetition",
                  "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": "AllocatingFromTradeSource",
                  "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": "AllocatingFromTradeReasons",
                  "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": "AllocatingFromTradeTraderRemarks",
                  "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": "AllocatingFromTradeExternalRemarks",
                  "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": "AllocatingFromTradeIsAdvised",
                  "type": "boolean",
                  "flags": "",
                  "definition": "Indicates whether the trader gave the client advice",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeStreamingMode",
                  "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": "AllocatingFromTradeSyntheticCrossCurrency",
                  "type": "string",
                  "flags": "",
                  "definition": "The common currency of each synthetic component.",
                  "example_value": "GBP",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeAmendmentReasonDisplayFields",
                  "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": "AllocatingFromTradeSpotTrader",
                  "type": "string",
                  "flags": "Editable",
                  "definition": "The Spot trader for a manual mode trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeForwardPointsTrader",
                  "type": "string",
                  "flags": "Editable",
                  "definition": "The Forward points trader for a manual mode trade",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeReferenceSpotRate",
                  "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": "AllocatingFromTradeXVATotalAmount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The sum of all the XVA amounts",
                  "example_value": "15",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeXVANetProfit",
                  "type": "decimal",
                  "flags": "",
                  "definition": "Calculated as the (total profit - xva total amount)",
                  "example_value": "14.12",
                  "deprecated": false
                },
                {
                  "name": "AllocatingFromTradeAmendmentSummaryDisplayFields",
                  "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": "NettedLegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef.NettedLegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsTypesDef.NettedLegTradeDetailsFields.html",
          "parts": [
            {
              "part_name": "LegTradeDetailsFields",
              "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
              "fields": [
                {
                  "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_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_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_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_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_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_IsTimeOption",
                  "type": "boolean",
                  "flags": "",
                  "definition": "true if a leg is time-option",
                  "example_value": "true",
                  "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_StartTenor",
                  "type": "string",
                  "flags": "",
                  "definition": "The tenor of which the time option becomes active from.",
                  "example_value": "1W",
                  "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
                }
              ]
            },
            {
              "part_name": "LegTradeDetailsFields",
              "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
              "fields": [
                {
                  "name": "Ln_In_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_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_Amount",
                  "type": "decimal",
                  "flags": "",
                  "definition": "The amount of a trade or order in the DealtCurrency.",
                  "example_value": "",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_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_In_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_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_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_IsTimeOption",
                  "type": "boolean",
                  "flags": "",
                  "definition": "true if a leg is time-option",
                  "example_value": "true",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_StartDate",
                  "type": "string",
                  "flags": "",
                  "definition": "The date of which the time option becomes active from.",
                  "example_value": "20150620",
                  "deprecated": false
                },
                {
                  "name": "Ln_In_StartTenor",
                  "type": "string",
                  "flags": "",
                  "definition": "The tenor of which the time option becomes active from.",
                  "example_value": "1W",
                  "deprecated": false
                },
                {
                  "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
                }
              ]
            },
            {
              "part_name": "InterventionLegTradeDetailsFields",
              "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.InterventionLegTradeDetailsFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.InterventionLegTradeDetailsFields.html",
              "fields": [
                {
                  "name": "Ln_In_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
                }
              ]
            },
            {
              "part_name": "SwapPartnerLegTradeDetailsFields",
              "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.SwapPartnerLegTradeDetailsFields",
              "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.SwapPartnerLegTradeDetailsFields.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
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionAllocationBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionAllocationBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.InterventionAllocationBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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.blotter.BlotterTypesDef;
import com.caplin.generated.motif.fx.settlementinstructions.SettlementInstructionsPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfPartsDef;
import com.caplin.generated.motif.fx.tradeconfirmation.TradeConfTypesDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef;

public class InterventionAllocationBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.InterventionAllocationBlotterRecord interventionAllocationBlotterRecord =
		BlotterTypesDef.InterventionAllocationBlotterRecord
			.newBuilder()
			.setAllocationTradeDetails(
			TradeDetailsTypesDef.AllocationTradeDetails
				.newBuilder()
				.addLegTradeDetails(
				TradeDetailsTypesDef.NettedLegTradeDetailsFields
					.newBuilder()
					.addInputLegSwapPartnerTradeDetails(
					TradeDetailsPartsDef.SwapPartnerLegTradeDetailsFields
						.newBuilder()
						.setSwapPartnerInputLegID(0)
						.setSwapPartnerNettedLegID("")
						.build())
					.addInputLegTradeDetails(
					TradeDetailsPartsDef.LegTradeDetailsFields
						.newBuilder()
						.setAccount("Garfields|GARF")
						.setAmount("0")
						.setBuySell("")
						.setEntityId("CUSTONE")
						.setFixingDate("20150620")
						.setIsTimeOption(true)
						.setSettlementDate("20160314")
						.setStartDate("20150620")
						.setStartTenor("1W")
						.setTOBOUser("client@customer.co.za")
						.setTenor("1M")
						.build())
					.addInterventionInputLegTradeDetails(
					TradeDetailsPartsDef.InterventionLegTradeDetailsFields
						.newBuilder()
						.setWarningMessage("**CREDIT CHECK:** This user has a credit limit of **1,000,000.00 USD** which should not be exceeded.")
						.build())
					.setNettedLegTradeDetails(
					TradeDetailsPartsDef.LegTradeDetailsFields
						.newBuilder()
						.build())
					.build())
				.setAllocatingFromTrade(
				TradeConfTypesDef.CommonForwardSalesTradeConfirmation
					.newBuilder()
					.setCommonForwardTradeConfirmation(
					TradeConfTypesDef.CommonForwardTradeConfirmation
						.newBuilder()
						.setCommonFields(
						TradeConfPartsDef.CommonTradeConfirmationFields
							.newBuilder()
							.setAccount("Garfields|GARF")
							.setAccountEditable()
							.setAllocationSettlementDateOptions("ORIGINAL,EARLIER,LATER")
							.setAllowedAllocationTypes("ALLOCATION,ALLOCATE_ROLL,ROLL,ROLL_BACK,ROLL_FORWARD")
							.setAmountDPS(2)
							.setAssetType("")
							.setBackOfficeID("")
							.setCanAllocate("")
							.setCanDrawdown("")
							.setClient("")
							.setClientAgreementDateTime(Instant.now(), true)
							.setClientAgreementDateTimeEditable()
							.setContraAmountDPS(2)
							.setContraCostAmount(BigDecimal.valueOf(0.0))
							.setContraCostCurrency("GBP")
							.setContraCostCurrencyDPS(2)
							.setContraCostPercentage(BigDecimal.valueOf(13.56))
							.setCostAmount(BigDecimal.valueOf(12412891.31))
							.setCostCurrency("GBP")
							.setCostCurrencyDPS("2")
							.setCostPercentage("13.56")
							.setCurrencyPair("")
							.setDealtCurrency("GBP")
							.setDealtCurrencyEditable()
							.setDealtCurrencyRisk()
							.setDeliverableType("DELIVERABLE")
							.setDetailedWarningMessage("")
							.setDigitsBeforePips("2")
							.setEntityDescription("Customer 1")
							.setEntityId("CUSTONE")
							.setExecutionDateTime("20160322123621")
							.setFullName("")
							.setHasPostTradeHistory("")
							.setIsAllocated("")
							.setIsAmendable("")
							.setIsCancellable(true)
							.setIsCommercial(true)
							.setIsRepriceTrade("")
							.setIsReversible("")
							.setNaturalLanguageSummaryHidden("")
							.setNumberOfPips(2)
							.setOrderID("000012345")
							.setOriginalTradeID("")
							.setPostTradeType("")
							.setPriceSource("st1@caplin.com")
							.setPurpose("Commercial")
							.setRemarks("")
							.setServiceContraCostCurrencyDPS("2")
							.setServiceCostCurrencyDPS(2)
							.setSpotMidRate("1.08345")
							.setSpotRate(BigDecimal.valueOf(1.08341))
							.setSpotRateDPS(5)
							.setStatus("Completed")
							.setStatusCategory("SUCCESS")
							.setStatusIsFinal("true")
							.setTOBOUser("client@customer.co.za")
							.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(BigDecimal.valueOf(1.091790))
							.setAllInRate("1.091790")
							.setAllInRateDPS("5")
							.setAllocatableAmount("500")
							.setAllocatableContraAmount("500")
							.setAmount(BigDecimal.valueOf(0))
							.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(true)
									.setIsDefaultSettlementInstruction("")
									.setNettingStatus("NETTED")
									.setSettlementAmount(BigDecimal.valueOf(0.0))
									.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(Instant.now())
								.setCanAdHoc("")
								.setCanAffirm(true)
								.setCanApproveInstructions(true)
								.setCanAutoConfirm("")
								.setCanCancel("")
								.setCanConfirm("")
								.setCanDispute(true)
								.setCanRejectInstructions(true)
								.setCanRelease("")
								.setCanReplace(true)
								.setCanUnconfirm("")
								.setConfirmedBy("")
								.setConfirmedDateTime("2018-03-16T07:25:16+00:00")
								.setIsPayNetted(true)
								.setIsPayNettingRequired("")
								.setIsPaySplit("")
								.setIsReceiveNetted("")
								.setIsReceiveNettingRequired(true)
								.setIsReceiveSplit(true)
								.setNextActionDeadline(Instant.now())
								.setNextActionDeadlineDisplayTimezone("America/New_York")
								.setSettlementStatus("")
								.build())
							.setStartDate("20150620")
							.setStartDateRisk()
							.setStartTenor("", true)
							.setStartTenorRisk()
							.setTOBOUser("client@customer.co.za")
							.setTOBOUserEditable()
							.setTOBOUserRisk()
							.setTenor("1M")
							.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(BigDecimal.valueOf(0.0))
							.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(BigDecimal.valueOf(0.0))
						.setAllInMargin(BigDecimal.valueOf(0.00054))
						.setAllInMarginEditable()
						.setAskDiscountFactor("1.2")
						.setBidDiscountFactor(BigDecimal.valueOf(1.2))
						.setComponent1(
						TradeConfPartsDef.SalesSyntheticComponentLegTradeConfirmationFields
							.newBuilder()
							.setAllInRateDPS("5")
							.setFwdMidPoints(BigDecimal.valueOf(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("0.005390")
						.setTraderOriginalRate("")
						.setTraderRemarks(
						TradeConfPartsDef.RemarksEntry
							.newBuilder()
							.build(), 0)
						.setXVAAmount("5")
						.setXVAPoints(BigDecimal.valueOf(0.000002))
						.build())
					.setSalesCommonFields(
					TradeConfPartsDef.SalesCommonTradeConfirmationFields
						.newBuilder()
						.setAmendmentReasonDisplayFields("")
						.setAmendmentSummaryDisplayFields(arg)
						.setCompetition(true)
						.setComponent1(
						TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
							.newBuilder()
							.setCurrencyPair("")
							.setDigitsBeforePips("2")
							.setNumberOfPips("2")
							.setSpotMidRate("1.08345")
							.setSpotRateDPS("5")
							.setTraderSpotRate(BigDecimal.valueOf(1.09174))
							.build())
						.setComponent2(
						TradeConfPartsDef.SalesSyntheticComponentTradeConfirmationFields
							.newBuilder()
							.build())
						.setExternalRemarks("")
						.setForwardPointsTrader("", true)
						.setForwardPointsTraderEditable()
						.setIsAdvised(true)
						.setProfit(BigDecimal.valueOf(1000))
						.setProfitCurrency("USD")
						.setProfitCurrencyDPS("5")
						.setProfitIsHouse("")
						.setProfitRate(BigDecimal.valueOf(1.091790))
						.setReasons(arg)
						.setReferenceSpotRate("")
						.setSource("WMR 8am London Time")
						.setSpotMargin(BigDecimal.valueOf(0.0), true)
						.setSpotMarginEditable()
						.setSpotTrader("")
						.setSpotTraderEditable()
						.setStreamingMode("MANUAL, STREAMING")
						.setSyntheticCrossCurrency("GBP")
						.setTraderSpotRate(BigDecimal.valueOf(1.09174))
						.setXVANetProfit("14.12")
						.setXVATotalAmount("15")
						.build())
					.build())
				.setCommonTradeDetailsFields(
				TradeDetailsPartsDef.CommonTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setLastActionDateTime(Instant.now())
					.setOneWayDirection("")
					.setRequestedDateTime("")
					.setTOBOUser("client@customer.co.za")
					.setTraderUsername("sales_trader@novobank.co.za")
					.build())
				.setInterventionTradeDetailsFields(
				TradeDetailsPartsDef.InterventionTradeDetailsFields
					.newBuilder()
					.setCompetition("")
					.setDealable(true)
					.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
					.setEntityDescription("Customer 1")
					.setIntervenerUsername("head_trader@novobank.co.za")
					.setInterventionMode("ACCEPT")
					.setInterventionStatus("")
					.setInterventionTradingType("RFS")
					.setPricingMode("AUTO")
					.setPrimaryReason("This trade exceeds the GFA")
					.setReasons("Customer Initiated")
					.setSource("WMR 8am London Time")
					.setTradeRequestID("000012345")
					.setTradeStatus("AWAITING-PRICE")
					.build())
				.setTradeDetailsFields(
				TradeDetailsPartsDef.TradeDetailsFields
					.newBuilder()
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setTradingType("SPOT")
					.build())
				.build())
			.build();
            
    }
}
```

## FX spot sales-intervention blotter record

The message specification for a spot-trade record in the FX sales-intervention blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionSpotBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionSpotBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/InterventionSpotBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "SpotTradeDetails",
      "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef.SpotTradeDetails",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsTypesDef.SpotTradeDetails.html",
      "parts": [
        {
          "part_name": "CommonTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.CommonTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.CommonTradeDetailsFields.html",
          "fields": [
            {
              "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": "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": "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": "LastActionDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date of the last action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RequestedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "",
              "example_value": "",
              "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
            }
          ]
        },
        {
          "part_name": "TradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.TradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.TradeDetailsFields.html",
          "fields": [
            {
              "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
            }
          ]
        },
        {
          "part_name": "InterventionTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.InterventionTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.InterventionTradeDetailsFields.html",
          "fields": [
            {
              "name": "InterventionStatus",
              "type": "string",
              "flags": "",
              "definition": "Use the TradeStatus field instead",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "InterventionTradingType",
              "type": "string",
              "flags": "",
              "definition": "The type of intervention that is required. Caplin supported values are [RFS, ALLOCATION, ALGO]. RFS is assumed if this is not specified. Constants are defined within com.caplin.motif.fx.trading.InterventionTradingType.",
              "example_value": "RFS",
              "deprecated": false
            },
            {
              "name": "InterventionMode",
              "type": "string",
              "flags": "",
              "definition": "Determine what type of intervention is required, such as whether it requires pricing or whether it is a simple accept/reject. Caplin supported values are [ACCEPT, PRICE]. PRICE is assumed if this is not specified.",
              "example_value": "ACCEPT",
              "deprecated": false
            },
            {
              "name": "TradeStatus",
              "type": "string",
              "flags": "",
              "definition": "The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.",
              "example_value": "AWAITING-PRICE",
              "deprecated": false
            },
            {
              "name": "Dealable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade request can be picked up by a sales trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PricingMode",
              "type": "string",
              "flags": "",
              "definition": "Whether the trade is being automatically or manually priced by the frontend. Supported types are [AUTO, MANUAL]",
              "example_value": "AUTO",
              "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": "PrimaryReason",
              "type": "string",
              "flags": "",
              "definition": "The headline reason that a trade requires intervention.",
              "example_value": "This trade exceeds the GFA",
              "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": "TradeRequestID",
              "type": "string",
              "flags": "",
              "definition": "The unique id identifying the trade to be picked up for intervention",
              "example_value": "000012345",
              "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": "IntervenerUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who is currently intervening on and potentially pricing a trade.",
              "example_value": "head_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "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": "LegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
          "fields": [
            {
              "name": "L1_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": "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_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_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_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionSpotBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionSpotBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.InterventionSpotBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef;

public class InterventionSpotBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.InterventionSpotBlotterRecord interventionSpotBlotterRecord =
		BlotterTypesDef.InterventionSpotBlotterRecord
			.newBuilder()
			.setSpotSalesTradeDetails(
			TradeDetailsTypesDef.SpotTradeDetails
				.newBuilder()
				.setCommonTradeDetailsFields(
				TradeDetailsPartsDef.CommonTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setLastActionDateTime(Instant.now())
					.setOneWayDirection("")
					.setRequestedDateTime("")
					.setTOBOUser("client@customer.co.za")
					.setTraderUsername("sales_trader@novobank.co.za")
					.build())
				.setInterventionTradeDetailsFields(
				TradeDetailsPartsDef.InterventionTradeDetailsFields
					.newBuilder()
					.setCompetition("")
					.setDealable(true)
					.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
					.setEntityDescription("Customer 1")
					.setIntervenerUsername("head_trader@novobank.co.za")
					.setInterventionMode("ACCEPT")
					.setInterventionStatus("")
					.setInterventionTradingType("RFS")
					.setPricingMode("AUTO")
					.setPrimaryReason("This trade exceeds the GFA")
					.setReasons("Customer Initiated")
					.setSource("WMR 8am London Time")
					.setTradeRequestID("000012345")
					.setTradeStatus("AWAITING-PRICE")
					.build())
				.setLegTradeDetails(
				TradeDetailsPartsDef.LegTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAmount("0")
					.setBuySell("")
					.setEntityId("CUSTONE")
					.setFixingDate("20150620")
					.setIsTimeOption(true)
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTOBOUser("client@customer.co.za")
					.setTenor("1M")
					.build())
				.setTradeDetailsFields(
				TradeDetailsPartsDef.TradeDetailsFields
					.newBuilder()
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setTradingType("SPOT")
					.build())
				.build())
			.build();
            
    }
}
```

## FX forward sales-intervention blotter record

The message specification for a forward-trade record in the FX sales-intervention blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionForwardBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionForwardBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/InterventionForwardBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "ForwardTradeDetails",
      "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef.ForwardTradeDetails",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsTypesDef.ForwardTradeDetails.html",
      "parts": [
        {
          "part_name": "CommonTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.CommonTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.CommonTradeDetailsFields.html",
          "fields": [
            {
              "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": "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": "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": "LastActionDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date of the last action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RequestedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "",
              "example_value": "",
              "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
            }
          ]
        },
        {
          "part_name": "TradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.TradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.TradeDetailsFields.html",
          "fields": [
            {
              "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
            }
          ]
        },
        {
          "part_name": "InterventionTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.InterventionTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.InterventionTradeDetailsFields.html",
          "fields": [
            {
              "name": "InterventionStatus",
              "type": "string",
              "flags": "",
              "definition": "Use the TradeStatus field instead",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "InterventionTradingType",
              "type": "string",
              "flags": "",
              "definition": "The type of intervention that is required. Caplin supported values are [RFS, ALLOCATION, ALGO]. RFS is assumed if this is not specified. Constants are defined within com.caplin.motif.fx.trading.InterventionTradingType.",
              "example_value": "RFS",
              "deprecated": false
            },
            {
              "name": "InterventionMode",
              "type": "string",
              "flags": "",
              "definition": "Determine what type of intervention is required, such as whether it requires pricing or whether it is a simple accept/reject. Caplin supported values are [ACCEPT, PRICE]. PRICE is assumed if this is not specified.",
              "example_value": "ACCEPT",
              "deprecated": false
            },
            {
              "name": "TradeStatus",
              "type": "string",
              "flags": "",
              "definition": "The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.",
              "example_value": "AWAITING-PRICE",
              "deprecated": false
            },
            {
              "name": "Dealable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade request can be picked up by a sales trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PricingMode",
              "type": "string",
              "flags": "",
              "definition": "Whether the trade is being automatically or manually priced by the frontend. Supported types are [AUTO, MANUAL]",
              "example_value": "AUTO",
              "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": "PrimaryReason",
              "type": "string",
              "flags": "",
              "definition": "The headline reason that a trade requires intervention.",
              "example_value": "This trade exceeds the GFA",
              "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": "TradeRequestID",
              "type": "string",
              "flags": "",
              "definition": "The unique id identifying the trade to be picked up for intervention",
              "example_value": "000012345",
              "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": "IntervenerUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who is currently intervening on and potentially pricing a trade.",
              "example_value": "head_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "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": "LegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
          "fields": [
            {
              "name": "L1_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": "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_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_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_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "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
            }
          ]
        },
        {
          "part_name": "NDFLegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.NDFLegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.NDFLegTradeDetailsFields.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
            }
          ]
        },
        {
          "part_name": "TimeOptionLegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.TimeOptionLegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.TimeOptionLegTradeDetailsFields.html",
          "fields": [
            {
              "name": "L1_StartDate",
              "type": "string",
              "flags": "",
              "definition": "The date of which the time option becomes active from.",
              "example_value": "20150620",
              "deprecated": false
            },
            {
              "name": "L1_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionForwardBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionForwardBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.InterventionForwardBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef;

public class InterventionForwardBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.InterventionForwardBlotterRecord interventionForwardBlotterRecord =
		BlotterTypesDef.InterventionForwardBlotterRecord
			.newBuilder()
			.setFwdSalesTradeDetails(
			TradeDetailsTypesDef.ForwardTradeDetails
				.newBuilder()
				.setCommonTradeDetailsFields(
				TradeDetailsPartsDef.CommonTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setLastActionDateTime(Instant.now())
					.setOneWayDirection("")
					.setRequestedDateTime("")
					.setTOBOUser("client@customer.co.za")
					.setTraderUsername("sales_trader@novobank.co.za")
					.build())
				.setInterventionTradeDetailsFields(
				TradeDetailsPartsDef.InterventionTradeDetailsFields
					.newBuilder()
					.setCompetition("")
					.setDealable(true)
					.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
					.setEntityDescription("Customer 1")
					.setIntervenerUsername("head_trader@novobank.co.za")
					.setInterventionMode("ACCEPT")
					.setInterventionStatus("")
					.setInterventionTradingType("RFS")
					.setPricingMode("AUTO")
					.setPrimaryReason("This trade exceeds the GFA")
					.setReasons("Customer Initiated")
					.setSource("WMR 8am London Time")
					.setTradeRequestID("000012345")
					.setTradeStatus("AWAITING-PRICE")
					.build())
				.setLegTradeDetails(
				TradeDetailsPartsDef.LegTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAmount("0")
					.setBuySell("")
					.setEntityId("CUSTONE")
					.setFixingDate("20150620")
					.setIsTimeOption(true)
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTOBOUser("client@customer.co.za")
					.setTenor("1M")
					.build())
				.setNdfLegTradeDetails(
				TradeDetailsPartsDef.NDFLegTradeDetailsFields
					.newBuilder()
					.setFixingDate("20150620")
					.build())
				.setTimeOptionLegTradeDetails(
				TradeDetailsPartsDef.TimeOptionLegTradeDetailsFields
					.newBuilder()
					.setStartDate("20150620")
					.setStartTenor("1W")
					.build())
				.setTradeDetailsFields(
				TradeDetailsPartsDef.TradeDetailsFields
					.newBuilder()
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setTradingType("SPOT")
					.build())
				.build())
			.build();
            
    }
}
```

## FX swap sales-intervention blotter record

The message specification for a swap-trade record in the FX sales-intervention blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionSwapBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionSwapBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/InterventionSwapBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "SwapTradeDetails",
      "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef.SwapTradeDetails",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsTypesDef.SwapTradeDetails.html",
      "parts": [
        {
          "part_name": "CommonTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.CommonTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.CommonTradeDetailsFields.html",
          "fields": [
            {
              "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": "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": "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": "LastActionDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "The time and date of the last action on an order.",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "RequestedDateTime",
              "type": "datetime",
              "flags": "",
              "definition": "",
              "example_value": "",
              "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
            }
          ]
        },
        {
          "part_name": "TradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.TradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.TradeDetailsFields.html",
          "fields": [
            {
              "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
            }
          ]
        },
        {
          "part_name": "InterventionTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.InterventionTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.InterventionTradeDetailsFields.html",
          "fields": [
            {
              "name": "InterventionStatus",
              "type": "string",
              "flags": "",
              "definition": "Use the TradeStatus field instead",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "InterventionTradingType",
              "type": "string",
              "flags": "",
              "definition": "The type of intervention that is required. Caplin supported values are [RFS, ALLOCATION, ALGO]. RFS is assumed if this is not specified. Constants are defined within com.caplin.motif.fx.trading.InterventionTradingType.",
              "example_value": "RFS",
              "deprecated": false
            },
            {
              "name": "InterventionMode",
              "type": "string",
              "flags": "",
              "definition": "Determine what type of intervention is required, such as whether it requires pricing or whether it is a simple accept/reject. Caplin supported values are [ACCEPT, PRICE]. PRICE is assumed if this is not specified.",
              "example_value": "ACCEPT",
              "deprecated": false
            },
            {
              "name": "TradeStatus",
              "type": "string",
              "flags": "",
              "definition": "The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.",
              "example_value": "AWAITING-PRICE",
              "deprecated": false
            },
            {
              "name": "Dealable",
              "type": "boolean",
              "flags": "",
              "definition": "Whether a trade request can be picked up by a sales trader",
              "example_value": "",
              "deprecated": false
            },
            {
              "name": "PricingMode",
              "type": "string",
              "flags": "",
              "definition": "Whether the trade is being automatically or manually priced by the frontend. Supported types are [AUTO, MANUAL]",
              "example_value": "AUTO",
              "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": "PrimaryReason",
              "type": "string",
              "flags": "",
              "definition": "The headline reason that a trade requires intervention.",
              "example_value": "This trade exceeds the GFA",
              "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": "TradeRequestID",
              "type": "string",
              "flags": "",
              "definition": "The unique id identifying the trade to be picked up for intervention",
              "example_value": "000012345",
              "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": "IntervenerUsername",
              "type": "string",
              "flags": "",
              "definition": "The user who is currently intervening on and potentially pricing a trade.",
              "example_value": "head_trader@novobank.co.za",
              "deprecated": false
            },
            {
              "name": "EntityDescription",
              "type": "string",
              "flags": "",
              "definition": "The description of a trade on behalf of entity.",
              "example_value": "Customer 1",
              "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": "LegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
          "fields": [
            {
              "name": "L1_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": "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_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_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_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "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
            }
          ]
        },
        {
          "part_name": "LegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.LegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.LegTradeDetailsFields.html",
          "fields": [
            {
              "name": "L2_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": "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_Amount",
              "type": "decimal",
              "flags": "",
              "definition": "The amount of a trade or order in the DealtCurrency.",
              "example_value": "",
              "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_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_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_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_IsTimeOption",
              "type": "boolean",
              "flags": "",
              "definition": "true if a leg is time-option",
              "example_value": "true",
              "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_StartTenor",
              "type": "string",
              "flags": "",
              "definition": "The tenor of which the time option becomes active from.",
              "example_value": "1W",
              "deprecated": false
            },
            {
              "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
            }
          ]
        },
        {
          "part_name": "NDFLegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.NDFLegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.NDFLegTradeDetailsFields.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
            }
          ]
        },
        {
          "part_name": "NDFLegTradeDetailsFields",
          "java_class": "com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef.NDFLegTradeDetailsFields",
          "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/tradedetails/TradeDetailsPartsDef.NDFLegTradeDetailsFields.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
            }
          ]
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.InterventionSwapBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.InterventionSwapBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.InterventionSwapBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

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

import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsPartsDef;
import com.caplin.generated.motif.fx.tradedetails.TradeDetailsTypesDef;

public class InterventionSwapBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.InterventionSwapBlotterRecord interventionSwapBlotterRecord =
		BlotterTypesDef.InterventionSwapBlotterRecord
			.newBuilder()
			.setSwapSalesTradeDetails(
			TradeDetailsTypesDef.SwapTradeDetails
				.newBuilder()
				.setCommonTradeDetailsFields(
				TradeDetailsPartsDef.CommonTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setEntityDescription("Customer 1")
					.setEntityId("CUSTONE")
					.setLastActionDateTime(Instant.now())
					.setOneWayDirection("")
					.setRequestedDateTime("")
					.setTOBOUser("client@customer.co.za")
					.setTraderUsername("sales_trader@novobank.co.za")
					.build())
				.setFarLegTradeDetails(
				TradeDetailsPartsDef.LegTradeDetailsFields
					.newBuilder()
					.setAccount("Garfields|GARF")
					.setAmount("0")
					.setBuySell("")
					.setEntityId("CUSTONE")
					.setFixingDate("20150620")
					.setIsTimeOption(true)
					.setSettlementDate("20160314")
					.setStartDate("20150620")
					.setStartTenor("1W")
					.setTOBOUser("client@customer.co.za")
					.setTenor("1M")
					.build())
				.setFarNdfLegTradeDetails(
				TradeDetailsPartsDef.NDFLegTradeDetailsFields
					.newBuilder()
					.setFixingDate("20150620")
					.build())
				.setInterventionTradeDetailsFields(
				TradeDetailsPartsDef.InterventionTradeDetailsFields
					.newBuilder()
					.setCompetition("")
					.setDealable(true)
					.setDisplayFields(addDefaultSalesAllocationDetailsUpdateFields(/* See DefaultDisplayFields javadoc for parameters and available builder methods. */))
					.setEntityDescription("Customer 1")
					.setIntervenerUsername("head_trader@novobank.co.za")
					.setInterventionMode("ACCEPT")
					.setInterventionStatus("")
					.setInterventionTradingType("RFS")
					.setPricingMode("AUTO")
					.setPrimaryReason("This trade exceeds the GFA")
					.setReasons("Customer Initiated")
					.setSource("WMR 8am London Time")
					.setTradeRequestID("000012345")
					.setTradeStatus("AWAITING-PRICE")
					.build())
				.setNearLegTradeDetails(
				TradeDetailsPartsDef.LegTradeDetailsFields
					.newBuilder()
					.build())
				.setNearNdfLegTradeDetails(
				TradeDetailsPartsDef.NDFLegTradeDetailsFields
					.newBuilder()
					.build())
				.setTradeDetailsFields(
				TradeDetailsPartsDef.TradeDetailsFields
					.newBuilder()
					.setCurrencyPair("")
					.setDealtCurrency("GBP")
					.setTradingType("SPOT")
					.build())
				.build())
			.build();
            
    }
}
```

## FX sales missed trade blotter record

The message specification for a record in the missed trade blotter of Caplin's FX Sales web application:

```json
{
  "message_origin": "server",
  "java_class": "com.caplin.generated.motif.fx.blotter.BlotterTypesDef.MissedTradeSalesBlotterRecord",
  "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.MissedTradeSalesBlotterRecord.html",
  "instantiation_pattern": "Builder (via .newBuilder())",
  "code_example": "https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/examples/fxapi/generated/motif/fx/blotter/BlotterTypesDef/MissedTradeSalesBlotterRecordExample.html",
  "parts": [
    {
      "part_name": "CommonMissedBlotterFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.CommonMissedBlotterFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.CommonMissedBlotterFields.html",
      "fields": [
        {
          "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": "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": "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": "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": "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": "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": "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": "SwapAskMargin",
          "type": "decimal",
          "flags": "",
          "definition": "The swap margin to be applied to the ask side",
          "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
        }
      ]
    },
    {
      "part_name": "MissedTradeLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.MissedTradeLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.MissedTradeLegFields.html",
      "fields": [
        {
          "name": "L1_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "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_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_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_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_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": "L1_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
        }
      ]
    },
    {
      "part_name": "MissedTradeLegFields",
      "java_class": "com.caplin.generated.motif.fx.blotter.BlotterPartsDef.MissedTradeLegFields",
      "javadoc": "https://docs.caplin.com/developer/api/fxintegration/com/caplin/generated/motif/fx/blotter/BlotterPartsDef.MissedTradeLegFields.html",
      "fields": [
        {
          "name": "L2_Amount",
          "type": "decimal",
          "flags": "",
          "definition": "The amount of a trade or order in the DealtCurrency.",
          "example_value": "",
          "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_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_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_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_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": "L2_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
        }
      ]
    }
  ]
}
```

Java class: [com.caplin.generated.motif.fx.blotter.BlotterTypesDef.MissedTradeSalesBlotterRecord](https://docs.caplin.com/developer/api/fxintegration/latest/com/caplin/generated/motif/fx/blotter/BlotterTypesDef.MissedTradeSalesBlotterRecord.html)

Instantiation pattern: Static Factory Method (via `BlotterTypesDef.MissedTradeSalesBlotterRecord.newBuilder()`)

Java code example:

```java
package com.caplin.examples.fxapi.generated.motif.fx.blotter.BlotterTypesDef; 

import java.math.BigInteger;

import com.caplin.generated.motif.fx.blotter.BlotterPartsDef;
import com.caplin.generated.motif.fx.blotter.BlotterTypesDef;

public class MissedTradeSalesBlotterRecordExample {
    public static void main(String[] args) {
                    		
		BlotterTypesDef.MissedTradeSalesBlotterRecord missedTradeSalesBlotterRecord =
		BlotterTypesDef.MissedTradeSalesBlotterRecord
			.newBuilder()
			.setCommonMissedBlotterFields(
			BlotterPartsDef.CommonMissedBlotterFields
				.newBuilder()
				.setCurrencyPair("")
				.setDealtCurrency("GBP")
				.setMissedReason("Traded Away")
				.setMissedTime("2013-07-24T17:13:59.985")
				.setRequestID("000012345")
				.setSpotAskMargin("1.08341")
				.setSpotAskRate("1.08349")
				.setSpotBidMargin("1.08341")
				.setSpotBidRate(BigDecimal.valueOf(1.08341))
				.setSwapAskMargin("0.004934")
				.setSwapAskPoints("0.004934")
				.setSwapBidMargin(BigDecimal.valueOf(0.004934))
				.setSwapBidPoints("0.004171")
				.setTOBOUser("client@customer.co.za")
				.setTradingType("SPOT")
				.build())
			.setFarMissedTradeLegFields(
			BlotterPartsDef.MissedTradeLegFields
				.newBuilder()
				.setAllInAskMargin("1.091790")
				.setAllInAskRate("1.091790")
				.setAllInBidMargin(BigDecimal.valueOf(1.091790))
				.setAllInBidRate("1.091790")
				.setAmount("0")
				.setSettlementDate("20160314")
				.setStartDate("20150620")
				.build())
			.setNearMissedTradeLegFields(
			BlotterPartsDef.MissedTradeLegFields
				.newBuilder()
				.build())
			.build();
            
    }
}
```
