Custom fields and industry-specific widgets
Updated on 22.04.26
4 minutes to read
Copy link
Overview
SEON is made to be customizable to counter the fraud risks specific to your business. As widgets are the heart and soul of analyzing transactions in SEON, we've created a collection of widgets that not everyone will use. Still, these widgets will perfectly satisfy an itch for those that need them.
Custom Fields widget
You can use custom fields to truly customize your fraud-fighting experience. SEON collects and creates hundreds of data points, but you can also do your part.
With custom fields, you can send any data to SEON, even if it doesn't have a dedicated default field. You can configure custom fields in two ways:
- Add custom fields to your API request following the formatting on our API reference page.
- Enter custom fields manually into the text box available within the User Details section of the Transaction tab on the Manual Lookup page.
You can then start using custom fields in custom rules – to ensure these data points are part of your risk scoring.

Examples of custom fields
The kinds of custom fields you use will vary wildly depending on your industry. Here are a few examples we've seen:
- Information connected to KYC and identify verification checks
- National ID numbers
user_label:national_id - Address information
user_label:postcode - Verification status
user_label:kyc_status
- National ID numbers
- Additional customer data
- Customer status or account type user_label:vip_level or user_label:user_is_sponsor
- Customer type: user_label:is_business_customer
- Account activity and payments
- Historical deposits and witrhdrawals from an account:
user_label:total_withdrawalsuser_label:lifetimedeposit - Date the customer was last seen
user_label:lastcasinoactivity
- Historical deposits and witrhdrawals from an account:
There really is no limit to what you can do with custom fields, and our Technical Services Team is always ready to help you get started.
Order details widget

Any additional information about the order that has been passed into SEON via the API can be accessed from the Order Details widget.
This includes notes, discount codes, and gift messages.
Transactional Information Widget
The Transactional Information Widget shows all other transactional and payment information passed to SEON via the API.
This includes details about the payment method, bank account, and any relevant verification steps, such as user verification or 3D-Secure.

Flight information widgets
When flight-related data is passed to SEON through custom_fields, SEON can display two dedicated widgets on the Transaction Details page:
- Flight ticket information
- Flight passengers
These widgets are designed for travel-related use cases and can also support custom rules and scoring when the same fields are used in your fraud logic.
How the widgets are triggered
The flight widgets are displayed only when the following trigger fields are present in custom_fields:
routing_airport_countdisplays the Flight ticket information widgetpassenger_countdisplays the Flight passengers widget
If these trigger fields are missing, the widgets remain hidden even if other flight-related fields such as flight_operators, departure_date, or journey_type are present.
Flight ticket information widget

The Flight ticket information widget displays flight-level booking information.
Supported fields include:
departure_datedeparture_dayofweekhours_to_departurereservation_classcabin_classvipflyflight_operatorssale_countrynavigation_countryoperating_countryoperating_companydestination_country3ds_availableshop_channeljourney_type
In addition to these flight-level fields, the widget can also display the full routing of the trip.
To display routing information, send:
routing_airport_count
Then send one numbered set of routing fields for each airport in the journey:
routing_airport1_iatarouting_airport1_cityrouting_airport1_countryrouting_airport2_iatarouting_airport2_cityrouting_airport2_country
Continue the same numbering pattern for each additional airport.
Flight passengers widget

The Flight passengers widget displays passenger-level information.
To display it, send:
passenger_count
Then send one numbered set of passenger fields for each passenger:
passenger1_firstnamepassenger1_lastnamepassenger1_emailpassenger1_phonepassenger1_idpassenger1_typepassenger1_status
Continue the same numbering pattern for each additional passenger:
passenger2_*passenger3_*- and so on
How to use these fields
Flight-related fields passed through custom_fields are not limited to widget display. Once received by SEON, they can also be used in custom rules and scoring logic.
For example, you can use them to:
- score bookings differently based on
journey_type - evaluate time-sensitive bookings using
hours_to_departure - compare
sale_countryanddestination_country - build travel-specific logic using routing or passenger data
Example payload
{
"custom_fields": {
"departure_date": "2026-05-15",
"departure_dayofweek": 5,
"hours_to_departure": 336,
"reservation_class": "Y",
"cabin_class": "Economy",
"vip": "true",
"fly": "true",
"flight_operators": "British Airways",
"sale_country": "HU",
"navigation_country": "HU",
"operating_country": "GB",
"operating_company": "British Airways",
"destination_country": "US",
"3ds_available": true,
"shop_channel": "Web",
"journey_type": "RT",
"routing_airport_count": 3,
"routing_airport1_iata": "BUD",
"routing_airport1_city": "Budapest",
"routing_airport1_country": "Hungary",
"routing_airport2_iata": "LHR",
"routing_airport2_city": "London",
"routing_airport2_country": "United Kingdom",
"routing_airport3_iata": "JFK",
"routing_airport3_city": "New York",
"routing_airport3_country": "United States",
"passenger_count": 2,
"passenger1_firstname": "Jane",
"passenger1_lastname": "Doe",
"passenger1_email": "jane.doe@example.com",
"passenger1_phone": 36111111111,
"passenger1_id": "PAX001",
"passenger1_type": "adult",
"passenger1_status": "VIP",
"passenger2_firstname": "John",
"passenger2_lastname": "Doe",
"passenger2_email": "john.doe@example.com",
"passenger2_phone": 36222222222,
"passenger2_id": "PAX002",
"passenger2_type": "child",
"passenger2_status": "standard"
}
}Troubleshooting
If the flight widgets do not appear, check the following:
- the fields are sent inside
custom_fields - the field names match exactly
routing_airport_countis present and greater than 0 for the Flight ticket information widgetpassenger_countis present and greater than 0 for the Flight passengers widget- routing and passenger fields use the expected numbered format