For the best performance and greatest user experience:

  • Minimize the number of interactions between your website and the API e.g. search after a few characters or after a period of inactivity.
  • Make sure that you delete / override any previous searches that you captured.
  • Prevent browser auto-fill pop up, as this can cover up suggestions or input incorrect data.
  • For Autocomplete, inform your users to separate address elements by commas.
  • Make sure it is clear to users that more suggestions are available, they just need to continue to type to refine the search.
  • Don't store any of the unique address and suggestions identifiers as they are not persistent.

Whenever a service or system communicates over a network, local or external, failures can happen. These can be attributed to a variety of causes, including: maintenance activity, service delivery impacting incidents, user errors or transient network issues along the internet routed path. While we design our systems to be highly resilient, it's impossible to offer services that are never impacted by some of these scenarios.

We recommend that you design your application to tolerate these failures. At a minimum, we suggest that it handles timeouts and employs retries.

Timeouts

We suggest to set a timeout on every request submitted to Experian Address Validation. This is easily achieved by setting the Timeout-Seconds header. The default value is 15 seconds. The timeout setting defines the amount of time you are prepared to wait for Experian to process your request.

For Experian Address Validation we suggest to use 2 seconds as a starting point. The required time for the request to reach our systems and for the response to be returned to you is not included. This additional latency will depend on where your requests originate from.

Retries

Transient failures are often self-correcting, so retrying the request after a suitable delay might result in a successful transaction. These failures may occur anywhere between your site, the internet and our service. This makes implementing retries a useful strategy to provide highly available upstream applications.

These HTTP status codes indicate that an error has occurred and the client appears to be at fault. These are not transient failures and are usually not self-correcting. For example, the request may have combined a country, dataset and search type that is not supported or the client may not be authorized to use the service.

Requests that result in client errors from Experian Address Validation should not be retried because they are unlikely to succeed without updating the request.

One exception is the HTTP 429 Too Many Requests response status code. It indicates that you sent too many requests over a specified period of time. Experian Address Validation responds with a HTTP response code of 429 Too Many Requests and a response body similar to the below. Once a client or application reaches this limit, any further requests are blocked until the next time window begins. You can retry your requests as soon as the time window resets.

{
    "error": {
        "type": "https://docs.experianaperture.io/address-validation/experian-address-validation/address-api-reference/status-codes-and-error-responses/",
        "title": "Too Many Requests",
        "detail": "The rate at which you are submitting requests is too high. To protect all customers, your account has been blocked for one minute.",
        "instance": "/address/search/v1"
    }
}

These HTTP status codes indicate that an error has occurred and the server appears to be at fault. For example, connectivity issues via the internet or service issues. Try investigating whether the errors are thrown by your local application stack or if the errors are received from your requests to Experian Address Validation.

Requests that result in server errors from Experian Address Validation should be retried because they may succeed on subsequent attempts.

We suggest a retry strategy that follows the Capped Exponential Backoff pattern. Immediately and constantly retrying requests can have negative impact on our service's recovery if the issue was caused by exceptionally high load on the service. We advise the client waits an amount of time between attempts. The wait time should be increased exponentially after every attempt. We suggest of using 500ms delay as the starting point and then doubling the delay on every attempt. As the backoff time increases quickly and too avoid retrying requests that are no longer relevant, you should cap the number of times your application retries a request. We suggest to do no more then 3 attempts of the same request.

Auto step-in and auto format functionality is designed to make the address capture process more efficient by reducing the number of interactive steps that the user has to perform to capture an address.

When a search has been performed by our service, the list of suggestions that is returned contains many properties and flags, the can_step_in and full_address properties can be used to simplify the address validation process for your user. The flags should be checked after the search has been performed, but before the results are presented to the user.

  • Should your list of suggestions contain a single match, with a high match score and the can_step_in property set to true, we suggest that your integration automatically steps into that single match, without displaying the suggestion to the user.
  • Should your list of suggestions contain a single match, with the full_address property set to true, we suggest that your integration automatically formats that single match to produce a final address, without displaying the suggestion to the user.

Experian Address Validation can sit behind a multitude of different user interfaces to create the best user experience for your website.

Display function

Whether you choose to display your results in a dropdown, predictive style, rolodex style or another function, Experian Address Validation can integrate seamlessly into your website so that the results are displayed to suit your website design. Check out our sample code. to get started.

Search suggestions

You can also decide what results are searched for when a user types in an address.

  • Program the search to only look at addresses within a specific country.
  • Ask the user to select a country first, then program the search to only look at addresses within this country.
  • Program multiple searches to occur simultaneously – each search a different country, for example your top 4 most used countries, and combine the results before displaying them to the user.

Custom layout suggestions

When creating a custom layout, there are things to consider:

  • The layout name needs to be unique.
  • The name of the layout needs be between 1-100 characters in length.
  • Layout names only allow the following characters (no other special characters are allowed):
    • Uppercase & lowercase letters
    • Numbers
    • Spaces
    • Dashes & underscores (- and _ )