Webhooks
Receive signed position lifecycle notifications and process retries safely.
Use webhooks to start and stop event-driven workflows in your organization’s backend. Your application owns its trading rules and decides what to do with each event.
Available events
Section titled “Available events”| Event | When it is sent |
|---|---|
position.opened |
A market or pending order creates an open position. |
position.closed |
A position is fully closed. Partial closes do not produce this event. |
finance.transaction.completed |
A deposit or withdrawal is committed to the account ledger. |
Register an HTTPS receiver in Koneth Console → Webhooks, select the events, and store the signing secret securely. Follow Verify webhook signatures.
Payload
Section titled “Payload”{ "version": 1, "id": "d6b3ef8d-95a8-462d-90a5-3ef8fc3a6533", "type": "position.opened", "occurredAt": "2026-08-30T14:25:39.804Z", "data": { "serverId": "srv_123", "accountNumber": "100042", "positionId": "pos_456", "symbol": "EURUSD", "side": "BUY", "volume": 1, "executionPrice": 1.16542 }}occurredAt is the source event time. Trade, deal, and transaction records expose their own timestamps through the paginated account endpoints. The delivery timestamp header records the HTTP attempt and is not the trade time.
Process safely
Section titled “Process safely”Verify the signature over the raw body before parsing it. Store id with a uniqueness constraint, return 2xx after durable acceptance, and run business rules asynchronously. Retries are at least once and can arrive out of order.
Delivery attempts use the configured webhook.delivery credit price. A failed receiver, exhausted credits, or a network problem can delay delivery, so silence is not proof that an account has no activity.
Use webhooks with live metrics
Section titled “Use webhooks with live metrics”- Receive
position.openedand subscribe that account to Live account metrics. - Evaluate every consecutive live valuation using your organization’s rules.
- Receive
position.closedand query positions withstatus=open&limit=1. - Unsubscribe when
pagination.totalis0and the account no longer needs live monitoring.
This keeps lifecycle notifications separate from continuous valuations and avoids polling the Management API for every price change.