Webhook Notification

The webhook notification serves to provide a notification that informs the Remote Host about actions that have been made or information that needs to be relayed to your own customers.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

For certain transactions, only a webhook request will be sent and not an authorization request as Visa requires us to approve the transaction no matter what. For example, a reversal to an original deduction request must be approved, therefore a webhook will be sent to notify you that a reversal has occurred and it is expected that money is adjusted accordingly based on the webhook, check the case by case #reversals for more information.

To confirm that the request is authentic, we will always send a header called X-COP-Signature-256. It will be prefixed sha256={hash of the request body with secret}. For example, X-COP-Signature-256: "sha256=7bfa3187cddb25ce4a31194db16738c1ef9aceb5117d86cc9c87faccface06b7"

Webhook Types are defined as follows:

  • transaction: This webhook notifies you of the final outcome of a request. If you approved a transaction but the webhook indicates a failure, you should revert the transaction.
    • Note: For transaction webhook which marked as rejected, we'll also provide the rejection_reason as a indicator of the error classification, check transaction rejection reasons for more information.
  • otp_notification: Triggered when your user requests a one-time password. You can choose the method to relay this information to your user.
    • Note: for the merchant, amount, currency fields, omit empty.
  • card_spend_limit: Sent when a user reaches their card spending limit.
  • reconciliation_manual_adjustment: Sent when there is a discrepancy between the Base 2 clearing file and the Base 1 live transaction records. You may need to adjust (either deduct or refund) based on the action recommended.
  • reconciliation_success: We send you a list of transactions that have matched amounts between the transaction clearing file and the live transaction.
  • pre_authorization_release: Sent when we automatically release a hold on a preauthorized amount.
  • card_token_passcode: Provides a passcode needed for card token authentication.
  • card_delivery: Sent to inform merchant of card delivery status.
  • oob_notification: Triggered when your user requests an out-of-band authentication. You can choose the method to relay this information to your user.
    • Note: for the transaction_id, authentication_id are the identifiers for the 3DS transaction. For the 3DS transaction which is adding the card, the acquirer_amount will be zero.
    • You can utilize the identifiers to obtain oob, check obtain out-of-band authentication for more information
  • card_token_provisioned: Triggered when your user successfully provisioned a token. You can choose the method to relay this information to your user
  • settlement_account_topup: Triggered when topup to StraitsX settlement account is sucessfuly performed. It will inform important information such as amount, currency and source of transfer.
  • settlement_summary : Triggered after daily settlement processis done to inform settlement amount.
  • settlement_offset : This will notify you whenever a settlement offset occurs, allowing you to track credits and debits more accurately.
  • card_token_provisioning_failed: Triggered when card token provisioning is failed
  • card_token_status_changed: Sent when a card token’s status transitions to a new state
  • card_status_transition: Sent when a card's status changes (e.g. activated, suspended, blocked, closed). Requires the "Card Status Transition Webhook" feature to be enabled.
  • card_pin_set: Sent when a customer successfully set their card PIN. Requires the "Card PIN Action Webhook" feature to be enabled.
  • card_pin_changed: Sent when a customer successfully changed their card PIN. Requires the "Card PIN Action Webhook" feature to be enabled.
  • card_pin_reset: Sent when a customer successfully reset their card PIN. Requires the "Card PIN Action Webhook" feature to be enabled.
  • card_custom_per_transaction_limit_revoked: Sent when a custom per-transaction limit on a card is revoked.
  • dispute_financial_advice: Sent when a transaction-level dispute financial record is received via the Visa clearing system.

Webhook retry and Timeout

Webhook is an important mechanism for us to communicate transaction status so that you are able to utilize the notification to make the right adjustment to the cardholder's account.

In the event of a failure when sending webhook for transaction (webhook event_type=transaction), we will be doing 11 retries with the below intended intervals:

Retry CountDelay
11s
22s
34s
48s
5-710m
8-101h
113h

Each attempt also has a 10-second timeout. If your server does not respond within 10 seconds, the attempt is considered failed and will move to the next retry.


Body Params
string
enum
required
string
string
string
string
string
string
string
string
string
string
string

only available in event type just_in_time_funding_recommendation. Indicate the current amount spend of a merchant in one day

string

only available in event_type=transaction

string

in `event_2

string

only available in event_type=transaction

string
enum

only available in event_type=transaction and reconciliation_manual_adjustment

Available values in event_type=transaction are:
oct - original credit transaction
balance_inquiry - happens when card is used at an ATM
deduction - authorization where a deduction is requested
hold - pre authorization request
debit_verify - when the acquiring merchant attempts to validate card before online transactions
completion - pre authorization completion
partial_reversal - partial reversal
reversal - when a transaction is reversed before being cleared

Available values in reconciliation_manual_adjustment are:
ADDITION - original credit transaction
DEDUCTION - authorization where a deduction is requested
REFUND - offline refund
For more explanation, please check transaction type

string
enum

Valid values:
approved
rejected

Allowed:
string

name of the merchant for the specific transaction

string

An authorization code is a six-digit number that is used to confirm that a payment card transaction is approved.

transactions
object

only available in event type reconciliation success
For more explanation on amount and currency, please check here

recommended_action
object
string
string
string

only available in event_type=transaction. Acquirer Amount

string

only available in event_type=transaction. Acquirer Currency

string
string

key used to keep the request idempotent

string

same as the transaction sent in authorization phase

string

only available in event_type=transaction, ISO8583 Field 37

string

only available in event_type=transaction, location of the merchant for the specific transaction

string

only available in event type otp_notification (notes: in staging only)

cards
object

only available in event typecard_delivery

string
string

Only available in event_type card_token_provisioned.

string
string

only available in event typereconciliation_manual_adjustment,dispute_financial_advice

string

only available in event_type=transaction and transaction_status is rejected

string

card token opaque id, only available in event type card_token_passcode

string

only available in event type card_token_passcode value is one of HCE SECURE_ELEMENT

string

only available in event type card_token_passcode. Well know token requestor data can be found the possibles values can be found here

string

only available in event_type=transaction, this correspond to transaction cbs identifier. referred as cbs_transaction_id or cbs_reference_id

string

only available in event type card_token_provisioned

string

only available in event type reconciliation_manual_adjustment. Valid values:
FX_RATES_ADJUSTMENT: adjustment because of fx rates
BASE_1_ADJUSTMENT: base 1 adjustment (data doesn't present on base 2 clearing file)
BASE_2_ADJUSTMENT: base 2 adjustment (data on base 2 clearing file have different amount compared to base 1)

string

only available in event type reconciliation_success ,reconciliation_manual_adjustment,dispute_financial_advice
The date that clearing processed this transaction.
The field contains the date format YDDD (year and day)

string

only available in event type reconciliation_success and reconciliation_manual_adjustment
The date of that was used to convert the currency
The field contains the date format YDDD (year and day)

string

only available in event type reconciliation_success and reconciliation_manual_adjustment
Omit empty field, only available for USD account currency cards.
The rate that was used to convert to the account amount

string

only available in event type reconciliation_success ,reconciliation_manual_adjustment,dispute_financial_advice
Omit empty field, only available for international transactions.
The rate table ID of the foreign exchange rate table used for currency conversion

string

POS entry mode data, the possibles values can be found here

string

Only available in event_type settlement_summary. This field indicates the date that the settlement was processed.

string

token requestor data for card token transaction. Well know token requestor data can be found the possibles values can be found here

string
string
enum

only available in event_type settlement_account_topup, source of topup

Allowed:
string

only available in event_type settlement_account_topup, updated spendable balance after topup

string

only available in event type reconciliation_success ,reconciliation_manual_adjustment,dispute_financial_advice
Omit empty field.
The settlement amount based on the settlement currency.

string
enum

only available in event type settlement_summary ,settlement_offset,dispute_financial_advice. Settlement Currency

Allowed:
string

only available in event type settlement_summary and settlement_offset. Settlement Report Date

string
enum

only available in event type settlement_summary ,settlement_offset,dispute_financial_advice. Settlement Type

Allowed:
string
enum

only available in event type settlement_summary and settlement_offset. Settlement Purpose

Allowed:
net_settlement
object

only available in event type settlement_summary and settlement_offset. Net Settlement Amount Info

visa_charges
object

only available in event type settlement_summary and settlement_offset. Visa Charges Info

reimbursement_fee
object

only available in event type settlement_summary and settlement_offset. Reimbursement Fee Info

string

only available in event type reconciliation_success and reconciliation_manual_adjustment
Interchange fee

string

only available in event type reconciliation_success and reconciliation_manual_adjustment
Interchange Currency

string
enum

only available in event type reconciliation_success and reconciliation_manual_adjustment
Interchange Fee Type

Allowed:
string
enum

Only available in card_token_provisioning_failed

string
enum

Only available in card_token_status_changed
ACTIVE: The token is currently active and can be used for transactions.
SUSPENDED: The token has been temporarily suspended (for example, due to suspected fraud or user request) and cannot be used until reactivated.
DEACTIVATED: The token has been permanently unlinked from the card or device and cannot be reactivated. The token has been permanently unlinked from the card or device and cannot be reactivated. However, if the same card is bound again to the same device, a new token may be issued and become active.

Allowed:
string
enum

Only available in card_token_status_changed
ACTIVE: The token is currently active and can be used for transactions.
SUSPENDED: The token has been temporarily suspended (for example, due to suspected fraud or user request) and cannot be used until reactivated.
DEACTIVATED: The token has been permanently unlinked from the card or device and cannot be reactivated. The token has been permanently unlinked from the card or device and cannot be reactivated. However, if the same card is bound again to the same device, a new token may be issued and become active.

Allowed:
string
enum

Only available in event type settlement_offset. The classification of the offset operation.

Allowed:
string

Only available in event type settlement_offset. The monetary value applied during this offset event. This is a signed value (e.g., positive for credits, negative for debits).

string

Only available in event type settlement_offset. The outstanding deduction amount remaining for the settlement record after this offset has been applied.

string

Only available in event_typesettlement_summary.

string

Only available in event type reconciliation_success ,reconciliation_manual_adjustment,dispute_financial_advice. A 23-digit acquirer reference number string.

string

ISO 8601 UTC timestamp string. Only available in event_type card_pin_set, card_pin_changed, and card_pin_reset.

string

Only available in event type card_custom_per_transaction_limit_revoked. The reason provided for revoking the custom per-transaction limit.

string

only available in event_type 'dispute_financial_advice'. The opaque ID of the specific card number.

string
enum

only available in event_type 'dispute_financial_advice'. Visa's specific reason code for the dispute financial record.

Allowed:
string
enum

only available in event_type 'dispute_financial_advice'. The status or stage of the dispute record.

string

only available in event_type 'dispute_financial_advice'. The city where the merchant is located.

string

only available in event_type 'dispute_financial_advice'. The state or province code of the merchant location.

string

only available in event_type 'dispute_financial_advice'. The state or province code of the merchant location

string

only available in event_type 'dispute_financial_advice'. The ZIP or postal code of the merchant location.

string

only available in event_type 'dispute_financial_advice'. The initial transaction amount prior to the dispute.

string

only available in event_type 'dispute_financial_advice'. The initial transaction currency code.

string
enum

only available in event_type 'dispute_financial_advice'. Visa indicator identifying the party that initiated or received the dispute advice.

Allowed:
string

only available in event_type 'dispute_financial_advice'. The original date the customer made the purchase. Format: MMDD.

string
enum

only available in event_type 'dispute_financial_advice'. Indicates the financial direction of the settlement impact.

Allowed:
string

only available in event_type 'dispute_financial_advice'. The source dispute clearing amount.

string

only available in event_type 'dispute_financial_advice'. The source dispute clearing currency.

string
enum

only available in event_type 'dispute_financial_advice'. Technical flag identifying special processing rules for the chargeback.

Allowed:
string

only available in event_type 'dispute_financial_advice'. The Visa Transaction ID linking for the lifecycle records.

Headers
string
required

Prefixed hashed request body: sha256={hash of the request body with secret}

Responses

Language
LoadingLoading…
Response
Choose an example:
application/json