--- title: "HPP additional fields" url: "https://docs.adyen.com/online-payments/classic-integrations/hosted-payment-pages/hosted-payment-pages-api/hpp-additional-fields" source_url: "https://docs.adyen.com/online-payments/classic-integrations/hosted-payment-pages/hosted-payment-pages-api/hpp-additional-fields.md" canonical: "https://docs.adyen.com/online-payments/classic-integrations/hosted-payment-pages/hosted-payment-pages-api/hpp-additional-fields" last_modified: "2026-05-26T13:48:54+02:00" language: "en" --- # HPP additional fields [View source](/online-payments/classic-integrations/hosted-payment-pages/hosted-payment-pages-api/hpp-additional-fields.md) **Hosted Payment Pages are no longer available** To accept payments through an Adyen-hosted page, use our [Hosted Checkout](/online-payments/build-your-integration/sessions-flow?platform=Web\&integration=Hosted%2BCheckout). 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. ## ACH payment fields Initiate a payment request with the given fields. ### bankAccount | Field | Type | Required | Description | | ------------------- | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `bankAccountNumber` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The US bank account number from which the payment will be debited.Format: numeric.For ACH transactions, the bank account number needs to comply with length restrictions: min. 4, max. 17 digits. | | `bankLocationId` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The ABA [routing transit number](https://en.wikipedia.org/wiki/Routing_transit_number) for ACH payments from the bank account.Format: 9-digit number.Do not remove any leading zeroes in it. | | `bankName` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The name of the bank where the account is held. | | `bic` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The [business identifier code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. | | `countryCode` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The country code for the transaction.For ACH transactions, set its value to `US`. | | `ownerName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The bank account holder name. | ### billingAddress | Field | Type | Required | Description | | ------------------- | ------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `city` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Name of the city. | | `country` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The country/region identifier.For ACH payments, set its value to `US`. | | `houseNumberOrName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | House number, or house name, or another house identifier. | | `postalCode` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Zip/Post code. | | `stateOrProvince` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Name of the state, region or province, where applicable. | | `street` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Name of the street.You can append a house number to the `street` parameter. In this case, `houseNumberOrName` should be set to an empty string. | ### Response An ACH payment response is similar to [card payment responses](https://docs.adyen.com/api-explorer/#/Payment/latest/authorise__section_resParams), the only difference being that an ACH response does not include an authorisation code (`authCode`), because it is not generated in this case. | Field | Type | Required | Description | | --------------- | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `pspReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Adyen's 16-character unique reference associated with the transaction/the request. This value is globally unique; quote it when communicating with us about this request. | | `refusalReason` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | When the payment is not authorised and it is refused, this field holds Adyen's mapped reason for the refusal. | | `resultCode` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The outcome of the payment. The possible values are:- `Authorised` - `Received` - `Refused` | ### Response's additionalData | Field | Type | Required | Description | | -------------------------------- | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `achdirectdebit.dateOfSignature` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Transaction signature date. Format: `yyyy-MM-dd` | | `achdirectdebit.mandateId` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Its value corresponds to the `pspReference` value for the transaction. | | `achdirectdebit.sequenceType` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | `achdirectdebit.sequenceType` can take one of the following values:- `Final`: (`FNAL`) Last/final collection in a series of direct debit instructions. - `First`: `(FRST`) Initial/first collection in a series of direct debit instructions. - `OneOff`: (`OOFF)` Direct debit instruction to initiate exactly one direct debit transaction. - `Recurring`: (`RCUR`) Direct debit instruction to carry out regular direct debit transactions initiated by the creditor. | ## WeChat Pay To use WeChat Pay on a mobile browser, include the parameter below in your payment request: | Field | Type | Description | | ------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `hppAdditional.flowType` | String | Set this parameter to **desktop**. This parameter enables the desktop flow and presents a QR code to your mobile shoppers instead of redirecting to the mobile app. | ## Billing address and AVS fields For more information on Address Verification System (AVS), refer to [AVS](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules). You can choose to have the HPPs collect the billing address and/or pre-populate these values from your own system. | Field | Type | Required | Description | | ---------------------------------- | ------ | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `billingAddress.city` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The city. | | `billingAddress.country` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The country code information of the billing address section.The `country` value format needs to adhere to the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) standard. An invalid country code results in a transaction/request rejection. You can [look up country codes](https://www.iso.org/obp/ui/) on the ISO website.  | | `billingAddress.houseNumberOrName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The house number (or name). | | `billingAddress.postalCode` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The postal/zip code. | | `billingAddress.stateOrProvince` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The state or province. | | `billingAddress.street` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The street name. | | `billingAddressType` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | You can specify the `billingAddressType` to define whether the shopper is allowed to view and/or modify these personal details.The `billingAddressType` field is part of the `merchantSignature`, which is used to [calculate the HMAC](/online-payments/classic-integrations/hosted-payment-pages/hmac-signature-calculation).The `billingAddressType` can be:- `Not supplied` - modifiable / visible - `1` - unmodifiable / visible - `2` - unmodifiable / invisibleIf you want the shopper to enter the billing address on the payment pages, you need to select the **Billing Address Fields (AVS) **checkbox on the skin edit page in the [Customer Area](https://ca-test.adyen.com/), without supplying a `billingAddressType` value. The billing address details are stored with the transaction. They are visible in the [Customer Area](https://ca-test.adyen.com/) when either a `billingAddressType` value is provided, or when **Billing Address Fields (AVS)** is configured for a skin. | ## Risk fields Adyen's API for payment requests contains several optional fields that can be provided by the merchants. Some of these fields are quite important when the merchant uses several risk checks in the Risk System. We recommend the use of the following fields in order to use to its fullest the capabilities of Adyen's Risk system. * [Billing Address differs from Delivery Address](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules) * [Shopper Address referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Shopper Address referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * `2`: the delivery address fields are not visible, thus fields will be unmodifiable. * `Not supplied`: the delivery address fields are visible and modifiable. If the field is supplied, the `deliveryAddressType` field is is part of the merchant signature. * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Phone Number referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [Social Security Number referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Shopper Email referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [Shopper email used more than x times within a time period](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules) * [High Risk Email Domain](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [Shopper Authorised Velocity](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Shopper initiated a transaction more than X times within a time period](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules) * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Shopper Authorised Velocity](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) * [Shopper Reference Referral List](/risk-management/configure-manual-risk/referral-rules#referral-shopper) * [Card/Bank account number already used by another shopper](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules) * [Card/bank account holder name used more than x times within a time period](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules) * [ShopperDNA](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) | Field | Required | Description | | ------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `billingAddress` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The address where the shopper is going to receive the bill. Providing the following detailed information street, houseNumberOrName, city, postalCode, stateOrProvince, country.Used in the following risk checks:- [Billing address does not match cardholder address (AVS)](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules) | | `browserInfo` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | With the browser info data, we can determine if the device is mobile or not, which is used for device fingerprinting and other device logic. | | `deliveryAddress` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The address where the shopper is going to receive goods/services. Providing the following detailed information street, houseNumberOrName, city, postalCode, stateOrProvince, country.Used in the following risk checks:- [Billing Address differs from Delivery Address](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules) | | `deliveryAddressType` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Specifies whether the shopper is allowed to view and/or modify delivery address fields.It can have the following values:- `1`: the delivery address fields are visible but unmodifiable. | | `deliveryDate` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The expected date of delivery or fulfillment of the goods/services to the shopper.Used in the following risk checks:- [Time To Delivery Check](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules) | | `dfValue` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | Information from the shopper's device and uses the combined value to identify the device of the shopper.Used in the following risk checks:- [Shopper initiated a transaction more than X times within a time period](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules) | | `merchantOrderReference` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | A reference that merchants can use to link multiple transactions to each other. | | `merchantReference` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | A reference to uniquely identify the payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement.If you need to provide multiple references for a transaction, you can enter them in this field. Separate each reference value with a hyphen character ("-").This field has a length restriction: you can enter max. 80 characters. | | `offset` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | An integer value that adds up to the normal fraud score.The value can be either a positive or negative integer. | | `riskdata.deliveryMethod` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The method to deliver the goods to the shopper.Used in [Delivery Method Check](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules). | | `riskdata.shopperAccountCreationDate` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | This specifies the date when the shopper's account was created.Format: `yyyy-MM-dd HH:mm:ss.sssZ`This field can only be used in HPP integrations, and is only used when you have selected the creation date option in the [Shopper Account Age check](/risk-management/configure-manual-risk/standard-risk-rules#consistency-rules). | | `shopper` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | Shopper personal information that includes shopper name, date of birth, and so on (only in countries/regions where it is legal to collect). For more information, refer to [Shopper information fields](#hpp-shopper-fields).Used in the following risk checks:- [Shopper Name referral list](/risk-management/configure-manual-risk/referral-rules#referral-shopper) | | `shopperEmail` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The shopper's email address.We recommend providing this information, because it is used in [velocity fraud checks](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules).Depending on your integration this field may be mandatory for you, check with the [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other).It is not advisable to use a hard-coded email address.Used in the following risk checks:- [Multiple distinct Email addresses used by Shopper](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) | | `shopperReference` | ![-x-](/user/data/smileys/emoji/x.png "-x-") | A unique identifier for the shopper, for example, a customer ID.We recommend providing this information, as it is used in [velocity fraud checks](/risk-management/configure-manual-risk/standard-risk-rules#velocity-rules). It is also the key in recurring payments.This field is mandatory in recurring payments.Used in the following risk checks:- [Multiple distinct Shopper References used by Shopper](/risk-management/configure-manual-risk/standard-risk-rules#shopperdna-rules) | ## Shopper fields Shopper details can be sent to Adyen. They can also be encrypted using a signature. These are the fields Adyen recognizes as shopper information: | Field | Type | Required | Description | | ------------------------------- | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `shopper.dateOfBirthDayOfMonth` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The day of the month of the shopper's birth. | | `shopper.dateOfBirthMonth` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The month of the shopper's birth. | | `shopper.dateOfBirthYear` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The year of the shopper's birth. | | `shopper.firstName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The shopper's first name. | | `shopper.gender` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The shopper's gender. | | `shopper.infix` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The shopper infix. | | `shopper.lastName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The shopper's last name. | | `shopper.telephoneNumber` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The shopper's telephone number. This field is mandatory in case of [SecurePlus](/online-payments/classic-integrations/classic-api-integration/3d-secure-authentication/3d-secure-1/secureplus/) authorise requests. | | `shopperType` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | This field can be used if validation of the shopper fields is desired.Possible values: - `1` - unmodifiable / visible - `2` - unmodifiable / invisible | ## HPP L2/L3 data ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") – mandatory (this field must be sent);  ![-x-](/user/data/smileys/emoji/x.png "-x-") – optional (this field can be sent); blank – this field shouldn't be sent. ### enhancedSchemeData | Field | Type | Level 2 | Level 3 | Max. length | Description | | ------------------------------ | ------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------- | --------------------------------------------------------------------------------------- | | `customerReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 25 | Customer code, if supplied by a customer.Encoding: ASCII. | | `totalTaxAmount` | Numeric | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Total tax amount, in minor units.For example, 2000 means USD 20.00 | | `freightAmount` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 12 | Shipping amount, in minor units.For example, 2000 means USD 20.00 | | `dutyAmount` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 12 | Duty amount, in minor units.For example, 2000 means USD 20.00 | | `destinationPostalCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 10 | The postal code of a destination address.Encoding: ASCII.Required for American Express. | | `destinationStateProvinceCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 3 | Destination state or province code.Encoding: ASCII. | | `shipFromPostalCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 10 | The postal code of a "ship-from" address.Encoding: ASCII. | | `destinationCountryCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 3 | Destination country code.Encoding: ASCII. | | `orderDate` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 6 | Order date.Format: *ddMMyy**Encoding: ASCII.* | ### enhancedSchemeData.itemDetailLine You can submit a maximum of 9 line items. | Field | Type | Level 2 | Level 3 | Max. length | Description | | ---------------- | ------- | -------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------ | | `commodityCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Item commodity code.Encoding: ASCII. | | `description` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 26 | Item description.Encoding: ASCII. | | `productCode` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Product code.Encoding: ASCII. | | `quantity` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Quantity, specified as an integer value.Value must be greater than 0. | | `unitOfMeasure` |   | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 3 | Item unit of measurement.Encoding: ASCII. | | `unitPrice` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Unit price, specified in [minor units](/development-resources/currency-codes). | | `discountAmount` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-x-](/user/data/smileys/emoji/x.png "-x-") | 12 | Discount amount, in minor units.For example, 2000 means USD 20.00 | | `totalAmount` | Numeric | ![-x-](/user/data/smileys/emoji/x.png "-x-") | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | 12 | Total amount, in minor units.For example, 2000 means USD 20.00 |