{"title":"Airline data for Hosted Payment Pages","category":"default","creationDate":1776961627,"content":"<div class=\"sc-notice warning\"><div>\n<p><strong>Hosted Payment Pages are no longer available<\/strong><\/p>\n<p>To accept payments through an Adyen-hosted page, use our <a href=\"\/pt\/online-payments\/build-your-integration\/sessions-flow?platform=Web&amp;integration=Hosted%2BCheckout\">Hosted Checkout<\/a>.<\/p>\n<p>This page is for the classic Hosted Payment Pages (HPP) integration, which has reached end-of-life.  We are no longer processing transactions though HPP.<\/p>\n<\/div><\/div>\n<p>It is possible to provide airline and\/or lodging information in your payment requests to our Hosted Payment Pages.<\/p>\n<p>If you are using the new SHA-256 HMAC signature calculation method, all you need to do is to simply include the relevant airline\/lodging fields in the payment request (see code example below).<\/p>\n<p>If you want to submit different airline\/lodging data in your captures and refunds for payments submitted via the HPP, you will need to do that via API. See <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/payments__reqParam_additionalData-AdditionalDataAirline-airline-passengername\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Airline Data<\/a>\u00a0for more information.<\/p>\n<h2 id=\"code-example\">Code example<\/h2>\n<p>Below is a code example for submitting airline data in the authorisation via the Adyen Hosted Pages:<\/p>\n<p>HPP via travel data (PHP)<\/p>\n<pre><code class=\"language-php\">&lt;?php    \/*\n     This PHP code provides a payment form for the Adyen Hosted Payment Pages\n     *\/\n\n    \/*\n     account details\n     $skinCode:        the skin to be used\n     $merchantAccount: the merchant account we want to process this payment with.\n     $sharedSecret:    the shared HMAC key.\n     *\/\n\n    $skinCode        = \"[skin code e.g. GBIMwmE4]\";\n    $merchantAccount = \"[merchant Account e.g. TestCompanyCOM]\";\n    $hmacKey         = \"[HMAC key e.g. D21EB2ASD44BA234C8A0AF13CF0BCACA3D4727C6162630D712C857124B213270]\";\n\n    \/*\n     payment-specific details\n     *\/\n\n    $params = array(\n                    \"merchantReference\" =&gt; \"SKINTEST-1435226439255\",\n                    \"merchantAccount\"   =&gt;  $merchantAccount,\n                    \"currencyCode\"      =&gt; \"EUR\",\n                    \"paymentAmount\"     =&gt; \"199\",\n                    \"sessionValidity\"   =&gt; \"2015-12-25T10:31:06Z\",\n                    \"shipBeforeDate\"    =&gt; \"2015-07-01\",\n                    \"shopperLocale\"     =&gt; \"en_GB\",\n                    \"skinCode\"          =&gt; $skinCode,\n                    \"brandCode\"         =&gt; \"\",\n                    \"shopperEmail\"      =&gt; \"test@adyen.com\",\n                    \"shopperReference\"  =&gt; \"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j\",\n\n                    \/\/ Shopper information\n                    \"shopper.FirstName\"=&gt; \"Testperson-nl\",\n                    \"shopper.LastName\"=&gt; \"Approved\",\n                    \"shopper.DateOfBirthDayOfMonth\"=&gt; \"10\",\n                    \"shopper.DateOfBirthMonth\"=&gt; \"07\",\n                    \"shopper.DateOfBirthYear\"=&gt; \"1970\",\n                    \"shopper.Gender\"=&gt; \"MALE\",\n                    \"shopper.TelephoneNumber\"=&gt; \"0104691602\",\n                    \"shopper.IP\"=&gt; \"62.128.7.69\",\n\n                    \/\/ Billing Address fields (used for AVS checks)\n                    \"billingAddress.street\" =&gt;\"Neherkade\",\n                    \"billingAddress.houseNumberOrName\" =&gt; \"1\",\n                    \"billingAddress.city\" =&gt; \"Gravenhage\",\n                    \"billingAddress.postalCode\" =&gt; \"2521VA\",\n                    \"billingAddress.stateOrProvince\" =&gt; \"NH\",\n                    \"billingAddress.country\" =&gt; \"NL\",\n\n                    \/\/ Delivery\/Shipping Address fields\n                    \"deliveryAddress.street\" =&gt; \"Neherkade\",\n                    \"deliveryAddress.houseNumberOrName\" =&gt; \"1\",\n                    \"deliveryAddress.city\" =&gt; \"Gravenhage\",\n                    \"deliveryAddress.postalCode\" =&gt; \"2521VA\",\n                    \"deliveryAddress.stateOrProvince\" =&gt; \"NH\",\n                    \"deliveryAddress.country\" =&gt; \"NL\",\n                    \"deliveryAddressType\" =&gt; \"\",\n                    \/\/ Optional airline data lines. supports up to 4 legs and 10 passengers.\n                    \"airline.passenger_name\" =&gt; \"Kate Winslet\",\n                    \"airline.ticket_number\" =&gt; \"XC123\",\n                    \"airline.airline_code\" =&gt; \"111\",\n                    \"airline.travel_agency_code\" =&gt; \"000000\",\n                    \"airline.travel_agency_name\" =&gt; \"UNKNOWN\",\n                    \"airline.customer_reference_number\" =&gt; \"******5837\",\n                    \"airline.ticket_issue_address\" =&gt; \"YREWX08AA\",\n                    \"airline.boarding_fee\" =&gt; \"12\",\n                    \"airline.airline_designator_code\" =&gt; \"AA\",\n                    \"airline.agency_plan_name\" =&gt; \"AA\",\n                    \"airline.agency_invoice_number\" =&gt; \"222\",\n                    \"airline.flight_date\" =&gt; \"2015-02-19 00:00\",\n\n                    \"airline.passenger1.first_name\" =&gt; \"Kate\",\n                    \"airline.passenger1.last_name\" =&gt; \"Winslet\",\n                    \"airline.passenger1.traveller_type\" =&gt; \"ADT\",\n                    \"airline.passenger1.phone_number\" =&gt; \"0031634323232\",\n                    \"airline.passenger1.date_of_birth\" =&gt; \"2011-04-31\",\n\n                    \"airline.leg1.depart_airport\" =&gt; \"HKG\",\n                    \"airline.leg1.flight_number\" =&gt; \"364\",\n                    \"airline.leg1.carrier_code\" =&gt; \"AA\",\n                    \"airline.leg1.fare_base_code\" =&gt; \"E\",\n                    \"airline.leg1.class_of_travel\" =&gt; \"E\",\n                    \"airline.leg1.stop_over_code\" =&gt; \"X\",\n                    \"airline.leg1.destination_code\" =&gt; \"AMS\",\n                    \"airline.leg1.date_of_travel\" =&gt; \"2015-02-19 00:00\",\n                    \"airline.leg1.depart_tax\" =&gt; \"396\",\n\n                    \/\/ Optional lodging data lines\n                    \"lodging.checkInDate\" =&gt; \"20150607\",\n                    \"lodging.checkOutDate\" =&gt; \"20150607\",\n                    \"lodging.folioNumber\" =&gt; \"1234\",\n                    \"lodging.specialProgramCode\" =&gt; \"1\",\n                    \"lodging.renterName\"=&gt;\"Peter Pan\",\n                    \"lodging.numberOfRoomRates\" =&gt; \"2\",\n\n                    \"lodging.room1.rate\"=&gt;\"1220\",\n                    \"lodging.room1.numberOfNights\" =&gt; \"4\",\n\n                    \"lodging.room2.rate\"=&gt;\"1220\",\n                    \"lodging.room2.numberOfNights\" =&gt; \"2\",\n\n    );\n\n    \/*\n     process fields\n     *\/\n\n    \/\/ The character escape function\n    $escapeval = function($val) {\n        return str_replace(':','\\\\:',str_replace('\\\\','\\\\\\\\',$val));\n    };\n\n    \/\/ Sort the array by key using SORT_STRING order\n    ksort($params, SORT_STRING);\n\n    \/\/ Generate the signing data string\n    $signData = implode(\":\",array_map($escapeval,array_merge(array_keys($params), array_values($params))));\n\n    \/\/ base64-encode the binary result of the HMAC computation\n    $merchantSig = base64_encode(hash_hmac('sha256',$signData,pack(\"H*\" , $hmacKey),true));\n    $params[\"merchantSig\"] = $merchantSig;\n\n    ?&gt;\n\n&lt;!-- Complete submission form --&gt;\n&lt;!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Strict\/\/EN\"\n\"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-strict.dtd\"&gt;\n&lt;html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" xml:lang=\"en\" lang=\"en\"&gt;\n&lt;head&gt;\n&lt;title&gt;Adyen Payment&lt;\/title&gt;\n&lt;meta http-equiv=\"content-type\" content=\"text\/html; charset=UTF-8\" \/&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;form name=\"adyenForm\" action=\"https:\/\/test.adyen.com\/hpp\/select.shtml\" method=\"post\"&gt;\n&lt;?php\n    foreach ($params as $key =&gt; $value){\n        echo '        &lt;input type=\"hidden\" name=\"' .htmlspecialchars($key,   ENT_COMPAT | ENT_HTML401 ,'UTF-8').\n        '\" value=\"' .htmlspecialchars($value, ENT_COMPAT | ENT_HTML401 ,'UTF-8') . '\" \/&gt;' .\"\\n\" ;\n    }\n    ?&gt;\n&lt;input type=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/hosted-payment-pages\/hpp-payments-with-airline-data","articleFields":{"id":"24217203","type":"page","_expandable":{"operations":""},"status":"current","sitemap":{"priority":0.3},"parameters":{"anchor_new":"<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/payments__reqParam_additionalData-AdditionalDataAirline-airline-passengername\">airline data fields<\/a>","parent_page":"classic Hosted Payment Pages (HPP)","new_desc":"integrating using our Checkout APIs"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/hosted-payment-pages\/hpp-payments-with-airline-data","title":"Airline data for Hosted Payment Pages","content":"\nHosted Payment Pages are no longer available\nTo accept payments through an Adyen-hosted page, use our Hosted Checkout.\nThis page is for the classic Hosted Payment Pages (HPP) integration, which has reached end-of-life.  We are no longer processing transactions though HPP.\n\nIt is possible to provide airline and\/or lodging information in your payment requests to our Hosted Payment Pages.\nIf you are using the new SHA-256 HMAC signature calculation method, all you need to do is to simply include the relevant airline\/lodging fields in the payment request (see code example below).\nIf you want to submit different airline\/lodging data in your captures and refunds for payments submitted via the HPP, you will need to do that via API. See Airline Data\u00a0for more information.\nCode example\nBelow is a code example for submitting airline data in the authorisation via the Adyen Hosted Pages:\nHPP via travel data (PHP)\n&lt;?php    \/*\n     This PHP code provides a payment form for the Adyen Hosted Payment Pages\n     *\/\n\n    \/*\n     account details\n     $skinCode:        the skin to be used\n     $merchantAccount: the merchant account we want to process this payment with.\n     $sharedSecret:    the shared HMAC key.\n     *\/\n\n    $skinCode        = \"[skin code e.g. GBIMwmE4]\";\n    $merchantAccount = \"[merchant Account e.g. TestCompanyCOM]\";\n    $hmacKey         = \"[HMAC key e.g. D21EB2ASD44BA234C8A0AF13CF0BCACA3D4727C6162630D712C857124B213270]\";\n\n    \/*\n     payment-specific details\n     *\/\n\n    $params = array(\n                    \"merchantReference\" =&gt; \"SKINTEST-1435226439255\",\n                    \"merchantAccount\"   =&gt;  $merchantAccount,\n                    \"currencyCode\"      =&gt; \"EUR\",\n                    \"paymentAmount\"     =&gt; \"199\",\n                    \"sessionValidity\"   =&gt; \"2015-12-25T10:31:06Z\",\n                    \"shipBeforeDate\"    =&gt; \"2015-07-01\",\n                    \"shopperLocale\"     =&gt; \"en_GB\",\n                    \"skinCode\"          =&gt; $skinCode,\n                    \"brandCode\"         =&gt; \"\",\n                    \"shopperEmail\"      =&gt; \"test@adyen.com\",\n                    \"shopperReference\"  =&gt; \"YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j\",\n\n                    \/\/ Shopper information\n                    \"shopper.FirstName\"=&gt; \"Testperson-nl\",\n                    \"shopper.LastName\"=&gt; \"Approved\",\n                    \"shopper.DateOfBirthDayOfMonth\"=&gt; \"10\",\n                    \"shopper.DateOfBirthMonth\"=&gt; \"07\",\n                    \"shopper.DateOfBirthYear\"=&gt; \"1970\",\n                    \"shopper.Gender\"=&gt; \"MALE\",\n                    \"shopper.TelephoneNumber\"=&gt; \"0104691602\",\n                    \"shopper.IP\"=&gt; \"62.128.7.69\",\n\n                    \/\/ Billing Address fields (used for AVS checks)\n                    \"billingAddress.street\" =&gt;\"Neherkade\",\n                    \"billingAddress.houseNumberOrName\" =&gt; \"1\",\n                    \"billingAddress.city\" =&gt; \"Gravenhage\",\n                    \"billingAddress.postalCode\" =&gt; \"2521VA\",\n                    \"billingAddress.stateOrProvince\" =&gt; \"NH\",\n                    \"billingAddress.country\" =&gt; \"NL\",\n\n                    \/\/ Delivery\/Shipping Address fields\n                    \"deliveryAddress.street\" =&gt; \"Neherkade\",\n                    \"deliveryAddress.houseNumberOrName\" =&gt; \"1\",\n                    \"deliveryAddress.city\" =&gt; \"Gravenhage\",\n                    \"deliveryAddress.postalCode\" =&gt; \"2521VA\",\n                    \"deliveryAddress.stateOrProvince\" =&gt; \"NH\",\n                    \"deliveryAddress.country\" =&gt; \"NL\",\n                    \"deliveryAddressType\" =&gt; \"\",\n                    \/\/ Optional airline data lines. supports up to 4 legs and 10 passengers.\n                    \"airline.passenger_name\" =&gt; \"Kate Winslet\",\n                    \"airline.ticket_number\" =&gt; \"XC123\",\n                    \"airline.airline_code\" =&gt; \"111\",\n                    \"airline.travel_agency_code\" =&gt; \"000000\",\n                    \"airline.travel_agency_name\" =&gt; \"UNKNOWN\",\n                    \"airline.customer_reference_number\" =&gt; \"******5837\",\n                    \"airline.ticket_issue_address\" =&gt; \"YREWX08AA\",\n                    \"airline.boarding_fee\" =&gt; \"12\",\n                    \"airline.airline_designator_code\" =&gt; \"AA\",\n                    \"airline.agency_plan_name\" =&gt; \"AA\",\n                    \"airline.agency_invoice_number\" =&gt; \"222\",\n                    \"airline.flight_date\" =&gt; \"2015-02-19 00:00\",\n\n                    \"airline.passenger1.first_name\" =&gt; \"Kate\",\n                    \"airline.passenger1.last_name\" =&gt; \"Winslet\",\n                    \"airline.passenger1.traveller_type\" =&gt; \"ADT\",\n                    \"airline.passenger1.phone_number\" =&gt; \"0031634323232\",\n                    \"airline.passenger1.date_of_birth\" =&gt; \"2011-04-31\",\n\n                    \"airline.leg1.depart_airport\" =&gt; \"HKG\",\n                    \"airline.leg1.flight_number\" =&gt; \"364\",\n                    \"airline.leg1.carrier_code\" =&gt; \"AA\",\n                    \"airline.leg1.fare_base_code\" =&gt; \"E\",\n                    \"airline.leg1.class_of_travel\" =&gt; \"E\",\n                    \"airline.leg1.stop_over_code\" =&gt; \"X\",\n                    \"airline.leg1.destination_code\" =&gt; \"AMS\",\n                    \"airline.leg1.date_of_travel\" =&gt; \"2015-02-19 00:00\",\n                    \"airline.leg1.depart_tax\" =&gt; \"396\",\n\n                    \/\/ Optional lodging data lines\n                    \"lodging.checkInDate\" =&gt; \"20150607\",\n                    \"lodging.checkOutDate\" =&gt; \"20150607\",\n                    \"lodging.folioNumber\" =&gt; \"1234\",\n                    \"lodging.specialProgramCode\" =&gt; \"1\",\n                    \"lodging.renterName\"=&gt;\"Peter Pan\",\n                    \"lodging.numberOfRoomRates\" =&gt; \"2\",\n\n                    \"lodging.room1.rate\"=&gt;\"1220\",\n                    \"lodging.room1.numberOfNights\" =&gt; \"4\",\n\n                    \"lodging.room2.rate\"=&gt;\"1220\",\n                    \"lodging.room2.numberOfNights\" =&gt; \"2\",\n\n    );\n\n    \/*\n     process fields\n     *\/\n\n    \/\/ The character escape function\n    $escapeval = function($val) {\n        return str_replace(':','\\\\:',str_replace('\\\\','\\\\\\\\',$val));\n    };\n\n    \/\/ Sort the array by key using SORT_STRING order\n    ksort($params, SORT_STRING);\n\n    \/\/ Generate the signing data string\n    $signData = implode(\":\",array_map($escapeval,array_merge(array_keys($params), array_values($params))));\n\n    \/\/ base64-encode the binary result of the HMAC computation\n    $merchantSig = base64_encode(hash_hmac('sha256',$signData,pack(\"H*\" , $hmacKey),true));\n    $params[\"merchantSig\"] = $merchantSig;\n\n    ?&gt;\n\n&lt;!-- Complete submission form --&gt;\n&lt;!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Strict\/\/EN\"\n\"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-strict.dtd\"&gt;\n&lt;html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" xml:lang=\"en\" lang=\"en\"&gt;\n&lt;head&gt;\n&lt;title&gt;Adyen Payment&lt;\/title&gt;\n&lt;meta http-equiv=\"content-type\" content=\"text\/html; charset=UTF-8\" \/&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;form name=\"adyenForm\" action=\"https:\/\/test.adyen.com\/hpp\/select.shtml\" method=\"post\"&gt;\n&lt;?php\n    foreach ($params as $key =&gt; $value){\n        echo '        &lt;input type=\"hidden\" name=\"' .htmlspecialchars($key,   ENT_COMPAT | ENT_HTML401 ,'UTF-8').\n        '\" value=\"' .htmlspecialchars($value, ENT_COMPAT | ENT_HTML401 ,'UTF-8') . '\" \/&gt;' .\"\\n\" ;\n    }\n    ?&gt;\n&lt;input type=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Classic integrations for Ecommerce","lvl3":"Hosted Payment Pages","lvl4":"Airline data for Hosted Payment Pages"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/online-payments","lvl2":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations","lvl3":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/hosted-payment-pages","lvl4":"\/pt\/online-payments\/classic-integrations\/hosted-payment-pages\/hpp-payments-with-airline-data"},"levels":5,"category":"Online Payments","category_color":"green","tags":["Airline","Hosted","Payment","Pages"]}}
