Max
Max

Reputation: 5091

Available GDAX Order Statuses and Meanings

The GDAX API docs don't do a great job of enumerating the available statuses that an order can have. I see at least open, pending, active, done, and maybe settled[^1]. Has anyone determined a comprehensive list, and what each status means?

I've also tried looking at some of the libraries available, but the official clients are all weakly typed (Node, Ruby), and among the unofficial clients, the Java client uses strings, the Rust client uses strings, and the Haskell client does enumerate the types, but they're also undocumented.

[^1]: settled is probably its own field, actually.

Upvotes: 6

Views: 996

Answers (3)

Travis Kriplean
Travis Kriplean

Reputation: 436

I had the same question back in November, and emailed Coinbase. Here is the response I (eventually) received:

-- quote --

I’ve requested a list of all order types be added to the docs. Meanwhile, off the type of my head:

  • Pending – Order received and not yet processed by the trading engine
  • Open – Limit order exists on the order book
  • Active – Stop order exists on the order book
  • Done – Order no longer resting on the order book (executed)
  • Rejected – Order couldn’t be placed as specified (e.g. Post only is true, but price was at a price that would execute immediately)
  • Cancelled – Order cancelled by user or by trading engine due to Self Trade Prevention

-- end quote --

As far as I can tell, they haven't actually updated the docs yet, and the "off the top of my head" isn't too confidence-inspiring, but at least it is a response from Coinbase :)

Upvotes: 4

Markus Malkusch
Markus Malkusch

Reputation: 7878

I came here with the very same question, but at least some states are described somewhere in their documentation:

received, pending, open, done

https://docs.gdax.com/#order-lifecycle

Valid orders sent to the matching engine are confirmed immediately and are in the received state. If an order executes against another order immediately, the order is considered done. An order can execute in part or whole. Any part of the order not filled immediately, will be considered open. Orders will stay in the open state until canceled or subsequently filled by new orders. Orders that are no longer eligible for matching (filled or canceled) are in the done state.

Interestingly the above cited documentation doesn't mention the state pending. However pending is mentioned on other places of the documentation without further explanation. But one such place is the example response of a POST request for placing a new order, which happens very closely to the received state of the life cycle. They might have confused the names, or there might be a received and pending state. Without real world API responses or a statement from Coinbase it's pure speculation.

active

https://docs.gdax.com/#place-a-new-order

Stop orders become active and wait to trigger based on the movement of the last trade price.

Upvotes: 0

Rob Evans
Rob Evans

Reputation: 2874

My interpretation would be

  1. pending - the order has been received by the matching engine but is not live on the order book yet (I would have considered this the same as 'received' message type for the websocketfeed - but this could be wrong)

  2. open - order is live on the orderbook

  3. settled - order has been filled but there may be some holds (funds) to release/clear down.

  4. done - order no longer on the book and order no longer on the book cleared.

Upvotes: -1

Related Questions