Skip to main content
Data layer events

add_payment_info

A user selects a payment method during checkout.

Status: Active

Triggered when a user selects a payment method during checkout.

GA4 docs: https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#add_payment_info

Sample data layer snippet

dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object. 
 dataLayer.push({
  "event": "add_payment_info",
  "ecommerce": {
    "currency": "EUR",
    "value": 350.0,
    "coupon": "SUMMER10",
    "payment_type": "ideal",
    "items": [
      {
        "item_id": "123123",
        "item_name": "4-Person Luxury Villa",
        "item_brand": "Administration Name",
        "item_category": "Accommodation",
        "item_category2": "house",
        "item_variant": "single_night",
        "item_list_id": "checkout",
        "item_list_name": "Checkout",
        "coupon": "SUMMER10",
        "discount": 25.0,
        "price": 350.0,
        "quantity": 1,
        "index": 1,
        "item_country": "Netherlands",
        "item_region": "Twente",
        "item_city": "Enschede",
        "administration_id": 321321,
        "administration_name": "Administration Name",
        "start_date": "2026-02-20",
        "end_date": "2026-02-22",
        "google_business_vertical": "hotel_rental"
      }
    ]
  }
});

Top-level objects

ParameterSamplePresenceDescription
ecommerce{...} (see below)alwaysEcommerce payload wrapper for GA4 events.

ecommerce

Ecommerce payload wrapper for GA4 events.

FieldSamplePresenceDescription
currencyEURalwaysCurrency of the items associated with the event, in 3-letter ISO 4217 format. Source: Currency used for totals/items (booking/order/reservation currency; availability/property search uses the active site currency).
value350.0alwaysTotal value of the checkout. Source: Total order/booking value or sum of item prices.
couponSUMMER10if availableCoupon code applied to the checkout. Source: Applied coupon codes for the booking/reservation, comma-separated when multiple.
payment_typeidealalways

Payment method selected by the user.

  • creditcard
  • ideal
  • paypal
  • applepay
  • bancontact
  • banktransfer
  • sofort

Source: Payment method kind from the payment portal.

items[][...] (see below)alwaysItems array for the ecommerce payload.
ecommerce.items[]

Items array for the ecommerce payload.

FieldSamplePresenceDescription
item_id123123alwaysID of the item. Combine with item_category and item_category2. Source: rentable type id (Accommodation), cost id (Upgrade, Preference), bundle id (Package), or amenity id (Preference with Amenity item_category2). Availability/property search: category or property id.

Notes: Legacy checkout portal used prefixed ids (A/C/P).

item_name4-Person Luxury VillaalwaysThe name of the item. Source: rentable type id (Accommodation), cost id (Upgrade, Preference), bundle id (Package), or amenity id (Preference with Amenity item_category2). Availability/property search: localized category/property name.
item_brandAdministration Nameif availableThe localized name of the site. Source: Checkout portal: administration name. Availability/property search: site/brand name shown on the website (can differ from the administration name).
item_categoryAccommodationalways

Top-level item type.

  • Accommodation
  • Upgrade
  • Preference
  • Package

Source: Checkout portal: Accommodation for rentable types, Upgrade for extras, Preference for amenities/preferences, Package for bundles. Availability/property search: Accommodation.

item_category2houseif available

Semantic segment for accommodations or sub-bucket for extras.

Accommodation: house pitch room berth apartment other
Extras: Amenity Upgrade Package

Source: Checkout portal: accommodation semantic segment or extras bucket. Availability/property search: accommodation semantic segment.

item_category3if available

PMS extra type for extras only.

  • tourist_taxes
  • cleaning
  • parking

Source: Checkout portal extras only: cost extra_type. Not set for accommodations, packages, or availability/property search.

item_variantsingle_nightif available

Stay duration category for the accommodation.

  • single_night - 1 night
  • weekend - 2-3 nights incl weekend
  • midweek - 2-4 nights without weekend
  • week - 6-8 nights or 5 nights incl weekend
  • extended_stay - 9-13 nights
  • long_stay - 14+ nights

Source: Checkout portal accommodations and CMS availability items; derived from arrival/departure.

item_list_idcheckoutif availableID of the list where the item is shown. Source: Availability/property search list id (availability_search/property_search). Cart/checkout events may supply list id like Cart or Checkout.
item_list_nameCheckoutif availableName of the list where the item is shown. Source: Availability/property search list name (Availability search/Property search). Cart/checkout events may supply list name like Cart or Checkout.
couponSUMMER10if availableCoupon applied to the item. Source: Coupon code applied to the reservation or order item (first code, if any).
discount25.0if availableDiscount applied to the item. Source: Discount amount for the order item.
price350.0if available

Price for the item line (stay total for accommodation).

Source: Availability/property search: price for the stay. Checkout portal: order item unit price; accommodation uses stay total derived from booking total minus upgrades.

quantity1if availableQuantity of the item. Source: Order item quantity; otherwise 1.
index1if availablePosition of the item in the list. Source: Position in the result list (availability/property search only).
item_countryNetherlandsif availableThe country where the administration is located. Source: Administration country from BEX (shared across checkout portal and availability/property search).
item_regionTwenteif availableThe region where the administration is located. Source: Administration region from BEX (shared across checkout portal and availability/property search).
item_cityEnschedeif availableThe city where the administration is located. Source: Administration city from BEX (shared across checkout portal and availability/property search).
administration_id321321if availableThe ID of the administration in BEX PMS. Source: Checkout portal: BEX administration id. Availability/property search: the same BEX administration id (Booking Experts administration mapping).

Notes: Renamed from park_id in legacy checkout payloads.

administration_nameAdministration Nameif availableThe name of the administration in BEX PMS. Source: Checkout portal: BEX administration name. Availability/property search: the same BEX administration name (Booking Experts administration mapping).

Notes: Renamed from park_name in legacy checkout payloads.

start_date2026-02-20if availableThe date when the booking starts. Source: Stay arrival date or availability start date.
end_date2026-02-22if availableThe date when the booking ends. Source: Stay departure date or availability end date.
google_business_verticalhotel_rentalif availableGoogle Ads business vertical for dynamic remarketing (examples: "hotel_rental", "retail"). Source: Remarketing business vertical configured globally; not from booking data.

Still need help? Share an idea