Cancel a pending order
Request
Synthetic example for the production API. Replace YOUR_API_KEY and the ids. Do not send it against a live account until you mean to.
curl -X POST "https://api.fxapis.com/v1/orders/ACCOUNT_ID/cancel" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Idempotency-Key: 3f0c9a52-8a8e-4f7e-9b0e-6c1d2f5a7b10"Removes a pending order that has not triggered. If it already has, the broker refuses with 10035 — at that point there is a position, not an order, and what you want is a close.
Authorization
apiKey Authorization: Bearer fx_live_<id>_<secret>.
A key is shown once, at creation. We cannot show it again or recover it for you.
Keys carry a label (live or test) in the key itself, so each configuration is easy to tell
apart. Both reach real brokers: test with a broker demo account.
Scopes are per key. A key without accounts:write can read accounts and nothing else.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.fxapis.com/v1/orders/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel"{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9", "clientOrderId": null, "symbol": "string", "instrument": "XAUUSD", "side": "buy", "type": "market", "intent": "open", "brokerPositionId": null, "volume": null, "stopLoss": null, "takeProfit": null, "state": "accepted", "stateDetail": null, "needsReconciliation": true, "retcode": null, "retcodeText": null, "brokerOrderId": null, "brokerDealId": null, "filledVolume": null, "filledPrice": null, "sentAt": null, "settledAt": null, "reconciledAt": null, "createdAt": "2019-08-24T14:15:22Z" }}See how each instrument maps onto an account's broker GET
For every instrument, the symbol an order naming it will trade on this account — or why it cannot: the broker has several plausible symbols (`ambiguous`, with `candidates`), or does not offer it (`missing`). Useful when a member connects, to tell them which signals their account can follow. A symbol is mapped automatically only when its name matches and, where the market has one standard contract, its contract size agrees: gold quoted per gram is never taken for gold per ounce. Returns 409 `SYMBOLS_NOT_SYNCED` for an account that has never been online.
Close a position POST
Closes a position in whole, or partly if you send a `volume`. **Send an `Idempotency-Key`.** It matters more here than on an opening order: a retried close does not close twice, it opens an opposing position, and the account ends up with exposure nobody chose. The three failure modes are the same as for an opening order, and `ORDER_UNRESOLVED` means the same thing — **do not resend**, poll the order. An unresolved close is the case where you might believe you are flat and not be.