Notifications & Webhooks

You can use the Notifications sections in Verifone Central to search and filter your organization’s webhooks and email notifications.

The Notification Service allows you to get status updates on certain events/actions you subscribe to, and to automate business processes like order management, accounting, or downloading reports. Data sent in the notifications will be pushed to your email/URL.

Availability

Only users with Merchant Admin, Merchant Cashier, or Merchant Supervisor roles can access this section.

Events

Events are the topics a notification would be 'listening' to. The notifications will be triggered as soon as there is an event happening for one of the selected topics.

Transaction Events

Event
Description

TxnAccountVerificationApproved

TxnAccountVerificationDeclined

An account/card verification

TxnAuthorisationApproved

TxnAuthorisationDeclined

An authorisation or preauthorisation

TxnCaptureApproved

TxnCaptureDeclined

A capture or completion

TxnDelayedChargeApproved

TxnDelayedChargeDeclined

A single message sale (auth+capture) related to a preauth chain

TxnExtendApproved

TxnExtendDeclined

A preauth extend

TxnPreauthIncrementApproved

TxnPreauthIncrementDeclined

An increment for a preauth

TxnReauthorisationApproved

TxnReauthorisationDeclined

A preauth reauth

TxnRefundApproved

TxnRefundDeclined

A refund

TxnRefundPreviewCancelled

A refund preview cancelled transaction

TxnRefundPreviewCustomerApproved

A refund preview customer approved transaction

TxnSaleApproved

TxnSaleDeclined

A single message sale (auth+capture)

TxnSaleConfirmed

A confirmation of sale (specific for crypto transactions)

TxnVoidApproved

TxnVoidDeclined

A void

Checkout Events

Event
Description

Checkout - Transaction succeeded

An successful checkout Transaction Success

Checkout - Transaction failed

Checkout transaction failed

Checkout - Card token succeeded

Successful card token transaction

Checkout - Card token failed

Failed card token transaction

Checkout - 3DS authentication succeeded

An successful checkout 3DS transaction

Checkout - 3DS authentication failed

A failed checkout 3DS authentication

Checkout - 3DS lookup failed

3DS lookup failed

Checkout - 3DS lookup succeeded

3DS lookup succeeded

Checkout - SMS delivery succeeded

PBL SMS delivery succeeded

Checkout - Email delivery succeeded

PBL Email delivery succeeded

Checkout - SMS delivery failed

PBL SMS delivery failed

Checkout - Email delivery failed

PBL Email delivery failed

Create notifications in Verifone Central

To use the information in the Notifications section in Verifone Central, follow these steps:

  1. Log in to your Verifone Central account.

  2. Navigate to Administration and click on Notifications.

  3. The Notifications page will be displayed. Click on Create new notification.

    In the Notifications page, you can filter the already created notifications by name / email / URL and/or use the Event type or the Status filters.

  4. On the Create Notification page, provide the following information:

    • Notification name – used to identify the notification configuration in the listing.

    • Organization(s)

      • By selecting an organization, you apply a scope to the configuration.

      • By selecting the lowest level organization, you will receive messages for the selected organization only.

        Multiple organizations can be selected when creating a notification, if the same notification must be sent to multiple organizations.

    • Events – notifications will be triggered as soon as an event takes place for one of the selected transaction status updates (for more details regarding available events check the Events tables above).

    • Delivery Method – specifies how notifications will be delivered. Depending on the selected method, Verifone will send either an email with plain text describing the event or a webhook with the transaction payload. Possible values:

      • Email – accepts only one email address

      • URL Endpoint – accepts only one webhook; selecting this option will provide two other possibilities:

        • Event metadata only - webhooks with a limited payload

        • Full event payload - webhooks with full content payload (applicable only for Transaction Events)

Notification payload variables

Parameter Name
Type
Format
Email
Full payload
Metadata
Description

eventType

String

The event type for which the notification was sent. E.g., TxnSaleDeclined

objectType

String

In a transaction event this would be TransactionEvent, and in a Checkout event this would be StandardEvents.

eventId

String

UUID

In transactions events this would be the Transaction ID, and in Checkout events this would be the Checkout ID.

itemId

String

UUID

In transactions events this would be the Transaction ID. The itemId is not applicable to Checkout events.

recordId

String

UUID

In transactions events this would be the Transaction ID, and in Checkout events this would be the Checkout ID.

entityUid

String

UUID

The Verifone assigned organization identifier.

eventDateTime

Datetime

YYYY-MM-DDThh:mm:ss.msZ

The date and time at which the event occurred.

source

String

The source of the event information.

content

Object

The associated event data. This is optional and if specified will vary according to the event type.

content.id

String

UUID

The Transaction ID.

content.currency_code

String

three-letter ISO 4217 alphabetic currency codes

A three-letter alphabetic code that represents the currency used for the transaction.

content.country_code

String

2-letter ISO 3166 alpha-2 country code

A 2-letter ISO 3166 alpha-2 country code representing the consumer's address.

content.created_at

Datetime

YYYY-MM-DDThh:mm:ss.msZ

The date and time the transaction creation.

content.customer_ip

String

32-bit number

A 32-bit number that identifies a host on a TCP/IP network of the consumer.

content.dynamic_descriptor

String

A short transaction description that can be included when creating a transaction via the Virtual Terminal, the Checkout API, or the eCom API. This description might be included in the bank statement issued to the consumer by some card issuers.

content.amount

Float

The transaction amount.

content.payment_product

String

The type of product used for payment. E.g., CARD, KLARA, SWISH, CRYPTO, etc.

content.payment_product_type

String

The brand of the payment type used for payment. E.g., VISA, MASTERCARD, AMEX, etc.

content.processor_reference

String

Reference identifying the transaction, as provided by the processor.

content.transaction_type

String

The transaction type, such as SALE, AUTHORIZATION, PREAUTH, etc.

content.transaction_status

String

The current status of the transaction. E.g., AUTHORISED, CAPTURED, SETTLED, CANCELLED, etc.

content.reason_code

String

A reason code assigned by the acquiring platform; '0000' in case of success.

content.arn

String

The acquirer reference number (ARN), generated by the acquirer at the time of clearing for card transactions.

content.authorization_code

String

The credit card authorization code represents the five or six numbers generated by the issuing bank.

content.shipping_information

Object

An optional object that includes the consumer's shipping information.

content.shipping_information.address

String

The shipping (street) address.

content.shipping_information.city

String

The shipping city.

content.shipping_information.country

String

A 2-letter ISO 3166 alpha-2 country code

The shipping country.

content.shipping.phone

String

The shipping phone number.

content.shipping.postal_code

String

The shipping postal code.

content.shipping.state

String

The shipping state.

content.user_agent

String

The full user agent string of the device the customer used to submit the transaction.

content.cvv_present

Boolean

True if the card was used with a CVV.

content.rrn

String

The payment processor's retrieval reference number.

content.shopper_interaction

String

The sales channel that was used to capture the transaction. E.g., ECOMMERCE, MAIL, PHONE, POS. etc.

content.stan

String

A number assigned by a transaction initiator (originator) to assist in identifying a transaction uniquely. This property can be used to store the System Trace Audit Number (STAN) as used in the ISO 8583 and AS2805 specifications.

content.card_brand

String

Same as the payment product type.

content.merchant_id

String

The identifier assigned to the merchant entity under the Payment Provider Contract.

content.merchant_reference

String

A reference specified by the merchant to identify the transaction.

content.poi_id

String

The Verifone assigned ID to the point of the interaction used for the transaction, where applicable.

content.masked_card_number

String

Masked number of the card used for payment.

content.payment_summary.captured_amount

String

The amount that was captured out of the total transaction amount.

content.threed_authentication

Object

3DS authentication information, where applicable. Read our 3-D Secure article for additional information.

content.threed_authentication.eci_flag

String

The Electronic Commerce Indicator (ECI).

content.threed_authentication.enrolled

Boolean

The payment card's 3DS enrollment status.

content.threed_authentication.cavv

String

The Cardholder Authentication Verification Value (CAVV) cryptographic value.

content.threed_authentication.pares_status

String

The Payment Authentication Response (PARes) status.

content.threed_authentication.ds_transaction_id

String

A unique transaction identifier assigned by the 3DS server.

content.threed_authentication.threeds_version

String

The 3DS version used to authenticate the transaction.

Email payload sample

Webhook sample

Event metadata only

Full event payload

Update notifications in Verifone Central

Any notification can be edited as desired. The updates below when the system fails to notify the merchant (e.g., the URL endpoint is unreachable or the can be applied to a notification:

  • Update the notification name

  • Add/remove organization(s)

  • Add/remove events

  • Change the delivery method

  • Enable / disable / delete the notification

Notification failures

Notification failures can occur only for webhook events when the system fails to notify the merchant (e.g., the URL endpoint is unreachable or the service is down/times out).

The failed notifications can be viewed in Verifone Central under Administration > Notifications > select the notification > Notification Failures.

Webhook signature verification

The authenticity and integrity of the webhook event can be verified by checking the signature provided in the header: x-vfi-jws. This signature is used to validate that Verifone is the sender and that the message has not been tampered with.

This signature is provided as a JSON web signature (JWS) using the webhook body as the unencoded payload, as described in https://www.rfc-editor.org/rfc/rfc7797.

The public keys used to verify the signatures are provided in a JWKS (JSON web key set) file, which can be downloaded from the following URLs.

Environment

To verify the signature of the webhook payload, the following steps need to be performed.

  1. Ensure that the application has loaded the keys from the JWKS file. This file should be cached locally and not downloaded from Verifone on each request.

  2. When the request is received, convert the HTTP JSON body to canonicalized form: https://www.rfc-editor.org/rfc/rfc8785.

  3. Select the correct key from the JWKS matching the key id from the x-vfi-jws header.

  4. Use the x-vfi-jws header and canonicalized body to verify the signature with the selected key.

    If the key id is not found in Step 3, then refresh the JWKS file as a new key may have been added.

Webhook signature verification sample

The following Java code verifies a signature as described above and has dependencies on the following libraries:

Last updated

Was this helpful?