- Index

< Previous |  | Next >

# FXall Relationship Trading Provider Adapter

## Introduction

The TIBCO StreamBase® Adapter for FXall Relationship Trading Provider allows a StreamBase application receive quote requests, publish prices, and accept deals in the FXall Request for Quote (RFQ) trading environment. The StreamBase application acts as the Maker in this environment.

Transactions at FXall are negotiated among several parties and executed between two parties. In both the quoting and negotiation phases, a transaction has two sides: a Customer or Taker who wishes to perform a particular transaction, and a Provider or Maker who responds by offering terms. During the negotiation phase of a transaction, there is one Taker and one or more Makers. During execution there is one Taker and one Maker.

The adapter appears on the EventFlow canvas in StreamBase Studio as two icons, which share a connection to the FXall server. The EventFlow canvas icons for this adapter are:

- FXall Relationship Trading Provider Input — a StreamBase input adapter that emits tuples in response to FXall-generated events, such as the receipt of quote and trade requests.

- FXall Relationship Trading Provider Output — a StreamBase output adapter that sends quotes and accepts deals.

Each FXall Relationship Trading Provider adapter icon has its own set of ports, the fields for which are defined later in this document. In addition, each icon has its own properties that configure the connection to the FXall server. The connection properties for each adapter icon must be configured identically to be able to start StreamBase.

The FXall Relationship Trading input adapter icon has no input ports and two output ports. The first output port emits status tuples when the state of the connection to the FXall server changes and when the adapter is suspended or resumed. The second output port emits tuples in FXall-generated events, such as the receive of quote and trade requests.

The FXall Relationship Trading Provider output adapter icon has one input and one output port. The input port is used to send quotes, withdraw previously-sent quotes, accept or reject deals, and chat with the customer who sent the quote or deal request. The output port emits status tuples when the state of the connection to the FXall server changes, when the adapter is suspended or resumed, and when an input tuple is rejected.

A typical interaction with the FXall Relationship Trading Provider adapter is:

- The input adapter receives a quote request from an FXall customer server and emits a tuple on its event port.

- The StreamBase application receives the quote request and either accepts it by enqueuing one or more SendQuote tuples to the output adapter's command port or rejects it by enqueuing an AbortQuote tuple.

- The input adapter receives a deal request from the FXall customer and emits a tuple on its event port.

- The StreamBase application receives the deal request and either accepts it by enqueuing an AcceptDeal tuple to the output adapter's command port or rejects it by enqueuing a RejectDeal tuple.

- The input adapter receives a deal completion event and emits a tuple on its event port.

## Adapter Properties

Property | Description
--- | ---
FXall URL | The URL used to connect to the FXall server.
User Name | The username for logging in to the FXall server.
Password | The password for logging in to the FXall server.
Certificate Directory | The absolute path of the directory containing the FXall keystore files.
Reconnect Interval | The time, in seconds, between attempts to (re)connect the FXall server.
Set Requirement Maker IDs | Expect a RequirementMakerIds field in the command port schema used to populate the Maker ID of each requirement of each leg during SendPickup commands.
Connect at Startup | Select this check box to have the adapter connect to the FXall server at startup. The command port can be used after startup to connect or disconnect.
Verbose Reconnection | An information message is logged each time a reconnection attempt fails.
Enable Send Quote Time Instrumentation | When actively quoting, periodically log the average time spent in the call to the FXall API SendQuote() method.
Log XML Messages at INFO Level | Select this check box to have the input/output adapter log incoming/outgoing XML messages at INFO rather than DEBUG level.
Default Quote Time To Live (FXall output adapter only) | The time, in seconds, for quotes to live, if not overridden by the corresponding value in a `SendQuote` tuple.
Log Level | Controls the level of verbosity the adapter uses to send notifications to the console. This setting can be higher than the containing application's log level. If set lower, the system log level is used. Available values, in increasing order of verbosity, are: OFF, ERROR, WARN, INFO, DEBUG, TRACE.
Use Custom Order Schema (FXall input adapter only) | Select this check box to specify a custom schema with which to emit order tuples on the event port.
Custom Order Schema (FXall input adapter only) | Specifies the custom schema with which to emit order tuples on the event port.

## Using the Adapter in a StreamBase Application

This section describes how to use the FXall Relationship Trading Provider adapter in a StreamBase application. As shown in this adapter's sample application, the adapter appears as two icons on the EventFlow canvas.

### Note

In this adapter's sample application, the some of the adapters' input and output ports are connected directly to externally-visible input and output streams. However, in more complex applications these ports will typically be connected to internal StreamBase operators.

### Adding the Adapter to an EventFlow Application

Add an instance of the adapter to a new StreamBase EventFlow application as follows:

1. In StreamBase Studio, create a project, including an empty StreamBase EventFlow application file to host the adapter.

2. From the Operators & Adapters drawer, drag an FXall Relationship Trading Provider Input adapter to the canvas.

3. From the Operators & Adapters drawer, drag an FXall Relationship Trading Provider output adapter to the canvas.

4. Select the Parameters tab at the bottom of the EventFlow editor. In the Parameters tab, create parameters named `fxall_url`, `fxall_username`, `fxall_password`, `fxall_certificate_directory`, `fxall_reconnect_interval`, and `fxall_quote_time_to_live`. Enter your site-specific values for each parameter.

5. Select the Editor tab at the bottom of the EventFlow editor.

6. Select the FXall Relationship Trading Input adapter icon, and in the Properties view, select the Adapter Settings tab.

7. Enter `${fxall_url}`, `${fxall_username}`, `${fxall_password}`, `${fxall_certificate_directory}`, and `${fxall_reconnect_interval}` in the corresponding text entry box for each parameter.

8. Repeat the previous two steps for the FXall Relationship Trading Provider output adapter adapter icon, including the `fxall_quote_time_to_live` parameter as well.

9. Connect Input and Output Streams to the adapters' input and output ports.

10. Configure the schemas of the input stream with the fields listed in the section below that describe the output adapter's input port. Note that the output adapter will generate typecheck errors when the input stream is missing required fields, when unexpected fields are present, or when fields are of the wrong type. TIBCO recommends you start with the FXall Relationship Trading Provider adapter sample as the basis for creating your application, since it already has the input schema defined.

## This Adapter's Ports and Schemas

The FXall Relationship Trading Provider adapter suite consists of an input and output adapter. Each adapter has a specific set of ports to communicate with the surrounding application. As with other StreamBase adapters and operators, you can optionally enable an Error Output Port, as described in Using Error Ports and Error Streams.

- Input Adapter Ports

- Output Adapter Ports

### Input Adapter Ports

The FXall Relationship Trading input adapter emits tuples in response to events received from the FXall server, such as the receipt of quote requests, deal requests, and completed deals. It has no input ports and two output ports:

- Input Adapter, Output Port 1: FXallInputStatus

- Input Adapter, Output Port 2: FxallEvents

#### Input Adapter, Output Port 1: FXallInputStatus

FXallInputStatus: The input adapter emits tuples on this port in response to important adapter events such as connection transitions and adapter suspend and resume activity.

- type, string: the type of event:

  - Connection

  - ConnectionStatus

  - SuspendResume

- action, string: the action associated with the event:

  - Up — Connection to FXall server is up

  - Down — Connection to FXall server is down

  - Suspending — Adapter is being suspended

  - Resumed — Adapter has been resumed

- object, string: the connection information when a connection goes up or down, or the adapter icon name when the adapter is suspended or resumed.

- message, string: a human-readable version of the event.

#### Input Adapter, Output Port 2: FXallEvents

FXallEvents: Tuples are emitted on this port when events are received from the FXall server.

- EventType, string: the type of FXall event received. Zero or more additional FXallEvents fields are populated based on the event type.

  - AcceptTermsAck — the FXall server acknowledges receipt of a previous SendAcceptTerms request for a resting order (NOT YET SUPPORTED).

    Related fields: FXallId

  - ChatMessage — an in-deal chat message has been received from the Taker.

    Related fields: FXallId, ChatMessage

  - CustomerLatencyReport — periodically delivers the most recent latency report for currently active customers.

    Related fields: LatencyData

  - DealCompleted — FXall has completed and stored a trade.

    Related fields: Completed, Order

  - DealRequest — the taker wishes to execute a trade.

    Related fields: FxallId, Order

  - InfoRequest — the FXall system requests information on a deal from the Maker's System.

    Related fields: FxallId, InfoRequestType, InfoRequestArgument

  - LatencyReport — periodically called to deliver the most recent latency report for the adapter's connection to FXall.

    Related fields: LatencyData

  - PostTradeRequest — delivers a post-trade allocation report for splits.

    Related fields: Order

  - QuoteAck — the Taker acknowledges receipt of a quote.

    Related fields: FxallId

  - QuoteRequest — the remote system requests a quote on the order supplied.

    Related fields: FxallId, Order, LatencyData

  - QuoteRequestWithdrawn — a trade has terminated unsuccessfully.

    Related fields: FxallId, Order

- FxallId, string: the unique ID generated by FXall when the deal was submitted.

- ChatMessage, string: the contents of the chat message received from a provider.

- Completed, bool: true if the deal was successfully processed and false otherwise.

- InfoRequestType, string:

  - STATUS: requests the status of the trade identified on the request

  - UNKNOWN: undefined InfoRequestType, reserved for backwards compatablity

- InfoRequestArgument, string: additional information required by the request type. For CInfoRequestType.STATUS, contains the FXall ID of the order.

- Order, tuple: the order submitted by the customer (taker). The order tuple has the schema described in the table below. The order tuple schema can be overridden using the Custom Order Schema property.

- LatencyData, tuple: the most recent latency report for this connection to FXall. The latency data tuple has the schema described in the table below.

- CustomerLatencyData, list(tuple): the most recent latency report for currently active customers. Each customer latency data tuple has the schema described in the table below.

  The order tuple has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  AutoTradable | bool | Indicates that order is most likely priced by an auto-pricing system.
  DealDate | string | The FX date (YYYYMMDD) the order was created.
  DealRemarks | list(tuple) | Zero or more remarks associated with the deal. Each deal remark has the following fields: DealRemarkLines, list(string): up to ten deal remark strings associated with the order.
  DealTime | string | The FX time (HHMMSS) the order was created.
  ExecOnSpot | bool | True if the order is in the first stage of a Spot-n-Roll Order and false otherwise.
  Fee | string | The fee associated with this transaction.
  FeeCurrency | string | The currency of the fee associated with this transaction.
  FixingOrderDetails | tuple | The fixing order details of the order. The fixing order details tuple has the schema described in the table below.
  FXallId | String | The ID of the order within the FXall System.
  InCompetition | bool | True if the quote request for this order was submitted to multiple Makers and false otherwise.
  Instrument | string | The Instrument this order relates to.
  InstrumentOrders | list(tuple) | One or more more instrument orders associated with the order. Each instrument order tuple has the schema described in the table below.
  IsMbeOrder | bool | True if this is a multi-bank execution order and false otherwise.
  MakerGroupName | string | The name of the group to which the Maker that priced the Order belongs.
  MakerId | string | The ID of the order within the Counterparty (Maker's) Electronic Trading System.
  MakerInstitution | string | The institution to which the Maker belongs.
  MakerLocation | string | The location of the Maker that priced the Order.
  MakerName | string | The name of the Maker that priced the Order.
  MakerOrderConfirmation | string | A confirmation of (or reference to) the completed deal within the Maker's back-office system.
  MakerOrderCustom | string | Field for custom-use by the Maker.
  MakerOrderReference | string | A reference to the order within the Maker's back-office system.
  NonNegotiated | bool | True if the order was negotiated and false otherwise.
  NumCompetitors | int | The number of competitors in this deal.
  OrderBatchCount | int | The number of orders in the batch.
  OrderBatchId | int | The ID of the batch containing this order.
  OriginalFXallId | string | The FXallId of the original deal on which this Order represents Splits / Rolls, and so on.
  OriginalMakerId | string | The MakerId of the original order on which this Order represents Splits / Rolls, and so on.
  OriginalTakerId | string | The TakerId of the original deal on which this Order represents Splits / Rolls, and so on.
  OtdVariant | string | The Offer-to-Deal type on this order: `AT_BEST`, `AT_QUOTE`, `MARKET`, or `NO_WORSE`.
  PrimeBrokerTaker | string | The Prime Broker's Taker ID.
  Protocol | string | The trading protocol that used to negotiate this deal: `CLASSIC_RFQ`, `FIXING_ORDER`, `QUICK_FILL`, `QUICK_TRADE`, or `RESTING`.
  ServerMatched | bool | True if FXall matches the Offer to Deal with the current quote at FXall to complete the deal and false otherwise (NOT YET SUPPORTED).
  State | string | The state of the order: COMPLETED or LIVE.
  TakerGroupName | string | The name of the group to which the Taker that submitted the Order for trading belongs.
  TakerId | string | The ID of the order within the Taker's System.
  TakerInstitution | string | The institution to which the Taker belongs.
  TakerName | string | The name of the Taker that submitted the Order for trading.
  TakerOrderConfirmation | string | A confirmation of (or reference to) the completed deal within the Taker's back-office system.
  TakerOrderCustom | string | A field reserved for custom-use by the Taker.
  TakerOrderReference | string | The reference to the order within the Taker's back-office system.
  TruncationOrder | bool | .

  The LatencyData tuple has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  LongTerm | int | The average long-term network round-trip latency for this connection to FXall.
  MediumTerm | int | The average medium-term network round-trip latency for this connection to FXall.
  ShortTerm | int | The average short-term network round-trip latency for this connection to FXall.

  Each member of the CustomerLatencyData list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  CustomerName | string | The customer's name.
  LatencyData | tuple | The round-trip latencies for the customer's connection, as defined in the table above.

  The FixingOrderDetails tuple has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  FixingDate | string | The Fixing Date in YYYYMMDD format relative to the FixingTimeZone.
  FixingSeries | string | The fixing series.
  FixingTime | string | The Fixing Time in HHMMSS format relative to the FixingTimeZone.
  FixingTimeZone | string | The Local Fixing Time Zone.
  GMTFixingDate | string | The Fixing Date in YYYYMMDD format relative to GMT.
  GMTFixingTime | string | The Fixing Time in HHMMSS format relative to GMT.
  MakerFixingKey | string | The Fixing Key defined by the Maker for the Fixing Series, Fixing Time and Fixing Time Zone.

  Each member of the InstrumentOrders list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  Type | string | The order type, one of: `Spot`, `Forward`, `Swap`, or `Block`.
  BaseCurrency | string | The base currency for the order.
  TermsCurrency | string | The terms currency for the order.
  DealtCurrency | string | The currency that the amounts are specified in.
  DealtAmount | string | The net amount of the dealt currency bought or sold in this order.
  ContraAmount | string | The net amount of the contra currency bought or sold in this order.
  AdditionalCurrencyInfo | tuple | Returns Additional information for the Emerging Market Currency, as defined in the following table.
  Legs | List(tuple) | One or more leg records in the order. Each tuple member of the Legs list has the schema described in the table below.

  The AdditionalCurrencyInfo tuple has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  BusinessDayConvention | string | The convention used for adjusting a date if it would otherwise fall on a day that is not a business day.
  Deliverable | bool | True if this currency is deliverable and false otherwise.
  DisruptionFallback | string | The fallback settlement terms, which gives rise to either an alternative basis for determining the settlement rate or an alternative basis for settling a transaction when a disruption event has occurred.
  FinancialCenter | string | The name of the financial center used for fixing.
  FixingDate | string | The date of fixing for non-deliverable currency (YYYYMMDD format).
  FixingReference | string | The description of the fixing for a non-deliverable currency.
  FixingTime | string | The time of the fixing.
  GoverningLaw | string | The law to be applied to the agreement.
  OnShoreMarket | bool | True if this currency is traded onshore and false otherwise.
  SettlementCurrency | string | The currency of settlement.

  Each member of the Legs list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  Num | int | The zero-based number of this leg.
  TakerBuysBase | bool | True if the Taker is making a net buy of the base currency for this leg and false otherwise.
  SpotDate | string | The Spot Date of all the requirements within this leg.
  ValueDate | string | The value date in YYYYMMDD format of this Leg.
  ValueDateType | string | The shorthand value date type of all requirements within this leg.
  DealtCurrency | string | The currency in which the round amount is specified.
  DealtAmount | string | The net amount of the dealt currency bought or sold in this leg.
  ContraAmount | string | The net amount of the contra currency bought or sold in this leg.
  Components | list(tuple) | One or more cross component pricing record within this FX Leg. Each component record has the schema described in the table below.
  Requirements | list(tuple) | One or more requirement records within this FX leg. Each requirement record has the schema described in the table below.
  FixingDate | string | The per-leg fixing date.
  MidRate | string | The mid rate. Note: In a swap deal if either of the legs require a mid rate then both the legs should have midrate value set.
  USILeg | string | The usi value on the leg level.

  Each member of the Components list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  Num | int | The zero-based number of this component.
  Side | string | The component side, one of: `Bid` or `Ask`.
  CurrencyPair | string | The currency pair this rate component corresponds to.
  IndicativeQuote | tuple | The indicative rates supplied by the Price Maker and viewable by the Price Taker. The schema of the quote tuple has the schema described in the table below.
  Quote | tuple | The dealable rates supplied by the Price Maker and viewable by the Price Taker. The schema of the quote tuple has the schema described in the table below.
  SpotDecimalPlaces | int | The market convention for the number of decimal places that the spot rate should be quoted to (it may be supplied to a greater precision).
  FwdPtsDecimalPlaces | int | The market convention for the number of decimal places that the forward points rate should be quoted to (it may be supplied to a greater precision).
  FwdPtsCoefficient | int | The number of decimal places to shift the forward points value before adding it to the spot price in calculating the all-in price.
  FractionalDecimalPlaces | int | The market convention for the additional number of decimal places that the spot rate should be quoted to when using fractional pricing (it may be supplied to a greater precision).
  FractionalFwdPtsDecimalPlaces | int | The market convention for the additional number of decimal places that the forward points should be quoted to when using fractional pricing (it may be supplied to a greater precision).
  AllInDecimalPlaces | int | The market convention for the number of decimal places that the all-in rate should be quoted to (it may be supplied to a greater precision).

  Each member of the Requirements list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  Num | int | The zero-based number of this component.
  TakerBuysBase | bool | True if the Taker is buying the base currency and false otherwise. A null value indicates the direction is not being disclosed.
  Account | string | The Taker account name.
  AccountLongName | string | The Taker long account name.
  DealtCurrency | string | The currency that the dealt amount is specified in.
  DealtAmount | string | The amount of the dealt currency being bought or sold.
  ContraAmount | string | The amount of the contra currency being dealt.
  MakerCustom | string | Field for custom-use by the Maker.
  TakerCustom | string | Field for custom-use by the Taker.
  SettlementDetails | list(tuple) | One or more settlement detail records associated with the requirement. Each settlement detail record has the schema described in the table below.

  The Quote tuple has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  SpotRate | string | The Taker spot rate used to calculate the all-in rate.
  ForwardPoints | string | The relative Taker forward points (in pips) used to calculate the all-in rate.
  AllInRate | string | The Taker all-in (forward) rate.
  TimeToLive | int | The time (in seconds) for which this quote is valid (where supported).
  Reference | string | The maker's reference for this quote.
  Size | string | The quote size, or -1 if the size not set.

  Each member of the SettlementDetails list has the following schema:

  Field | Data Type | Description
  --- | --- | ---
  Type | string | The type of settlement instructions to be used: Standard — represents standard settlement instructions. Special — represents special, non-standard settlement instructions.
  Lines | list(string) | A list of lines in the settlement details.

- LatencyData, tuple: the most recently available network latency report.

- CustomerLatencyData, list(tuple): the most recently available network latency reports for customers who are currently connected and actively using trading data from this connection.

- ArrivalTime, long: the value of the system's nanosecond timer upon receipt of the event from the FXall API.

### Output Adapter Ports

The FXall Relationship Trading Provider output adapter receives quote requests, sends quotes, and accepts or rejects deals. It has one input port and one output port:

- Output Adapter, Input Port 1: Command

- Output Adapter, Output Port 1: FXallOutputStatus

#### Output Adapter, Input Port 1: Command

Command: Tuples are enqueued on this port to manage the FXall server connection, send quotes, and accept or reject deals.

- Command, string: the command to be executed by the FXall output adapter:

  - Connect — connects to the FXall server.

    Related fields: none

  - Disconnect — disconnects from the FXall server.

    Related fields: none

  - Status — queries the status of the FXall server connection. A tuple is emitted on the FXallOutputStatus port with type `ConnectionStatus` and action `Up` or `Down` to convey the connection status.

    Related fields: none

  - ControlCustomerQuote — tells FXall which shareable stream to contribute to a customer's private marketplace and limits the maximum size of quote that they will be shown.

    Related fields: FXallId, MakerId, MakerName, MakerGroupName, SizeLimit

  - AbortQuote — withdraws the last quote sent to a client and indicates no further quotes will be supplied for the particular order.

    Related fields: FXallId, StandardMsgCode

  - AcceptDeal — accepts a deal request.

    Related fields: FXallId

  - SendChatMessage — sends a chat message to the requester of the trade.

    Related fields: FXallId, ChatMessage

  - SendInfoResponse — sends a response to a previously received Info Request.

    Related fields: FXallId, InfoRequestType, InfoRequestRejected, OrderRejectReason

  - SendPickup — signals to the FXall system that the Order is being processed.

    Related fields: FXallId, MakerId, MakerName, MakerGroupName, RequirementMakerIds

  - SendQuote — sends a quote in response to a quote request

    Related fields: FXallId, MakerId, Bid, Ask

  - RejectDeal — FXallId, StandardMsgCode

    Related fields: rejects a deal request.

  - WithdrawQuote — withdraws the last quote sent in the stream identified by the the FXallId and MakerId. This command can be used to withdraw a quote sent in any protocol, but is required if the quote being withdrawn was part of a shareable stream.

    Related fields: FXallId, MakerId, StandardMsgCode

- FXallId, string: the FXall system ID of the affected order.

- MakerId, string: the Maker's ID for the terms identified by FXallId.

- MakerName, string: the individual handling the order at the maker.

- MakerGroupName, string: the group handling the order at the Maker.

- SizeLimit, string: the maximum amount the customer is allowed to trade.

- StandardMsgCode, string: the FXall standard message for the quote or deal being aborted, withdrawn, or rejected

  - BadLogIn

  - ClientTradeAck

  - CustomerAccept

  - DeniedAcctNotMapped

  - DeniedAmountUnderMin

  - DeniedBaddecimal

  - DeniedCcyPairNotSupported

  - DeniedCredit

  - DeniedInvalidAmount

  - DeniedInvalidBusDay

  - DeniedInvertCcyNotSupported

  - DeniedNoMultiAllocation

  - DeniedNoPermission

  - DeniedNoSendDetails

  - DeniedNoTwoWayPrice

  - DeniedProductNotSupported

  - DeniedProviderNotAvailable

  - DeniedStaleQuote

  - DeniedSystem

  - DeniedTenorNotSupported

  - DeniedTradeCredit

  - ExecutionDoubtful

  - InfoRequest

  - LockedOut

  - MakerConfirm

  - MakerPickUp

  - MakerStoppedDeal

  - NoPickUp

  - NothingDone

  - ProviderConnect

  - ProviderDisconnect

  - QuoteWithdrawn

  - RFQSent

  - StatusReport

  - StatusRequest

  - UserConnect

  - UserDisconnect

- ChatMessage, string: the content of the chat message.

- InfoRequestType, string: the type of InfoRequest event being responded to with a SendInfoResponse command. `STATUS` is currently the only supported value.

- InfoRequestRejected, bool: True if the order associated with the FXallId is being rejected and false otherwise.

- ObjectRejectReason, string: The additional information, such as the reject reason, provided with a SendInfoResponse command.

- PriceLegs, list<tuple>: a list of tuples containing price information, one per leg in the original order. Each price tuple has three fields:

  - Bid, tuple: the bid quote. The bid tuple has the schema described in the table below.

  - Ask, tuple: the ask quote. The ask tuple has the schema described in the table below.

    Field | Data Type | Description
    --- | --- | ---
    Reference | string | The reference to this quote within the maker's system.
    TimeToLive | int | The time (in seconds) this quote is valid for (where supported).
    SpotRate | string | The taker spot rate used to calculate the all-in rate.
    AllInRate | string | The taker all-in (forward) rate.
    ForwardPoints | string | The relative taker forward points (in pips) used to calculate the all-in rate.

  - MidRate, string: the mid rate value. Note: In a swap deal if either of the legs require a mid rate then both the legs should have midrate value set.

- RequirementMakerIds, list<list<string>>: This field must be present if and only if the `Set Requirement Maker IDs` property is enabled. It contains the Maker ID values used to populate each requirement of each leg during a SendPickup command. The outer and inner lists correspond to the leg and requirement objects, respectively. The number of top-level and nested list entries must match, respectively, the number of legs and requirements in the order. If the field is null, no requirement maker IDs are populated.

#### Output Adapter, Output Port 1: FXallOutputStatus

FXallOutputStatus: The output adapter emits tuples on this port in response to important adapter events such as connection transitions, adapter suspend and resume activity, and rejected input tuples.

- type, string: the type of event:

  - Connection

  - ConnectionStatus

  - SuspendResume

  - User Input

- action, string: the action associated with the event:

  - Up — connection to FXall server is up

  - Down — connection to FXall server is down

  - Suspending — adapter is being suspended

  - Resumed — adapter has been resumed

  - Rejected — an input (command) tuple has been rejected

  - Failed — a call to an FXall API method failed, possibly because the connection to the FXall server is down

- object, string: the connection information when a connection goes up or down, the adapter icon name when the adapter is suspended or resumed, or the input tuple that was rejected.

- message, string: a human-readable version of the event.

- inputTuple, tuple: a copy of the input tuple if the event was the result of processing an input tuple or null othersise.

## Typechecking and Error Handling

The FXall Relationship Trading Provider adapter uses typecheck messages to help you configure the adapter within your StreamBase application. In particular, the adapter generates typecheck messages for the following reasons:

- A required property such as the FXall host name or username is missing.

- One or more required fields in an input schema is missing or is of the wrong type.

- One or more unexpected fields are present in an input schema.

The adapter generates warning messages during runtime under various conditions, including:

- The adapter fails to connect or loses its connection to the FXall server.

- A tuple is enqueued to the output adapter while the connection to the FXall server is down.

- A tuple enqueued to the output adapter contains one or more missing or invalid arguments.

## Suspend and Resume Behavior

When suspended, the adapter continues to receive and process FXall messages, but no longer emits tuples on its output ports.

When resumed, the adapter once again starts emitting tuples on its output ports.

## Related Topics

- Using Embedded Adapters