Skip to main content

Recommended Integration Flow

A high-level implementation path that connects onboarding, host selection, state sync, market data, trading, and error handling.

  1. 1
    Create an API key and store credentials securely.
  2. 2
    Authenticate every request with signed EXN-* headers.
  3. 3
    Select the host or resolve the account access point when required.
  4. 4
    Read account, instrument, and configuration data.
  5. 5
    Subscribe to transaction events and market data.
  6. 6
    Send trading requests with non-empty idempotency keys.
  7. 7
    Process ACK, transaction_event, and operation status.
  8. 8
    Handle errors using HTTP status, Public API error code, and client action.
  9. 9
    Monitor margin, HMR, rate limits, and client tiers when final source is available.

Example pseudo-code

credentials = load_credentials()
base_url = choose_static_host_or_resolve_access_point(account_id)
headers = sign_get("/v1/configuration/accounts/{account_id}/account")
account = get_account(base_url, headers)
subscribe("transactions", account_id)
subscribe("ticks", account_id, instruments=["EURUSD"])
operation = open_position(account_id, instrument="EURUSD", volume="0.10", idempotency_key=new_key())
final_result = wait_for_transaction_event(operation.operation_id) or poll_operation_status(operation.operation_id)
handle_result_or_error(final_result)

Decision points

DecisionPreferred behavior
Need read-only integration?Use Info API key and avoid mutating endpoints.
Need trading integration?Use Exness API key, idempotency, and async event processing.
Do not know host?Resolve access point if public contract is approved.
Temporary error?Retry with backoff only when safe.
Validation/business error?Change request or account state before retrying.
Needs final validation

Client tiers, final rate-limit model, final configuration method, and final host delivery model are planned product/API updates.