Events
Trade API webhooks cover client onboarding and availability, withdrawals,
deposits, conversions, registered external accounts, and posted Axiym account
balance movements. Each event is delivered as a webhook envelope with a type
and a compact data payload.
Webhooks are notifications, not state transfer: the payload carries just enough to route the event and correlate it with your records. Fetch the corresponding resource from the Trade API when you need its complete or latest state.
Event envelope
| Field | Description |
|---|---|
id | Unique webhook event identifier. Use this for de-duplication. |
timestamp | Time when Axiym created the event. |
type | Event name. |
data | Compact event payload. |
The exact data schema and a full payload example for every event are in the
Events reference — it is the source of truth for
webhook payloads.
Client events
| Event | Meaning |
|---|---|
client.created | Axiym created a client record for the partnership. |
client.updated | Axiym updated a client record. A disabled or archived update also emits client.disabled. |
client.onboarding-finished | Deprecated. Legacy activation event, emitted alongside client.activated during migration. |
client.activated | A client became available for Trade API operations, initially or after being disabled. |
client.disabled | A client is no longer available for new Trade API operations. |
Use client.activated as the asynchronous signal to move an API-onboarded
client forward. Use its clientId to fetch the onboarding case, then use
/clients/{clientId}/... paths only when the final status is ACTIVE.
Withdrawal events
| Event | Meaning |
|---|---|
withdrawal.created | A withdrawal was created and is awaiting execution. |
withdrawal.held | A withdrawal was stopped by a review, compliance, or operational gate. |
withdrawal.completed | A withdrawal completed successfully. |
withdrawal.canceled | A withdrawal was canceled before completion. Carries reasonCode. |
withdrawal.rejected | A withdrawal was rejected and will not complete. Carries reasonCode. |
Axiym account events
| Event | Meaning |
|---|---|
account.credited | A posted movement credited the Axiym account. Carries the movement amount. |
account.debited | A posted movement debited the Axiym account. Carries the movement amount. |
account.activated | The Axiym account became active, initially or after a suspension. |
account.suspended | The Axiym account was suspended. |
account.closed | The Axiym account was closed. |
account.credited / account.debited describe immutable posted movements,
so the amount is part of the event; the current balance is not — fetch it via
GET /clients/{clientId}/accounts/{accountId}. Movements linked to an API resource carry
relatedResourceType / relatedResourceId so you can correlate them with the
deposit, conversion, or withdrawal you already track.
Deposit events
| Event | Meaning |
|---|---|
deposit.created | An incoming payment was detected and is awaiting crediting. |
deposit.held | A deposit was stopped by a review, compliance, or operational gate. |
deposit.completed | A deposit completed and credited the receiving Axiym account. |
deposit.canceled | A deposit was canceled before the Axiym account was credited. Carries reasonCode. |
deposit.rejected | A deposit was rejected and will not credit the Axiym account. Carries reasonCode. |
Conversion events
| Event | Meaning |
|---|---|
conversion.created | A conversion was created with a locked rate and awaits confirmation. |
conversion.completed | A conversion completed; the sell-side Axiym account was debited and the buy-side Axiym account was credited. |
conversion.canceled | A conversion was canceled, expired, or could not complete. Carries reasonCode. |
Registered external-account events
The API contract retains the destination.* event names for registered
external accounts. These events describe the lifecycle of the owned bank
account or wallet used as a deposit source and withdrawal recipient; they do
not represent a separate destination-only resource.
| Event | Meaning |
|---|---|
destination.created | A registered external account was created and is awaiting review. |
destination.activated | The registered external account became available as a permitted deposit source and withdrawal recipient. |
destination.suspended | The registered external account became temporarily unavailable for deposits and withdrawals. |
destination.closed | The registered external account was permanently retired. |
See Registered External Accounts for the ownership model and account lifecycle.
Processing guidance
- Verify the webhook signature before processing the payload.
- De-duplicate deliveries by the event
id. - Use the resource identifier and
externalReferencewhere present to correlate the event with your records. - Use
clientIdwhen present. Otherwise, route the event using the resource ownership mapping stored by your integration. - Treat webhooks as at-least-once delivery. Duplicate events can occur.
- Fetch the corresponding resource from the API if ordering matters or if you need the latest state before continuing.