This is just a brief description of the order placement normal flow in API V2. For further detail go to the API specification document here

For Place orders use PlaceOrdersNoReceipt:

This method allows the user to place one or more orders(up to a maximum of 50) on the exchange and returns the handle of each order placed. It does not return any indication of the match status of the orders (and accordingly does not wait for the matching cycle to complete before returning). To make an order placement request you specify a collection of orders to be placed:

Argument Description Mandatory
WantAllOrNothingBehaviour Flag controls whether all or nothing behaviour is desired. If the value is set to true: no orders will be placed if any error occurs. If the value is set to false. if an acceptable error occurs, all orders without errors will be placed. If a non-acceptable error occurs when placing any order, then no orders will be placed. Y
Handle Selection handle. Y
RequestedStake Requested stake. Any orders placed with a stake below the minimum for the applicable currency will result in a return code of NoUnmatchedAmount being returned to the caller.
The minimum stake amounts for supported currencies are:
EUR minimum stake =”0.5″
GBP minimum stake =”0.5″
USD minimum stake =”0.5″
SGD minimum stake =”1″
Y
RequestedPrice Requested price. The GetOddsLadder method can be used to dynamically obtain the odds ladder (as opposed to hard-coding it) as the odds ladder may periodically change. The odds ladder returned identifies the only prices at which orders should be placed. It does not necessarily mean that prices returned (from GetPrices) will only contain those prices (it is possible that for short periods after a change in the odds ladder additional prices may be returned). Y
Polarity Specifies if the order is a Back or a Lay. The possible values are:
For(1), Against(2)
Y
ExpectedSelectionResetCount When placing a bet the ExpectedSelectionResetCount value must be set to the SelectionResetCount value that is in the Selection object that is returned by GetPrices and GetMarketInformation. The purpose of this is to ensure that you are aware of the state of the market before placing a bet i.e. a reset would occur if the market were reset due to a goal being scored. If the ExpectedSelectionResetCount that you submit to the server is not the same as the SelectionResetCount that is on the server, then your bet will NOT be accepted, and you will get an error. Y
ExpectedWithdrawalSequenceNumber Should be the same as the market WithdrawalSequenceNumber returned by GetEventSubTreeNoSelections, GetMarketInformation and GetPrices. The purpose of this is to ensure that you are aware of the state of the market before placing a bet i.e. the sequence number would be incremented if a selection was withdrawn. If the ExpectedWithdrawalSequenceNumber that you submit to the server is not the same as the WithdrawalSequenceNumber that is on the server, then your bet will NOT be accepted, and you will get an error. Y
CancelOnInRunning Flag indicating whether unmatched portion of an order automatically gets cancelled or not, when the market turns inRunning. Y
CancelIfSelectionReset Flag indicating whether the unmatched portion of an orders automatically gets cancelled or not, when the selection ResetCount changes. For example, a Selection reset occurs when a goal is scored in an InRunning market etc. Y
WithdrawRepriceOption Enumeration defining the action to take on a specific order, if a withdrawal occurs on the Market that could cause a Rule-4 deduction factor to be applied to the order (this option only controls what happens to the unmatched parts of orders. The portion of the order that has already been matched will have the Rule-4 deduction applied regardless of the value of this option). The possible values are:
Reprice (1), Cancel (2), DontReprice (3)
Y
RestrictOrderToBroker Deprecated. N/A

 

For Update orders use UpdateOrdersNoReceipt:

This method allows the user to update one or more orders(up to a maximum of 50) on the Exchange. This changes the price or the amount (or both) of an existing orders. It does not return any indication of the match status of any of the orders concerned (and accordingly does not wait for the matching cycle to complete before returning). It returns a separate return code for each order specified. The call will return an error if an attempt is made to change an order that is currently subject to an in-running delay. To make an update request you specify a collection of orders to be updated:

Argument Description Mandatory
Handle Order handle that we want to update. Y
DeltaStake Change in Stake. Any orders updated with a stake below the minimum for the applicable currency will result in a return code of NoUnmatchedAmount being returned to the caller.
The minimum stake amounts for supported currencies are:
EUR minimum stake =”0.5″
GBP minimum stake =”0.5″
USD minimum stake =”0.5″
SGD minimum stake =”1″
Y
Price Requested Price. The GetOddsLadder method can be used to dynamically obtain the odds ladder (as opposed to hard-coding it) as the odds ladder may periodically change. The odds ladder returned identifies the only prices at which orders should be placed. It does not necessarily mean that prices returned (from GetPrices) will only contain those prices (it is possible that for short periods after a change in the odds ladder additional prices may be returned). Y
ExpectedSelectionResetCount When placing a bet the ExpectedSelectionResetCount value must be set to the SelectionResetCount value that is in the Selection object that is returned by GetPrices and GetMarketInformation. The purpose of this is to ensure that you are aware of the state of the market before placing a bet i.e. a reset would occur if the market were reset due to a goal being scored. If the ExpectedSelectionResetCount that you submit to the server is not the same as the SelectionResetCount that is on the server, then your bet will NOT be accepted, and you will get an error. Y
ExpectedWithdrawalSequenceNumber Should be the same as the market WithdrawalSequenceNumber returned by GetEventSubTreeNoSelections, GetMarketInformation and GetPrices. The purpose of this is to ensure that you are aware of the state of the market before placing a bet i.e. the sequence number would be incremented if a selection was withdrawn. If the ExpectedWithdrawalSequenceNumber that you submit to the server is not the same as the WithdrawalSequenceNumber that is on the server, then your bet will NOT be accepted, and you will get an error. Y

For Getting the Order Status:

To get the most recent sequence number, use the ListBootstrapOrders as this will return all the current orders – orders that have not been settled. This will return up to 500 orders at a time and repeatedly call this until the latest orders have been returned (<500 returned). When you get to the latest order, take the sequence number from that order and pass that to the ListOrdersChangedSince call.

ListOrdersChangedSince is called repeatedly through out the day to get any updates on all the bets on that account. The punter can then reconcile their position with this information. Each time, they should take the sequence number of the last order returned by the ListOrdersChangedSince call and use this as the sequence number to pass to the next ListOrdersChangedSince call.