Skip to content
API status
Webhooks

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.

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 ConsoleWebhooks, select the events, and store the signing secret securely. Follow Verify webhook signatures.

{
"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.

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.

  1. Receive position.opened and subscribe that account to Live account metrics.
  2. Evaluate every consecutive live valuation using your organization’s rules.
  3. Receive position.closed and query positions with status=open&limit=1.
  4. Unsubscribe when pagination.total is 0 and 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.