Home
Wise
Wise Platform Webhooks
Wise · AsyncAPI Specification
Wise Platform Webhooks
Version 2.0.0
AsyncAPI 2.6 description of the Wise Platform webhook surface. Wise pushes HTTP `POST` notifications to subscriber-defined HTTPS endpoints when events occur against profiles, transfers, balances, cards, multi-currency account details, batches, settlements, holds, disputes and partner support cases. Each delivery is signed with an RSA-SHA256 signature over the raw HTTP request body. The signature is Base64-encoded and transmitted in the `X-Signature-SHA256` header. Subscribers verify the signature using Wise's published RSA public keys (separate keys for production and sandbox) and must reject any request whose signature does not validate. Subscribers must respond with a `2xx` HTTP status within 5 seconds. Failed deliveries are retried up to 25 times with increasing back-off over a two-week window. Events may arrive out of order; consumers should use the event-specific ordering fields (typically `data.occurred_at`). Sources: - https://docs.wise.com/guides/developer/webhooks/event-handling - https://docs.wise.com/guides/developer/webhooks/event-types - https://github.com/transferwise/digital-signatures-examples/tree/main/verify-webhook-signature
Channels
transfers#state-change
subscribe onTransferStateChange
Receive transfer state change notifications.
Triggered whenever a transfer's state changes. Available at both profile and application subscription levels.
transfers#active-cases
subscribe onTransferActiveCases
Receive transfer active cases notifications.
Triggered when the list of active cases on a transfer is updated.
transfers#refund
subscribe onTransferRefund
Receive transfer refund notifications.
Triggered when a transfer becomes `funds_refunded`, providing refund amount and currency information.
transfers#payout-failure
subscribe onTransferPayoutFailure
Receive transfer payout failure notifications.
Triggered when a transfer payout fails, including failure reason codes.
balances#update
subscribe onBalanceUpdate
Receive balance credit/debit notifications.
Primary balance event. Triggered for credit or debit transactions on a multi-currency balance. Supersedes `balances#credit`.
balances#credit
subscribe onBalanceCredit
Receive (deprecated) balance credit notifications.
Profile-level event triggered every time a multi-currency balance is credited. Deprecated in favour of `balances#update`.
balances#account-state-change
subscribe onBalanceAccountStateChange
Receive balance account state change notifications.
Application-level event triggered when a balance account is activated or deactivated.
profiles#verification-state-change
subscribe onProfileVerificationStateChange
Receive profile verification state change notifications.
Triggered when the verification state of a connected profile changes between `verified` and `not_verified`.
profiles#state-change
subscribe onProfileStateChange
Receive profile state change notifications.
Triggered every time a profile's state is updated.
profiles#cdd-check-state-change
subscribe onProfileCddCheckStateChange
Receive CDD check state change notifications.
Triggered when a Customer Due Diligence check state changes, including required evidences and review outcome.
profiles#overdraft-limit-threshold
subscribe onProfileOverdraftLimitThreshold
Receive overdraft limit threshold notifications.
Triggered when overdraft usage reaches the 70% threshold (rate-limited to a maximum of once per hour per profile).
users#state-change
subscribe onUserStateChange
Receive user state change notifications.
Application-level event triggered when a user's state changes (ACTIVE, WITHDRAW_ONLY, DEACTIVATED).
cards#card-status-change
subscribe onCardStatusChange
Receive card status change notifications.
Triggered for initial and subsequent card status updates.
cards#card-production-status-change
subscribe onCardProductionStatusChange
Receive card production status notifications.
Triggered for physical cards using `KIOSK_COLLECTION` delivery.
cards#3ds-challenge
subscribe onCard3dsChallenge
Receive 3DS challenge notifications.
Triggered for 3D Secure push notifications during card transactions.
cards#manual-provisioning-verification
subscribe onCardManualProvisioningVerification
Receive manual provisioning verification notifications.
Triggered for manual wallet provisioning verification.
cards#transaction-state-change
subscribe onCardTransactionStateChange
Receive card transaction state change notifications.
Triggered when a card transaction state changes. Includes merchant, fees, debits and credits.
cards#card-order-status-change
subscribe onCardOrderStatusChange
Receive card order status notifications.
Triggered when a card order status changes.
account-details-order#order-state-change
subscribe onAccountDetailsOrderStateChange
Receive account details order state change notifications.
Application-level event triggered when a multi-currency account details order state changes (PENDING_USER, PENDING_TW, REQUIREMENTS_FULFILLED, DONE).
account-details-payment#state-change
subscribe onAccountDetailsPaymentStateChange
Receive account details pay-in state change notifications.
Triggered every time a pay-in is made into the specified account details.
hold-limit-breach#update
subscribe onHoldLimitBreachUpdate
Receive hold limit breach notifications.
Triggered whenever a regulatory hold limit breach is opened or closed.
batch-payment-initiations#state-change
subscribe onBatchPaymentInitiationStateChange
Receive batch payment initiation state change notifications.
Application-level event triggered when a batch payment initiation state changes (NEW, PROCESSING, COMPLETED, FAILED, CHARGED_BACK).
bulk-settlement#payment-received
subscribe onBulkSettlementPaymentReceived
Receive bulk settlement payment notifications.
Application-level event triggered when bulk settlement funds arrive.
transaction-disputes#update
subscribe onTransactionDisputeUpdate
Receive transaction dispute update notifications.
Application-level event triggered when a transaction dispute is submitted or updated.
partner-support#case-changed
subscribe onPartnerSupportCaseChanged
Receive partner support case change notifications.
Application-level beta event triggered when a partner support case updates, including comments or status changes.
swift-in#credit
subscribe onSwiftInCredit
Receive SWIFT inbound credit notifications.
Triggered when a SWIFT inbound credit is received, including UETR, sender, recipient, exchange rate, and fee breakdown.
Messages
✉
TransferStateChangeEvent
Transfer State Change
Transfer status was updated.
✉
TransferActiveCasesEvent
Transfer Active Cases
Active case list on the transfer was updated.
✉
TransferRefundEvent
Transfer Refund
Transfer status became funds_refunded.
✉
TransferPayoutFailureEvent
Transfer Payout Failure
A transfer payout failed.
✉
BalanceUpdateEvent
Balance Update
A credit or debit posted to a multi-currency balance.
✉
BalanceCreditEvent
Balance Credit (deprecated)
Deprecated profile-level balance credit event.
✉
BalanceAccountStateChangeEvent
Balance Account State Change
Balance account was activated or deactivated.
✉
ProfileVerificationStateChangeEvent
Profile Verification State Change
A connected profile's verification state changed.
✉
ProfileStateChangeEvent
Profile State Change
Profile state was updated.
✉
ProfileCddCheckStateChangeEvent
Profile CDD Check State Change
Customer Due Diligence check state changed.
✉
ProfileOverdraftLimitThresholdEvent
Profile Overdraft Limit Threshold
Overdraft usage reached the configured threshold.
✉
UserStateChangeEvent
User State Change
User account state changed.
✉
CardStatusChangeEvent
Card Status Change
Card status was updated.
✉
CardProductionStatusChangeEvent
Card Production Status Change
Physical card production status changed.
✉
Card3dsChallengeEvent
Card 3DS Challenge
A 3D Secure challenge was issued.
✉
CardManualProvisioningVerificationEvent
Card Manual Provisioning Verification
Manual wallet provisioning verification event.
✉
CardTransactionStateChangeEvent
Card Transaction State Change
A card transaction state changed.
✉
CardOrderStatusChangeEvent
Card Order Status Change
Card order status changed.
✉
AccountDetailsOrderStateChangeEvent
Account Details Order State Change
Multi-currency account details order state changed.
✉
AccountDetailsPaymentStateChangeEvent
Account Details Payment State Change
A pay-in to an account-details set was processed.
✉
HoldLimitBreachUpdateEvent
Hold Limit Breach Update
Regulatory hold limit breach opened or closed.
✉
BatchPaymentInitiationStateChangeEvent
Batch Payment Initiation State Change
Batch payment initiation moved through its lifecycle.
✉
BulkSettlementPaymentReceivedEvent
Bulk Settlement Payment Received
Bulk settlement funds arrived.
✉
TransactionDisputeUpdateEvent
Transaction Dispute Update
A transaction dispute was submitted or updated.
✉
PartnerSupportCaseChangedEvent
Partner Support Case Changed
Partner support case updated (beta).
✉
SwiftInCreditEvent
SWIFT Inbound Credit
A SWIFT inbound credit was received.
Servers
https
production
https://{subscriberHost}
The subscriber's HTTPS endpoint that receives Wise webhook notifications in production. Signatures are verified using the production RSA public key.
https
sandbox
https://{subscriberHost}
Sandbox subscriber endpoint. Notifications originate from api.sandbox.transferwise.tech and are signed with the sandbox RSA public key.
AsyncAPI Specification
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/wise-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms .
A second provider on the same verified email joins the account you already have.