HPP

Reference

This page defines the parameters sent in a request to invoke Velocity HPP. For sample code, see HPP.

🚧

Note:

  • The callback response parameter is customizable.
  • Velocity accepts the parameters if they are lowercase only.
  • The request contains a body with URL encoded format. Therefore, all the parameters may not be visible in the URL.

html contents

Parents: html: body
Format/Content Type: html

The form element contains multiple input children. When input type="hidden", the parameters are as follows:

Parameter

(The value of input: name)
RequirementFormat

(The format of input: value)
Description

(The value of input: value)
countryRequiredIntegerThe ID of a country from which a customer creates a transaction. This is based on the International Organization for Standardization (ISO) country standard numeric code.
clientidRequiredIntegerA merchant’s unique ID for Velocity, which CellPoint Digital creates.
accountRequiredIntegerThe ID of a sub-account with which a payment transaction is associated. The account ID is an integer greater than 100000, and the account number is an integer smaller than 1000. CellPoint Digital provides the account number.
accept-urlOptionalStringThe absolute URL to which Velocity directs the customer after successfully completing a payment transaction.

Note: If you do not provide this parameter, Velocity uses your default accept URL.
cancel-urlOptionalStringThe absolute URL to which Velocity directs the customer if they cancel a payment transaction midway.

Note: If you do not provide this parameter, Velocity uses your default cancel URL.
callback-urlOptionalStringThe absolute URL of the server-to-server callback.

Note: If you do not provide this parameter, Velocity uses your default callback URL.
orderidRequiredStringThis is a unique order identification string.
operatorOptionalIntegerThe ID of a customer’s mobile network operator. CellPoint Digital recommends including this parameter in the request to ensure Velocity interacts with the operator accurately.
languageOptionalStringThe default language that Velocity uses when translating the payment pages. Velocity language codes are based on the ISO-639-1 standard.

Refer to http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for details.
customer-refOptionalStringA merchant’s unique reference ID for a customer. Velocity uses this token to identify a customer. Additionally, the customer reference ID is included in the request to the specified auth-URL to authenticate the customer when paying with a stored card through the mVault module if single sign-on is used.

Note: If neither country nor currency-code is provided, then the default client country is used for the payment routing.
emailOptionalStringThe email address of a customer.
mobile-countryConditional Requirement: Required if mobile is present.IntegerThe International Dialing Code for the customer's mobile phone number.
mobileOptionalIntegerThe MSISDN of a customer without the International Dialing Code.
amountRequiredDecimalThe total amount that a customer is charged for a payment transaction in a country’s currency.
auth-tokenOptionalStringThe token sent to a specified auth-URL to authenticate a customer when paying with a stored card through the mVault module if single sign-on is used.
init-tokenRequiredStringThis is a combination of SHA512 (clientid+username+password+nonce+accepturl) encryption.

Example:
clientid=10007
username = CPM
password = TEST
nonce = 123435

The above combination generates the following token:
SHA512(10007CPMTEST123435).
nonceRequiredStringTimestamp / random string.
orderdataOptionalJSON stringOrder details, including event, location, date or time, ticket type, cost, booking fee, quantity, and total price.

See HPP for sample code and Display Order Data JSON below for parameter definitions.
gtm-dataOptionalJSON stringThis is a payload for Google Analytics, the details of which are given in another document that can be made available on request.
profile-idConditional Requirement: This field is mandatory only if the merchant wants user profile authentication.StringThe profile ID of a customer, which is used for fetching the customer’s profile from an external system or from Velocity.
response-content-typeOptionalIntegerThe format in which the merchant receives the redirect response. Possible values:
  • 1 - Array content type (default value)
  • 2 - JSON content type
txntypeOptionalIntegerA value to indicate the purchase type such as Search and Book (S&B) or Managed My Booking (MYB). Possible values:
  • 1 - S & B
  • 3 - MYB
  • 5 - MYB (Disable PCH)
  • 6 - CPL Transaction
  • 7 - Call Centre Transaction
additionaldataOptionalJSON stringThe additional data sent from a merchant. In this JSON string, param contains an array of name and text pairs.

These values are open-ended and merchant-defined; see sample code for examples.

When input type="submit", the parameters are as follows:

Parameter

(The value of input: class)
RequirementFormat

(The format of input: value)
Description

(The value of input: value)
btn-linkRequiredStringThis value is always Pay.

Display Order Data JSON

This section describes the JSON string contained in the value associated with orderdata in a request to invoke Velocity HPP.

Within the JSON string, the order object is required, and it contains two children: shipping and line_items. See their descriptions below.

shipping

Parent: order

The shipping object is optional; it provides the customer's shipping address. It contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
nameConditional Requirement: Required if shipping is present.StringThe customer's name.
streetConditional Requirement: Required if shipping is present.StringThe first line of the customer's street address.
street2OptionalStringThe second line of the customer's street address.
cityConditional Requirement: Required if shipping is present.StringThe city in the customer's mailing address.
stateConditional Requirement: Required if shipping is present.StringThe state in the customer's mailing address.
zipConditional Requirement: Required if shipping is present.IntegerThe zip code or postal code for the customer's mailing address.
countryConditional Requirement: Required if shipping is present.IntegerThe ISO numeric country code for the country in the customer's mailing address.

line_items

Parent: order

Please note:

  • The line_items object is required in an orderdata JSON string. It provides booking information.
  • The line_items object contains one line_item array.
  • Each object in the line_item array contains the following: product, amount, and additional_data. See their descriptions below.

product

Parents: order: line_items: line_item

The product string is required in an orderdata JSON string; it provides detailed booking information. It contains the following:

NameRequirementFormatDescription
skuRequiredStringThe short code for a travel itinerary. For example, PNR and order number.
nameRequiredStringThe name of a journey or booking. For example, ONEWAY, RETURN, MULTICITY, MYB, and OLCI.
descriptionOptionalStringA description of the travel itinerary or booking.
airline_dataOptionalJSON stringSee the airline_data section below.

airline_data

Parents: order: line_items: line_item: product

Please note:

  • The airline_data object is optional; it provides detailed information of a travel itinerary such as fare information, traveler information, and trip information.
  • The airline_data object has three child objects: profiles, billing_summary, and trips. See their descriptions below.

profiles

Parents: order: line_items: line_item: product: airline_data

Please note:

  • The profiles object is required in an airline_data object, and it has one child: profile.
  • profile is an array of objects that each have profile information for one passenger.

Each object in profile has the following:

NameRequirementFormatDescription
seqConditional Requirement: Required if airline_data is present.IntegerThe sequence number of the passenger.

Note: This is applicable to airline data only.
titleConditional Requirement: Required if airline_data is present.StringThe title of the passenger, such as Mr., Mrs., or Ms.

Note: This is applicable to airline data only.
first_nameConditional Requirement: Required if airline_data is present.StringThe first name of the passenger.

Note: This is applicable to airline data only.
last_nameConditional Requirement: Required if airline_data is present.StringThe last name of the passenger.

Note: This is applicable to airline data only.
typeConditional Requirement: Required if airline_data is present.StringThe type of passenger. For example,
ADT - Adult
CHD - Child
INF - Infant with FAA Seat
Refer to Reference for all possible values.

Note: This is applicable to airline data only.
contact_infoConditional Requirement: Required if airline_data is present.JSON stringSee the contact_info section below.
additional_dataOptionalJSON stringSee the additional_data section below.

contact_info

Parents: order: line_items: line_item: product: airline_data: profiles: profile

Please note:

  • The contact_info object is required in an airline_data object; it provides contact information for the specified passenger.
  • The contact_info object has two children: email and mobile.

The email child is the following name-value pair:

NameRequirementFormat of valueDescription of value
emailConditional Requirement: Required if airline_data is present.StringThe passenger's email address.

Note: This is applicable to airline data only.

The mobile child is an object containing the following name-value pairs:

NameRequirementFormat of valueDescription of value
country_idConditional Requirement: Required if airline_data is present.IntegerThe 3-digit ISO country code for the mobile phone number in text.

Note: This is applicable to airline data only.
textConditional Requirement: Required if airline_data is present.IntegerThe passenger's mobile phone number.

Note: This is applicable to airline data only.

additional_data

Parents: order: line_items: line_item: product: airline_data: profiles: profile

Please note:

  • The additional_data object within profile is optional; it provides additional trip details.

  • The additional_data object contains the param array.

Each object in the param array has a key value data structure using one of the following name / text pairs:

Value of nameRequirementFormat of textDescription of text
loyality_idOptionalStringThe airline-specific passenger loyalty ID.

Note: This is applicable to airline data only.
passenger_tierOptionalStringThe airline-specific passenger tier.

Note: This is applicable to airline data only.
passport_noOptionalStringThe passenger's passport number.

Note: This is applicable to airline data only.

billing_summary

Parents: order: line_items: line_item: product: airline_data

Please note:

  • The billing_summary object is optional; it provides billing details of a journey.
  • The billing_summary object has two children: fare_detail and add_ons; see their descriptions below.

fare_detail

Parents: order: line_items: line_item: product: airline_data: billing_summary

Please note:

  • The fare_detail object is required in billing_summary; it gives the fare details of a journey.
  • The fare_detail object contains the fare array.

Each object in the fare array has the following name-value pairs:

NameRequirementFormat of valueDescription of value
descriptionConditional Requirement: Required if billing_summary is present.StringA description of the item.

Note: This is applicable to airline data only.
currencyConditional Requirement: Required if billing_summary is present.StringThe alpha3 ISO currency code of the item amount.

Note: This is applicable to airline data only.
amountConditional Requirement: Required if billing_summary is present.NumberThe amount charged for the item. This can be a decimal value.

Note: This is applicable to airline data only.
typeConditional Requirement: Required if billing_summary is present.StringThe type of passenger. For example,
ADT - Adult
CHD - Child
INF - Infant with FAA Seat
Refer to Reference for all possible values.

Note: This is applicable to airline data only.
product_codeConditional Requirement: Required if billing_summary is present.StringThe product code of the item.

Note: This is applicable to airline data only.
product_categoryConditional Requirement: Required if billing_summary is present.StringThe product category of the item.

Note: This is applicable to airline data only.
product_itemConditional Requirement: Required if billing_summary is present.StringThe product name of the item.

Note: This is applicable to airline data only.

add_ons

Parents: order: line_items: line_item: product: airline_data: billing_summary

Please note:

  • The add_ons object is required in billing_summary; it shows additional fees or associated with a journey.
  • The add_ons object contains an add_on array.

Each object in the add_on array has the following name-value pairs:

NameRequirementFormat of valueDescription of value
descriptionConditional Requirement: Required in an add_on array object.StringA description of this add-on.

Note: This is applicable to airline data only.
currencyConditional Requirement: Required in an add_on array object.StringThe alpha3 ISO currency code of the add-on amount.

Note: This is applicable to airline data only.
amountConditional Requirement: Required in an add_on array object.NumberThe amount paid for this add-on. This can be a decimal value.

Note: This is applicable to airline data only.
profile_seqConditional Requirement: This is mandatory only if the object is associated with a passenger.IntegerThe sequence number of the passenger linked to this add-on.

This is the same as the seq value in the profile object associated with the passenger.

Note: This is applicable to airline data only.
trip_tagConditional Requirement: This is mandatory only if the object is associated with a trip.IntegerThe tag number associated with a trip, which is used to identify a trip.

Note: This is applicable to airline data only.
trip_seqConditional Requirement: This is mandatory only if the object is associated with one leg of the trip.IntegerThe trip sequence number, used to identify the leg of the trip.

Note: This is applicable to airline data only.
product_codeConditional Requirement: Required in an add_on array object.IntegerThe code number to identify the add-on product.

Note: This is applicable to airline data only.
product_categoryConditional Requirement: Required in an add_on array object.IntegerThe code number to identify the add-on product's category.

Note: This is applicable to airline data only.
product_itemConditional Requirement: Required in an add_on array object.IntegerThe code number to identify the add-on product item.

Note: This is applicable to airline data only.

🚧

Note: Add-ons can be associated with the passenger, booking, or a particular leg of the booking by using the associated profile_seq, trip_tag, and trip_seq.

trips

Parents: order: line_items: line_item: product: airline_data

Please note:

  • The trips object is required when airline_data is present; it provides information about the travel itinerary.
  • The trips object contains the trip array. Each object in the array describes one trip within a journey.

Each object in the trip array contains the following:

NameRequirementFormatDescription
tagConditional Requirement: Required if airline_data is present.StringThe sequence of this journey in journeys.

Note: This is applicable to airline data only.
seqConditional Requirement: Required if airline_data is present.StringThe sequence of this trip or layover within a journey from end to end.

Note: This is applicable to airline data only.
originConditional Requirement: Required if airline_data is present.JSON stringSee the origin section below.
destinationConditional Requirement: Required if airline_data is present.JSON stringSee the destination section below.
departure_timeConditional Requirement: Required if airline_data is present.StringThe departure time of the flight from the origin, expressed in the origin's local time.

Note: This is applicable to airline data only.
arrival_timeConditional Requirement: Required if airline_data is present.StringThe arrival time of the flight to its destination, expressed in the destination's local time.

Note: This is applicable to airline data only.
booking_classConditional Requirement: Required if airline_data is present.StringThe booking class (RBD – first letter of fare-basis). For example, H.

Note: This is applicable to airline data only.
service_levelConditional Requirement: Required if airline_data is present.StringThe cabin class, such as XL, X, M, or S.

Note: This is applicable to airline data only.
transportationConditional Requirement: Required if airline_data is present.JSON stringSee the transportation section below.
additional_dataOptionalJSON stringSee the additional_data section below.

origin

Parents: order: line_items: line_item: product: airline_data: trips: trip

The origin object is required when airline_data is present; it defines the location of the trip's origin. It contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
country_idConditional Requirement: Required if airline_data is present.IntegerThe ISO numeric country code of the place where the trip originates.

Note: This is applicable to airline data only.
external_idConditional Requirement: Required if airline_data is present.StringThe IATA code of the airport where the trip originates.

Note: This is applicable to airline data only.
textConditional Requirement: Required if airline_data is present.StringThe name of the city where the trip originates.

Note: This is applicable to airline data only.
time_zoneConditional Requirement: Required if airline_data is present.StringThe time zone of the place where the trip originates. The time zone is offset. For example, +08:00.

Note: This is applicable to airline data only.

destination

Parents: order: line_items: line_item: product: airline_data: trips: trip

The destination object is required when airline_data is present; it defines the location of the trip's destination. It contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
country_idConditional Requirement: Required if airline_data is present.IntegerThe ISO numeric country code of the trip's destination.

Note: This is applicable to airline data only.
external_idConditional Requirement: Required if airline_data is present.StringThe IATA code of the destination airport.

Note: This is applicable to airline data only.
textConditional Requirement: Required if airline_data is present.StringThe name of the destination city.

Note: This is applicable to airline data only.
time_zoneConditional Requirement: Required if airline_data is present.StringThe time zone of the trip's destination. The time zone is offset. For example, +08:00.

Note: This is applicable to airline data only.

transportation

Parents: order: line_items: line_item: product: airline_data: trips: trip

The transportation object is required when airline_data is present; it provides transportation information for the travel itinerary. It contains the following:

NameRequirementFormatDescription
codeConditional Requirement: Required if airline_data is present.StringThe marketing airline code for transportation. For example, 5J, PR, OD, and AV.

Note: This is applicable to airline data only.
numberConditional Requirement: Required if airline_data is present.IntegerThe operating flight number.

Note: This is applicable to airline data only.
carriersConditional Requirement: Required if airline_data is present.JSON stringSee the carriers section, below.

carriers

Parents: order: line_items: line_item: product: airline_data: trips: trip: transportation

Please note:

  • The carriers object is required when airline_data is present; it describes the carriers used in a journey.
  • The carriers object contains the carrier array. Each object in this array describes one carrier used in the journey.

Each object in the carrier array has the following name-value pairs:

NameRequirementFormat of valueDescription of value
typeConditional Requirement: Required if airline_data is present.StringThe aircraft type information. For example, Aircraft Boeing-737-9.

Note: This is applicable to airline data only.
codeConditional Requirement: Required if airline_data is present.StringThe code for the operating airline. For example, PR, OD, or AV.

Note: This is applicable to airline data only.
numberConditional Requirement: Required if airline_data is present.IntegerThe flight number in the airline's system.

Note: This is applicable to airline data only.

additional_data

Parents: order: line_items: line_item: product: airline_data: trips: trip

Please note:

  • The additional_data object in trips is optional; it provides additional trip details.
  • The additional_data object contains the param array.

Each object in the param array has a key value data structure using one of the following name / text pairs:

Value of nameRequirementFormat of textDescription of text
NONSTOPOptionalStringIf Yes, the flight is nonstop.

Note: This is applicable to airline data only.
fare_basisOptionalStringThe fare basis.

Note: This is applicable to airline data only.

amount

Parents: order: line_items: line_item

Within the orderdata JSON string, amount is required. It is the following name-value pair:

NameRequirementFormat of valueDescription of value
amountRequiredNumberThe total amount of the order.

additional_data

Parents: order: line_items: line_item

Please note:

  • The additional_data object in line_item (as a child of line_item) is optional. The merchant may use it to insert additional information.
  • The additional_data object contains the param array.
  • Each object in the param array has a key value data structure using one name / text pair.
  • Possible values for name: flight_sel_url, info_cust_url, office_id, promo_code, flexi_search, lowest_fare, and deviceFingerPrint.