Skip to main content

Introduction

Webhook provides a server-to-server messaging system that facilitates communication regarding various transaction types and agreement-related changes. The service enables your systems to receive notifications about important events such as refunds, voids, or agreement modifications. You have the flexibility to choose the specific transaction types or agreement actions you want to receive messages for. Once selected, the webhook service will deliver relevant information for those actions. These events may include:
  • Transactions processed through payment processing APIs like Hosted Payment Pages or Remote.
  • Manually processed transactions through the Merchant Administration System.
  • Agreement-related changes made via the system or API.
Each message is transmitted as an HTTP POST request to a pre-configured URL.

Service Configuration

To configure webhook notifications, navigate to the Merchant Administration System and select either the ‘Payment Page’ or ‘Security’ menu, then click on the ‘Transaction Advice’ option. This will display the configuration page, where you can specify the transaction types or agreement actions for which you want to receive notifications. You can also choose to receive messages only for transactions that have been authorised (transaction status A or H).
📘 Note:
If the “Only include authorised transactions (status ‘A’ or ‘H’)” option is not selected, then declined transaction data will also be sent along with authorised entries.
You will need to supply the URL that is to be used by the advice service. This URL must use either the HTTP or HTTPS protocol and must be on either port 80 or 443. The connection is a direct server-to-server connection with no browser involvement, so the URL must be accessible over the internet.

Message Format

Transaction-related webhooks are sent using the HTTP POST method and contain the following fields:
FieldDescription
invoice_noInvoice number
order_idOrder ID
payment_due_datePayment due date
bin_country_nameBIN country name
first_six_digit_card_noFirst six digits of the card number
transaction_amountTransaction amount
transaction_reference_noTransaction reference number
transaction_failed_messageTransaction failure message
transaction_dateTransaction date
bank_ref_noBank reference number
tracking_idTracking ID
is_activeIs active flag
created_onCreated timestamp
updated_onUpdated timestamp
currencyCurrency code
payer_addressPayer’s address
payer_countryPayer’s country
type_of_cardType of card used
payer_namePayer’s name
card_issuing_bankBank that issued the card
payment_optionPayment option used
card_nameName of the cardholder
eci_value(ECI) value
op_transaction_statusOP transaction status

Transaction Types

Webhook Transaction Statuses

The webhook transaction lifecycle includes various statuses that represent the state of a payment link or transaction at different stages:
StatusDescription
InitiatedPayment link has been created.
nullStatus is not yet set or is undefined.
AwaitedWaiting for user or system action.
AbortedTransaction was prematurely terminated.
InvalidInvalid request or payload encountered.
SuccessPayment was successfully completed.
AuthorizedPayment has been authorized.
ConfirmedPayment has been confirmed.
PayoutFunds have been processed for payout.
CancelledTransaction was cancelled by user/system.
FailedPayment attempt failed.
SettledPayment has been settled in the system.
RefundedPayment was refunded to the customer.

Card Codes

CodeCard Type
VCVisa Credit
VDVisa Debit
(More card types available upon request)

Message Delivery

Webhook messages are sent immediately after transaction processing or agreement actions. If delivery fails:
  1. A retry will be attempted after a short delay.
  2. Up to 4 retries will be made, with increasing delay intervals.
  3. The receiving system must respond with HTTP 200 OK for successful receipt.

Data Security

To authenticate webhook messages, a SHA1 hash check is used with key transaction, card, billing, or agreement fields.

Hashing Process

  1. Concatenate field values using : as a separator.
  2. Convert percent-encoded characters (e.g., %20) to their original characters.
  3. Generate a SHA1 hash of the string.
  4. Compare with the received hash value.