Expired Quote Handling

Recovery and cancellation process for expired quotes.

Normal Deal Execution

Deals are confirmed once funding transactions are received or observed prior to quote expiration. Each quote can only be dealt on once.

Payout is subject to timely confirmation of transactions.

Quote Expiration

Streaming quote expiration is dynamic, defaulting to 20 seconds after being replaced by a newer quote. Snapshot quotes obtained from Deal-At-Best expire after 20 seconds by default.

Fast Deal Execution

The presence of in-flight funding transactions are actively monitored, for example, by scanning mempool for blockchain transactions with a high likelihood of success.

In-flight settlements will be placed in the UNCONFIRMED state which indicates payment risk is covered at the quoted price. In such cases, transactions only need to be observed, along with sufficient network fee, to lock-in quoted prices.

Automatic Recovery

If a funding settlement is received or observed after expiry, the current state of the market is compared to the state of the market at time of quoting. If the market delta passes a set of propriety internal risk controls the transaction will be accepted at the originally quoted price without intervention.

At-Best Recovery

For cases where funding settlement is received after expiry AND Automatic Recovery is not possible, an "at-best" recovery method can be used IF enabled.

At-Best recovery will fetch a new quote for the pair and quantity of the funded currency, then exchanged at the prevailing market price. This could result in a better or worse outcome for the user, and as such must be opted-in via configuration.

To enable this option allow_at_best_recovery must be set to true in the /intent_to_trade request.

POST /api/v1/transaction/intent_to_trade
{
	"api_key": "3ded0834-6bc5-4442-86ec-bd1fb96a075e",
  "symbol": "BTC/BCH",
  "currency": "BCH",
  "side": "sell",
  "quantity": "0.04",
  "tos_consent": true,
  "allow_at_best_recovery": true,
  "funding_settlement": {
    "method": "BLOCKCHAIN_TRANSFER"
  },
  "payout_settlement": {
    "method": "LIQUID_WALLET",
    "input_parameters": {
      "account_key": {
        "type": "WALLET_ADDRESS",
        "value": "1KkKMwgsHMm9DnaPanB9LYxcd6qnK9Ycjs"
      }
    }
  }
}

Cancellation: Refund/Proceed

Current State

In the event that a transaction cannot be recovered via any of the above automatic recovery methods, then manual intervention is required to either refund the deposit to the end user or negotiate completing the transaction.

Planned

In cases where a user has supplied an email, they will automatically be contacted via email with steps to either refund the transaction or complete the deal at the prevailing market rate. It is also possible for partners to receive this email instead of the user.

Last updated