Axiym

Events

View Markdown

Client Account API webhooks cover client onboarding and availability, withdrawals, deposits, conversions, registered external accounts, and Axiym accounts. Each event is delivered as a webhook envelope with a type and a compact data payload.

Event payloads identify the affected resource and describe the change so you can correlate it with your records. Fetch the corresponding resource from the Client Account API when you need its complete or latest state. An unconfirmed conversion is not available through reads; use the retained create response until confirmation.

Event envelope

FieldDescription
idUnique webhook event identifier. Use this for de-duplication.
timestampTime when Axiym created the event.
typeEvent name.
dataCompact 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 resource events include data.clientId. Use it with the resource identifier to retrieve current state through the same client’s API paths. Partnership-level test events do not include a clientId.

Client events

EventMeaning
client.createdAxiym created a client record for the partnership.
client.updatedAxiym updated a client record. A disabled or archived update also emits client.disabled.
client.onboarding-finishedDeprecated. Legacy activation event, emitted alongside client.activated during migration.
client.activatedA client became available for Client Account API operations, initially or after being disabled.
client.disabledA client is no longer available for new Client Account API operations.

Use client.activated as the asynchronous signal that a client became available, including after reactivation. Fetch GET /clients/{clientId} to check current availability and start business operations only when its status is ACTIVE. Use GET /onboardings/{clientId} for the onboarding outcome and any available rejection reason.

Withdrawal events

EventMeaning
withdrawal.createdA withdrawal was confirmed and accepted for execution.
withdrawal.heldWithdrawal processing is temporarily on hold.
withdrawal.completedA withdrawal completed successfully.
withdrawal.canceledA withdrawal was canceled before completion. Carries reasonCode.
withdrawal.rejectedA withdrawal was rejected and will not complete. Carries reasonCode.

Axiym account events

EventMeaning
account.creditedA posted movement credited the Axiym account. Carries the movement amount.
account.debitedA posted movement debited the Axiym account. Carries the movement amount.
account.activatedThe Axiym account became active, initially or after a suspension.
account.suspendedThe Axiym account was suspended.
account.closedThe 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. A PAYOUT movement originates from the Payment API; retrieve the payout there. A TRANSFER movement is a transfer of the client's balance to your own settlement account with the PNSL API POST /clients/{clientId}/transfers: account.debited on the client's account and account.credited on yours.

Deposit events

EventMeaning
deposit.createdAn incoming payment was detected and is awaiting crediting.
deposit.heldDeposit processing is temporarily on hold.
deposit.completedA deposit completed and credited the receiving Axiym account.
deposit.canceledA deposit was canceled before the Axiym account was credited. Carries reasonCode.
deposit.rejectedA deposit was rejected and will not credit the Axiym account. Carries reasonCode.

Conversion events

EventMeaning
conversion.createdA conversion was confirmed and execution has begun.
conversion.completedA conversion completed; the sell-side Axiym account was debited and the buy-side Axiym account was credited.
conversion.canceledA conversion was canceled, expired, or could not complete. Carries reasonCode.

Subscription test event

EventMeaning
subscription.testSent only when you request a test delivery. Its data is { "test": "OK" }.

Address book entry events

The destination.* events describe the review and availability of external bank accounts and wallets registered in the client’s address book. Once whitelisted with status ACTIVE, an external account can fund deposits and receive withdrawals.

EventMeaning
destination.createdAn external account was registered and is awaiting due diligence and compliance checks.
destination.activatedThe external account was approved and became ACTIVE, whitelisted for deposits and withdrawals.
destination.suspendedThe external account became temporarily unavailable for deposits and withdrawals.
destination.closedThe external account was permanently retired.

See Address book and external accounts for whitelisting and the account lifecycle.

Processing guidance

  • Verify the webhook signature before processing the payload.
  • De-duplicate deliveries by the event id.
  • Use the resource identifier and externalReference where present to correlate the event with your records.
  • Validate the event type and payload shape before routing it.
  • Dispatch by event type first. Require clientId for Client Account resource events and use it with your stored resource ownership mapping to route them. The subscription.test payload is { "test": "OK" } and has no clientId; other product events may also use a different shape. Handle test deliveries separately and ignore unknown event types safely.
  • Handle duplicate deliveries without repeating the resulting action.
  • Fetch the corresponding resource from the API if ordering matters or if you need the latest state before continuing.