Customizing iframe form elements

Background
Before starting this tutorial, make sure you understand the following topics from the Quick start section:

By default, each ecommerce and retail iframe displays a standard set of fields for the form.

Ecommerce iframe

For the ecommerce iframe, you can show or hide all these elements:

ElementParameters for uiOptionsDefault valueDescription
Submit buttondisplaySubmitButtonfalseSet to true to display a submit button within the iframe. If you leave it as false, you must provide a submission button elsewhere on the web page.
Billing fieldshideBilling.hideAddressOne
hideBilling.hideAddressTwo
hideBilling.hideCity
hideBilling.hideState
hideBilling.hidePostal
hideBilling.hideCountry
hideBilling.hidePhone
false (for all)Set to true for one or more of these parameters to hide the indicated field from the form.

Optionally, set hideBilling to true to hide all the billing fields.
Security code fieldhideCvcfalseSet to true to hide the security code field.
Country selection menulimitCountriesToAllLeave this parameter out of the request in order to show all available countries, based on the merchant ID (MID).

If you add this parameter and provide an array of country codes, only the specified countries display in the selection list. For example, specify ["CN","DE","NL","ES","US"] to display "China", "Germany", "Netherlands", Spain", and "United States" in the list.
Form validation for security codeuiOptions.requireCvctrueSet to false to allow form submission without requiring a security code.

You can customize the elements that display by following these steps:

  1. Send a POST request to the Create one-time-use token endpoint.

    • Include the uiOptions object and one or more of the parameters from the table above in the body of the request.

      For example, to display a submit button, limit the countries to the United States and Canada, and to hide the phone and second address line fields, the request looks similar to the following:

      curl -X POST https://api.nexiopaysandbox.com/pay/v3/token \
        -H 'Content-Type: application/json' \
        -H 'Accept: application/json' \
        -H 'Authorization: Basic [Base64_encoded_login]' \
        -d '{
        "uiOptions": {
          "displaySubmitButton": true,
          "limitCountriesTo": ["CA","US"],
          "hideBilling": {
            "hideAddressTwo": true,
            "hidePhone": true
          }
        }
      }'
      

      The response includes a token parameter. Encoded within this value is the settings for the form. Save this token for use in the next step.

      {
        "expiration": "2022-09-18T15:43:05.664Z",
        "fraudUrl": "https://api.nexiopaysandbox.com/pay/v3/fingerprint?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2",
        "token": "830d36f6-a5e3-4455-9600-3a55b63e2fc2"
      }
      

  2. Request the iframe to display on the page using the token from the response in step 1.

    You may display a customized form for the iframe for any of the following types of pages:

    For example, the following request uses the token to return the HTML for an iframe for a checkout page for a card, with the settings as specified in step 1.

    curl -X GET https://api.nexiopaysandbox.com/pay/v3?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2' 
    

Retail iframe

For the retail iframe, you can show or hide all these elements:

ElementParameters for uiOptionsDefault valueDescription
Processing AccountmerchantIdSetNonePreselects the Processing Account dropdown field to the specified merchant ID (MID) and hides the field from the user.
Auth OnlyhideAuthOnlytrueHides or displays the Auth Only checkbox.
Customer Info sectionhideCustomerInfotrueHides or displays the Customer Information section of the iframe. This section contains the following fields: First Name, Last Name, Phone, Email, Customer Reference Number, Date of Birth, National Identification Number
Billing Info sectionhideBillingfalseHides or displays all billing fields in the Billing Information section. This section contains the following fields: Country, Address 1, Address 2, City, State / Province, Postal Code, Phone
Shipping Info sectionhideShippingtrueHides or displays all shipping fields in the Shipping Information section. This section contains the following fields: Same as billing information [checkbox], Country, Address 1, Address 2, City, State / Province, Postal Code, Phone
Order Info sectionhideOrderInfotrueHides or displays the Order Information section of the iframe. This section contains the following fields: Invoice, Order Number, Description, Descriptor
Country selection menulimitCountriesToAllLeave this parameter out of the request in order to show all available countries, based on the merchant ID (MID).

If you add this parameter and provide an array of two-character (Alpha-2) ISO country codes, only the specified countries display in the selection list. For example, specify ["CN","DE","NL","ES","US"] to display "China", "Germany", "Netherlands", Spain", and "United States" in the list.
Customer, Billing, and Shipping fieldsfieldsVariesSpecifies which fields to display in the retail iframe's form, and whether they are required or optional for the end user filling out the form. If you include this fields object, any of the possible fields that are not specifically defined are excluded from the form.

For each field included, you configure the value as one of the following:
- "required" - The field displays and the user must enter a value to submit the form successfully.
- "optional" - The field displays and the user can submit the form with or without providing a value.

For example, the following displays a form with only a required firstName field and an optional lastName field:
"fields": { "firstName": "required", "lastName": "optional" }

This object can have one or more of the following fields specified: billToCountry, billToAddressOne, billToAddressTwo, billToCity, billToState, billToPostal, billToPhone, shipToCountry, shipToAddressOne, shipToAddressTwo, shipToCity, shipToState, shipToPostal, shipToPhone, invoice, orderNumber, description, descriptor, firstName, lastName, phone, email, customerRef, birthDate, nationalIdentificationNumber.

For additional information about a field, see the Customizing the retail iframe topic.

In order to customize the retail iframe, follow the steps in Customizing the retail iframe.