Recommended Integration Flow
A high-level implementation path that connects onboarding, host selection, state sync, market data, trading, and error handling.
Recommended journey
- 1Create an API key and store credentials securely.
- 2Authenticate every request with signed
EXN-*headers. - 3Select the host or resolve the account access point when required.
- 4Read account, instrument, and configuration data.
- 5Subscribe to transaction events and market data.
- 6Send trading requests with non-empty idempotency keys.
- 7Process ACK,
transaction_event, and operation status. - 8Handle errors using HTTP status, Public API error code, and client action.
- 9Monitor 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
| Decision | Preferred 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.