Skip to main content

Webhook Events and Payloads

Webhook events are delivered and enclosed in the following webhook event envelope. The following event definition only provides the name of the event as well as its event data schema.

Event Envelope

The webhook event envelope includes the following components: The following is an example of a webhook event that may be received when using the Issuing API.

Accounts

account.created

This event is triggered when a new account is created. Example payload

account.balance

This event is triggered when balance has changed on an account, usually as a result of a new transaction or a transaction status change. Example payload:

account.transaction.created

This event is triggered when a transaction occurs on an account. Example payload:

account.transfer.created

This event is triggered when the account initiates a transfer. Example payload:

Card Accounts

cardaccount.created

This event is triggered when a new card account is created. Data is a object of type CardAccount Example

cardaccount.balance

This event is triggered when card account balance is changed.

cardaccount.transaction.created

This event is triggered when a new transaction is initiated on the card account. Data is a object of type CardAccountTransaction

cardaccount.transaction.updated

This event is triggered when a transaction on the card account is updated (e.g. the transaction status changes from pending to posted, or the transaction dispute status changes). Data is a object of type CardAccountTransaction For card disputes, data.disputeStatus is one of requested, pending, success, failed, reported, or null when the transaction is not disputed.

cardaccount.transaction.declined

This event is triggered when a transaction has been declined on the card account data is a object of type CardAccountTransaction

cardaccount.transaction.verification-code-delivered

Deprecated: This webhook is replaced by the new 3D Secure (3DS) challenge flow which provides a more secure and streamlined verification experience. Please migrate to the new 3D Secure Integration.
This event is triggered when a security code is delivered to the client in relation to a payment authorization on the card account. The security code may be required to complete the transaction and should be delivered to the client as soon as possible to complete the transavtion. data is an object of type CardTransactionVerificationCode Example:

cardaccount.googlepay.verification-code-delivered

This event is triggered when a security code is delivered to the client in relation to a payment authorization on the card account. The security code may be required to complete the googlepay and should be delivered to the client as soon as possible to complete the transavtion. data is an object of type CardTransactionVerificationCode Example:

cardaccount.transaction.suspicious-activity-detected

This event is triggered when a card transaction has triggered one or more rules in our fraud risk engine data is an object of type CardAccountSuspiciousActivity

cardaccount.client-identity.approved

This event is triggered when a client’s identity verification for a card account has been approved. data is an object containing the cardAccountId of the approved account and the xid you assigned to that same card account.
xid is your own reference for the card account, letting you reconcile the outcome without a follow-up lookup. It is null when the card account has no xid.

cardaccount.client-identity.rejected

This event is triggered when a client’s identity verification for a card account has been rejected. data is an object containing the cardAccountId of the rejected account, the xid you assigned to that same card account, the rejectedReason, and any rejectionAdditionalInfo.
xid is your own reference for the card account, letting you reconcile the outcome without a follow-up lookup. It is null when the card account has no xid. rejectionAdditionalInfo carries extra detail about the rejection, such as which document to resubmit. It is null when no additional information was provided.
rejectedReason carries the same value returned by Get Client Identity Information for the same card account, so the two always agree. Values are detailed strings in the form Category or Category (specific detail) — for example Invalid ID (expired doc), Unclear ID Image, or Info Mismatch b/w ID and Input Data (gender). See that endpoint’s rejectedReason field for the full list. New reasons are added over time. Match on the category prefix (e.g. Invalid ID () rather than the full string, and treat an unrecognized value as a generic rejection instead of failing.

3D Secure (3DS) Events

For complete integration guide including mobile app implementation and postMessage handling, see 3D Secure Integration.
These events manage the lifecycle of online transaction verification (3DS). When a cardholder performs an online transaction requiring verification, the system generates an approval link delivered via webhook.

cardaccount.transaction.challenge.initiated

This event is triggered when a 3DS challenge is initiated. It contains a unique, time-sensitive URL for the cardholder to approve or decline the transaction. data contains the approval URL and transaction details. Payload:

cardaccount.transaction.challenge.succeeded

This event is triggered when the cardholder successfully approves the transaction. Payload:

cardaccount.transaction.challenge.declined

This event is triggered when the cardholder actively declines the transaction. Payload:

cardaccount.transaction.challenge.failed

This event is triggered when the challenge expires or fails due to a system error. Payload:

Cards

card.issued

This event is triggered when a new card is issued. data is an object of type Card

card.activated

This event is triggered when a card is activated and becomes ready for use. data is an object of type Card

card.suspended

This event is triggered when a card is suspended and can no longer be used for transactions. data is an object of type Card

card.unsuspended

This event is triggered when a suspended card is unsuspended and can once again be used for transactions. data is an object of type Card

card.locked

This event is triggered when a card is locked and can no longer be used for transactions. data is an object of type Card

card.unlocked

This event is triggered when a locked card is unlocked and can once again be used for transactions. data is an object of type Card

card.cancelled

This event is triggered when a card is cancelled and can no longer be used for transactions. data is an object of type Card

card.spending-controls.modified

This event is triggered when the spending controls for a card are modified (e.g. the daily spending limit is changed). data is an object of type Card

Payouts

The Payouts section includes several events that are emitted by the API in response to specific actions related to payouts:

payout.created

This event is emitted when a new payout is created. data is an object of type Payout

payout.accepted

This event is emitted when a payout is accepted and is being processed. data is an object of type Payout

payout.succeeded

This event is emitted when a payout has been successfully completed. data is an object of type Payout

payout.cancelled

This event is emitted when a payout is cancelled. data is an object of type Payout

Others

depositaddress.assigned

This event is triggered when the user deposit address is created and updated. data is an object of type DepositAddress Example

digitaldeposit.completed

This event is triggered when a digital deposit is confirmed. data is an object of type DigitalDeposit Example

webhook.ping

This event is triggered when the webhook is created and resumed.
What’s Next