# Batch Processing Source: https://docs.loqate.com/ai-agents/cli/batch Verify or parse CSV files of contact data in bulk. Both `verify` and `parse` support batch processing via the `-b` flag, accepting CSV, TSV, and pipe-delimited files. ## Usage ```bash theme={null} lqt verify -b contacts.csv --policy shipping -o jsonl --summary ``` ## Supported file formats * **CSV** — comma-separated (default) * **TSV** — tab-separated * **Pipe-delimited** — pipe (`|`) separated ## Column mapping Reach automatically maps common column names to verification fields. Use any of the following column headers: ### Address fields | Recognized columns | | :----------------------------------------------------------------- | | `address`, `address1`, `address_line_1`, `street` | | `address2`, `address_line_2` | | `city`, `locality` | | `state`, `admin_area`, `administrative_area`, `province`, `region` | | `postcode`, `postal_code`, `zip`, `zip_code` | | `country`, `country_code` | ### Contact fields | Recognized columns | | :----------------------------------- | | `email`, `email_address` | | `phone`, `phone_number`, `telephone` | ### Other fields | Recognized columns | | :--------------------------------------------- | | `name`, `full_name`, `first_name`, `last_name` | | `organization`, `company`, `org` | ## Example CSV ```csv theme={null} address,email,phone,country "125 Summer St, Boston, MA 02110",user@example.com,+16175551234,US "10 Downing Street, London, SW1A 2AA",info@gov.uk,+442071234567,GB "1600 Pennsylvania Ave, Washington DC 20500",contact@whitehouse.gov,+12025551234,US ``` ## Output formats Use `-o` to control the output format: | Format | Description | Best for | | :------ | :----------------------- | :---------------------------------------------- | | `json` | Single JSON array | Small batches, debugging | | `jsonl` | One JSON object per line | Streaming, large batches, piping to other tools | | `table` | Human-readable table | Terminal review | ## Summary statistics Add `--summary` to get aggregate statistics after the batch completes: ```bash theme={null} lqt verify -b contacts.csv --policy standard -o jsonl --summary ``` The summary includes counts of `accept`, `review`, and `reject` outcomes, plus error counts. # CLI Installation Source: https://docs.loqate.com/ai-agents/cli/installation Install the lqt CLI on macOS, Linux, or Windows. The `lqt` CLI is a single Go binary with no dependencies. Pre-built binaries are available for all major platforms. ## Install ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_darwin_arm64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_darwin_amd64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_linux_amd64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_linux_arm64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` Download `lqt_windows_amd64.zip` from the [latest release](https://github.com/gbgplc/lqt/releases/latest), extract `lqt.exe`, and add it to your PATH. Verify the installation: ```bash theme={null} lqt version ``` ## Set your API key ```bash theme={null} export LOQATE_API_KEY=your-key-here ``` ```powershell theme={null} $env:LOQATE_API_KEY="your-key-here" ``` Don't have an API key? [Sign up for a free trial](https://account.loqate.com) with 45 days of access. ## Available commands | Command | Description | | :--------------------- | :--------------------------------------------------------------------------------- | | `lqt verify` | Verify addresses, emails, and phone numbers with policy-driven recommendations | | `lqt parse` | Parse and standardize contact data using Claude Haiku (no Loqate credits consumed) | | `lqt policy list` | Display available policies and their thresholds | | `lqt policy show` | Inspect a specific policy's configuration | | `lqt policy validate` | Validate a custom policy JSON file | | `lqt mcp` | Start the MCP server (stdio or HTTP mode) | | `lqt tool-description` | Export JSON schema for agent frameworks (LangChain, OpenAI, etc.) | | `lqt version` | Display the installed version | ## Global flags | Flag | Description | | :-------------- | :----------------------------------------- | | `-k, --key` | Override the Loqate API key | | `-o, --output` | Output format: `json`, `jsonl`, or `table` | | `-v, --verbose` | Enable verbose logging | | `--no-color` | Disable colored output | # Parse Command Source: https://docs.loqate.com/ai-agents/cli/parse Parse and standardize contact data using Claude Haiku — no Loqate credits consumed. The `parse` command standardizes contact data using Claude Haiku. It splits unstructured addresses into components, normalizes phone numbers, and validates email format — without making Loqate API calls or consuming credits. ## Usage ```bash theme={null} lqt parse [flags] ``` ## Flags | Flag | Description | | :---------------- | :----------------------------------------- | | `-a, --address` | Address to parse into components | | `-e, --email` | Email to validate format | | `-p, --phone` | Phone number to normalize | | `-c, --country` | Country hint (ISO 2-letter code) | | `-b, --batch` | Path to a CSV/TSV file for batch parsing | | `-o, --output` | Output format: `json`, `jsonl`, or `table` | | `--anthropic-key` | Override the Anthropic API key | ## Examples ### Parse an address ```bash theme={null} lqt parse -a "221B Baker Street London NW1 6XE United Kingdom" ``` ### Parse with a country hint ```bash theme={null} lqt parse -a "125 Summer St Boston MA 02110" -c US -o json ``` ### Batch parsing ```bash theme={null} lqt parse -b addresses.csv -o jsonl ``` ## Requirements The `parse` command requires an **Anthropic API key** for Claude Haiku access: ```bash theme={null} export ANTHROPIC_API_KEY=your-key-here ``` ```powershell theme={null} $env:ANTHROPIC_API_KEY="your-key-here" ``` The `parse` command does not call Loqate APIs and does not consume any Loqate account credits. It uses Claude Haiku for address standardization only. ## When to use parse vs verify | Use case | Command | | :----------------------------------------- | :--------------------- | | Standardize address format before storage | `parse` | | Split unstructured address into components | `parse` | | Confirm an address is real and deliverable | `verify` | | Get a confidence score and recommendation | `verify` | | Pre-process data before batch verification | `parse`, then `verify` | # Verify Command Source: https://docs.loqate.com/ai-agents/cli/verify Verify addresses, emails, and phone numbers with policy-driven recommendations. The `verify` command validates contact data against Loqate APIs and returns a confidence score, match-level data, and a policy-aware recommendation. ## Usage ```bash theme={null} lqt verify [flags] ``` ## Flags | Flag | Description | | :-------------- | :-------------------------------------------------------------- | | `-a, --address` | Full address string | | `-e, --email` | Email address | | `-p, --phone` | Phone number (E.164 format recommended) | | `-c, --country` | ISO 2-letter country code | | `--policy` | Policy to apply: `strict`, `shipping`, `standard`, `permissive` | | `--policy-file` | Path to a custom policy JSON file | | `-b, --batch` | Path to a CSV/TSV file for batch processing | | `-o, --output` | Output format: `json`, `jsonl`, or `table` | | `-k, --key` | Override the Loqate API key | | `--field` | Pass extended Loqate input fields | | `--option` | Pass additional API options | | `--summary` | Display summary statistics (batch mode) | ## Examples ### Verify an address ```bash theme={null} lqt verify -a "10 Downing Street, London, SW1A 2AA, GB" -o json ``` ### Verify with a specific policy ```bash theme={null} lqt verify -a "10 Downing St, London, GB" --policy shipping -o json ``` ### Verify address, email, and phone together ```bash theme={null} lqt verify \ -a "221B Baker St, London, GB" \ -e "sherlock@example.com" \ -p "+442071234567" \ --policy strict \ -o json ``` ### Human-readable table output ```bash theme={null} lqt verify -a "125 Summer St, Boston, MA 02110, US" -o table ``` ## Response fields ### Address | Field | Description | | :-------------------- | :--------------------------------------------------------------------------- | | `confidence` | Score between 0 and 1 | | `recommendation` | `accept`, `review`, or `reject` based on the active policy | | `avc` | Address Verification Code (e.g., `V44-I44-P7-100`) | | `verification_status` | `V` (verified), `P` (partially verified), `U` (unverified), `R` (reverified) | | `match_level` | `premise`, `street`, `locality`, `administrative_area`, or `country` | ### Email | Field | Description | | :--------------- | :--------------------------------------------------- | | `confidence` | Score between 0 and 1 | | `recommendation` | `accept`, `review`, or `reject` | | `response_code` | Loqate email validation response | | `risk` | `low`, `medium`, or `high` | | `flags` | Array of risk indicators (e.g., `disposable_domain`) | ### Phone | Field | Description | | :--------------- | :--------------------------------- | | `confidence` | Score between 0 and 1 | | `recommendation` | `accept`, `review`, or `reject` | | `verified` | Whether the phone number is valid | | `number_type` | `mobile`, `landline`, `voip`, etc. | ### Overall | Field | Description | | :--------------- | :------------------------------------------------- | | `recommendation` | Lowest-confidence field's recommendation | | `confidence` | Lowest confidence score across all verified fields | | `policy` | Name of the policy that was applied | ## Exit codes The CLI returns exit codes that agents and scripts can use for control flow: | Code | Meaning | | :--- | :-------------------------------------------------------- | | `0` | `ACCEPT` — all fields passed the policy threshold | | `1` | `REVIEW` — one or more fields need human review | | `2` | `REJECT` — one or more fields failed the policy threshold | | `3` | `ERROR` — a request or configuration error occurred | # Loqate for AI Agents Source: https://docs.loqate.com/ai-agents/introduction Verify addresses, emails, and phone numbers from agentic systems — with confidence scores, policy-aware recommendations, and full audit trails. **Integrate Loqate into AI agents, LLM tool loops, and automated workflows.** Loqate for Agents provides developer tools purpose-built for agentic systems. Verify contact data in real time with deterministic scoring, policy-driven decisioning, and structured output that agents can act on without human intervention. What is Reach and how it fits into agentic workflows Install the CLI and run your first verification in under 2 minutes Install and use the `lqt` command-line tool Connect Loqate to Claude, Cursor, VS Code, and other MCP clients Built-in and custom policy frameworks for decisioning Authentication, environment variables, and key resolution *** ## Why Loqate for Agents? Traditional verification APIs return raw data that requires human interpretation. Loqate for Agents wraps verification in a decisioning layer — every response includes a confidence score (0–1), a policy-aware recommendation (`accept`, `review`, or `reject`), and a match-level assessment. This means your agent can make decisions autonomously based on structured, deterministic output. * **Deterministic scoring** — same input, same score, every time, across CLI, MCP, and API * **Policy-driven decisions** — four built-in policies (strict, shipping, standard, permissive) plus custom policy support * **Agent-native interfaces** — CLI for tool loops, MCP for direct agent integration, JSON output for pipelines * **245+ countries and territories** supported * **No new contract required** — uses your existing Loqate API key Visit [agents.gbg.com/reach.html](https://agents.gbg.com/reach.html) for product information, demos, and the latest updates on Reach. # MCP Server Source: https://docs.loqate.com/ai-agents/mcp/overview Run Reach as an MCP server for Claude, Cursor, VS Code, and other MCP-compatible clients. The `lqt` binary includes a built-in MCP (Model Context Protocol) server that exposes Loqate verification as tools that AI agents can call directly. This means your agent can verify addresses, emails, and phone numbers without shelling out to the CLI — the MCP client handles tool invocation natively. ## Two modes | Mode | Command | Best for | | :-------- | :--------------------- | :-------------------------------------------------------------------------------------------- | | **Stdio** | `lqt mcp` | Local agents — Claude Code, Cursor, VS Code. Communicates over stdin/stdout. | | **HTTP** | `lqt mcp --http :8080` | Hosted deployments. Includes per-IP rate limiting, request logging, and a `/health` endpoint. | ## Setup by client Add Reach as a local MCP server: ```bash theme={null} claude mcp add loqate -- lqt mcp ``` Set your API key as an environment variable in your shell profile, or pass it in the MCP config: ```json .claude/settings.json theme={null} { "mcpServers": { "loqate": { "command": "lqt", "args": ["mcp"], "env": { "LOQATE_API_KEY": "your-key-here" } } } } ``` Verify the connection: ```bash theme={null} claude mcp list ``` Add to your Claude Desktop MCP configuration file: Edit `~/Library/Application Support/Claude/claude_desktop_config.json`: Edit `%APPDATA%\Claude\claude_desktop_config.json`: ```json theme={null} { "mcpServers": { "loqate": { "command": "lqt", "args": ["mcp"], "env": { "LOQATE_API_KEY": "your-key-here" } } } } ``` Add to `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global config): ```json .cursor/mcp.json theme={null} { "mcpServers": { "loqate": { "type": "stdio", "command": "lqt", "args": ["mcp"], "env": { "LOQATE_API_KEY": "your-key-here" } } } } ``` Restart Cursor, then ask: "What Loqate tools do you have available?" Create `.vscode/mcp.json` in your project: ```json theme={null} { "servers": { "loqate": { "type": "stdio", "command": "lqt", "args": ["mcp"], "env": { "LOQATE_API_KEY": "your-key-here" } } } } ``` ## Remote MCP server If you prefer not to install the CLI, you can connect to the hosted MCP endpoint: ``` https://reach.prod.fabric.gbgplatforms.com/mcp ``` ```bash theme={null} claude mcp add --transport http loqate-reach https://reach.prod.fabric.gbgplatforms.com/mcp ``` ```json theme={null} { "mcpServers": { "loqate-reach": { "url": "https://reach.prod.fabric.gbgplatforms.com/mcp" } } } ``` The remote MCP server (HTTP mode) exposes 6 of the 9 tools. `parse_address`, `set_policy`, and `recommend_policy` are only available in stdio mode. See [Available Tools](/ai-agents/mcp/tools#tool-availability-by-mode) for the full breakdown. When using the remote MCP server, your API key can be configured at the organization level (Claude Desktop, Claude Code, Cursor) or passed per-session. See [Configuration](/ai-agents/reference/configuration) for details. ## HTTP mode For hosted or shared deployments, run the MCP server in HTTP mode: ```bash theme={null} lqt mcp --http :8080 ``` HTTP mode adds: * Per-IP rate limiting * Request logging * `/health` endpoint for load balancers and monitoring # MCP Tools Source: https://docs.loqate.com/ai-agents/mcp/tools The nine MCP tools available when running Reach as an MCP server. When running `lqt mcp` (stdio) or `lqt mcp --http :8080` (HTTP), Reach exposes nine tools that MCP-compatible clients can invoke. ## Verification tools ### verify\_address Verifies a postal address and returns a confidence score, AVC match level, and policy-aware recommendation. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :------------------------ | | `address` | string | yes | Full address string | | `country` | string | no | ISO 2-letter country code | | `policy` | string | no | Policy name or `default` | ### verify\_email Validates an email address for deliverability, disposable domain detection, and fraud risk. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :------------------------ | | `email` | string | yes | Email address to validate | | `policy` | string | no | Policy name or `default` | ### verify\_phone Validates a phone number, detecting number type and carrier information. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :------------------------------- | | `phone` | string | yes | Phone number (E.164 recommended) | | `country` | string | no | ISO 2-letter country code | | `policy` | string | no | Policy name or `default` | ### verify\_contact Combined verification — verifies address, email, and phone in a single call with a unified confidence score. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :------------------------ | | `address` | string | no | Full address string | | `email` | string | no | Email address | | `phone` | string | no | Phone number | | `country` | string | no | ISO 2-letter country code | | `policy` | string | no | Policy name or `default` | At least one of `address`, `email`, or `phone` must be provided. ## Parsing tools ### parse\_address Parses an unstructured address into standardized components using Claude Haiku. Does not consume Loqate credits. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :--------------- | | `address` | string | yes | Address to parse | | `country` | string | no | Country hint | ## Policy tools ### list\_policies Returns all available policies (four built-in plus any custom policies registered in the session). **Parameters:** None ### show\_policy Displays the thresholds and rules for a specific policy. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :---------- | | `name` | string | yes | Policy name | ### set\_policy Registers a custom policy for the current session. **Parameters:** | Parameter | Type | Required | Description | | :-------- | :----- | :------- | :---------------------------------------------------------------- | | `policy` | object | yes | Policy definition (see [Policies](/ai-agents/reference/policies)) | ### recommend\_policy Recommends a policy based on a described use case. **Parameters:** | Parameter | Type | Required | Description | | :--------- | :----- | :------- | :---------------------------------------- | | `use_case` | string | yes | Description of your verification use case | ## Tool availability by mode | Tool | Stdio (9 tools) | HTTP (6 tools) | | :----------------- | :-------------: | :------------: | | `verify_address` | Yes | Yes | | `verify_email` | Yes | Yes | | `verify_phone` | Yes | Yes | | `verify_contact` | Yes | Yes | | `parse_address` | Yes | No | | `list_policies` | Yes | Yes | | `show_policy` | Yes | Yes | | `set_policy` | Yes | No | | `recommend_policy` | Yes | No | HTTP mode exposes fewer tools because `parse_address`, `set_policy`, and `recommend_policy` require local state or an Anthropic API key that may not be available in hosted environments. # Overview Source: https://docs.loqate.com/ai-agents/overview Reach is Loqate's agent-native verification tool — a CLI and MCP server that verifies addresses, emails, and phone numbers with deterministic scoring and policy-driven recommendations. ## What is Reach? Reach is GBG's agent-native identity and address verification product. It verifies addresses, emails, and phone numbers in real time — returning a confidence score, a policy-aware recommendation, and a full audit trail in one command. Reach is delivered as a single binary (`lqt`) that serves three interfaces from one verification engine: | Interface | Best for | How it works | | :--------------------- | :---------------------------------------- | :------------------------------------------------------------- | | **CLI** | Tool loops, scripts, CI/CD | Single Go binary. Pipes JSON into agent frameworks. | | **MCP Server** | Claude, Cursor, VS Code, agent frameworks | Stdio mode for local agents, HTTP mode for hosted deployments. | | **Claude Agent Skill** | Claude users | Plain language interface installed via `npx skills add`. | All three interfaces share the same scoring engine — same input produces the same confidence score and recommendation regardless of which interface you use. ## How it works Every verification request follows the same flow: Send an address, email, phone number — or any combination — via the CLI, MCP tool, or skill. Reach calls the Loqate APIs to verify each field and compute a confidence score between 0 and 1. The confidence score is evaluated against the active policy's thresholds to produce a recommendation: `accept`, `review`, or `reject`. A JSON response is returned with per-field scores, an overall recommendation, match-level data, and an audit trail your agent can act on. ## Verification capabilities Confidence scoring, AVC match level, verification status, premise-level matching across 245+ countries. Disposable domain detection, fraud risk flags, deliverability assessment, catch-all detection. Number type detection (mobile/landline), carrier identification, E.164 normalization. Verify address, email, and phone in a single request with a unified confidence score and recommendation. ## Example output A single `verify` call returns structured JSON that agents can parse and act on: ```json theme={null} { "address": { "confidence": 0.95, "recommendation": "accept", "avc": "V44-I44-P7-100", "verification_status": "V", "match_level": "premise" }, "email": { "confidence": 0.15, "recommendation": "reject", "response_code": "Valid", "risk": "high", "flags": ["disposable_domain"] }, "phone": { "confidence": 0.93, "recommendation": "accept", "verified": true, "number_type": "mobile" }, "overall": { "recommendation": "reject", "confidence": 0.15 }, "policy": "strict" } ``` The `overall.recommendation` is the lowest-confidence field's recommendation — if any field fails the policy threshold, the overall recommendation reflects that. *This is an illustrative example. See the [lqt documentation](https://github.com/gbgplc/lqt) for full schema and response details.* ## What you need * A **Loqate API key** — [sign up](https://account.loqate.com) or use an existing key * The **`lqt` binary** — [installation guide](/ai-agents/cli/installation) * Optionally, an **Anthropic API key** for the `parse` command (address parsing via Claude Haiku) The CLI and MCP server are free. Verification calls consume credits from your Loqate account. # Quick Start Source: https://docs.loqate.com/ai-agents/quickstart Install the Reach CLI and verify your first address in under 2 minutes. Get up and running with Reach in three steps. ## 1. Install the CLI ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_darwin_arm64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_darwin_amd64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_linux_amd64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` ```bash theme={null} curl -sL https://github.com/gbgplc/lqt/releases/latest/download/lqt_linux_arm64.tar.gz | tar xz sudo mv lqt /usr/local/bin/ ``` Download `lqt_windows_amd64.zip` from the [latest release](https://github.com/gbgplc/lqt/releases/latest), extract `lqt.exe`, and add it to your PATH. Verify the installation: ```bash theme={null} lqt version ``` ## 2. Set your API key ```bash theme={null} export LOQATE_API_KEY=your-key-here ``` ```powershell theme={null} $env:LOQATE_API_KEY="your-key-here" ``` Don't have an API key? [Create one](https://account.loqate.com) — Loqate offers a free trial with 45 days of access. ## 3. Verify an address ```bash theme={null} lqt verify -a "125 Summer Street, Boston, MA 02110, US" -o json ``` You'll get a structured response with a confidence score and recommendation: ```json theme={null} { "address": { "confidence": 0.97, "recommendation": "accept", "avc": "V44-I44-P6-100", "verification_status": "V", "match_level": "premise" }, "overall": { "recommendation": "accept", "confidence": 0.97 }, "policy": "standard" } ``` ## Next steps Combine address, email, and phone verification in a single command. Connect Reach to Claude, Cursor, or VS Code as an MCP server. Pick from built-in policies or create a custom one for your use case. Verify CSV files of contact data in bulk. # Configuration Source: https://docs.loqate.com/ai-agents/reference/configuration Authentication, environment variables, and key resolution for the Reach CLI and MCP server. ## Authentication Reach requires a Loqate API key for verification. The `parse` command additionally requires an Anthropic API key for Claude Haiku access. ### Loqate API key Set your API key using any of these methods (listed in resolution order): | Method | Example | | :------------------- | :-------------------------------------------------------------------------------------------------------- | | CLI flag | `lqt verify -k YOUR_KEY -a "..."` | | Environment variable | `export LOQATE_API_KEY=your-key-here` (macOS/Linux) or `$env:LOQATE_API_KEY="your-key-here"` (PowerShell) | | Key file | Create a `.loqate-key` file containing just the key | Don't have an API key? [Sign up for a free trial](https://account.loqate.com) with 45 days of access. ### Anthropic API key (parse command only) Required only for the `parse` command and the `parse_address` MCP tool: | Method | Example | | :------------------- | :-------------------------------------------------------------------------------------------------------------- | | CLI flag | `lqt parse --anthropic-key YOUR_KEY -a "..."` | | Environment variable | `export ANTHROPIC_API_KEY=your-key-here` (macOS/Linux) or `$env:ANTHROPIC_API_KEY="your-key-here"` (PowerShell) | ## Environment variables | Variable | Description | | :------------------ | :------------------------------------------------------------------- | | `LOQATE_API_KEY` | Loqate API key for verification | | `ANTHROPIC_API_KEY` | Anthropic API key for the `parse` command | | `LOQATE_POLICY` | Default policy name (`strict`, `shipping`, `standard`, `permissive`) | | `LOQATE_VERIFY_URL` | Custom verification endpoint URL | | `LOQATE_VERIFY_KEY` | Custom verification endpoint key | ## Custom endpoints For customers with a dedicated or on-premise Loqate deployment, override the verification endpoint: ```bash theme={null} export LOQATE_VERIFY_URL=https://your-custom-endpoint.example.com export LOQATE_VERIFY_KEY=your-custom-key ``` ```powershell theme={null} $env:LOQATE_VERIFY_URL="https://your-custom-endpoint.example.com" $env:LOQATE_VERIFY_KEY="your-custom-key" ``` Or via CLI flags: ```bash theme={null} lqt verify --verify-url https://your-endpoint.example.com --verify-key your-key -a "..." ``` ## MCP API key provisioning When using the remote MCP server, API keys can be provisioned at different levels: ### Organization level For Claude Desktop, Claude Code, and Cursor, an administrator can set the API key in the organization's project instructions. All team members inherit access automatically. ### User level Individual users can configure their API key in their client's settings or user preferences. ### Session level Pass the API key directly in the chat for single-session use. The key is used for that session only and is not stored. ## Costs * The **CLI and MCP server** are free to use * **Verification calls** (`verify` command and verification MCP tools) consume credits from your Loqate account * The **`parse` command** does not consume Loqate credits (it uses Claude Haiku via your Anthropic key) * No new contract or procurement is required — Reach uses your existing Loqate account # Policies Source: https://docs.loqate.com/ai-agents/reference/policies Built-in and custom policy frameworks for controlling verification decisioning. Policies define the thresholds that determine whether contact data is accepted, flagged for review, or rejected. Every `verify` call evaluates results against a policy to produce an actionable recommendation. ## Built-in policies Reach ships with four policies covering common use cases: | Policy | Address Confidence | Match Level | Email Confidence | Phone Required | Use case | | :------------- | :----------------: | :---------: | :--------------: | :------------: | :-------------------------------- | | **strict** | 0.90 | premise | 0.85 | yes | KYC, fraud prevention, compliance | | **shipping** | 0.70 | street | 0.50 | no | Physical delivery, e-commerce | | **standard** | 0.55 | street | 0.45 | no | General verification (default) | | **permissive** | 0.30 | locality | 0.30 | no | Lead capture, marketing | ## Choosing a policy Requires premise-level address matching (0.90 confidence), high email confidence (0.85), and phone verification. Use for financial services, identity verification, and any flow where false positives are costly. Requires street-level matching (0.70 confidence) and moderate email confidence (0.50). Phone is optional. Use for e-commerce checkout, delivery address validation, and logistics. The default policy. Requires street-level matching (0.55 confidence) and basic email confidence (0.45). Suitable for most use cases where you want verification without being overly restrictive. Accepts locality-level matching (0.30 confidence) with minimal thresholds. Use for lead forms, newsletter signups, and scenarios where you want to capture data even if it's imprecise. ## Using a policy ### CLI ```bash theme={null} lqt verify -a "10 Downing St, London, GB" --policy shipping -o json ``` ### Environment variable ```bash theme={null} export LOQATE_POLICY=shipping lqt verify -a "10 Downing St, London, GB" -o json ``` ```powershell theme={null} $env:LOQATE_POLICY="shipping" lqt verify -a "10 Downing St, London, GB" -o json ``` ### Policy resolution order When multiple policy sources are present, Reach resolves in this order: 1. `--policy-file` flag (custom policy JSON file) 2. `--policy` flag (named built-in policy) 3. `LOQATE_POLICY` environment variable 4. `.loqate-policy.json` file in the current directory 5. `standard` (default) ## Custom policies Create a JSON file to define your own thresholds: ```json custom-policy.json theme={null} { "name": "my-ecommerce-policy", "description": "Balanced policy for e-commerce checkout", "address": { "min_confidence": 0.65, "min_match_level": "street", "reject_verification_status": ["U", "R"] }, "email": { "min_confidence": 0.50, "allow_catch_all": true, "reject_disposable": true }, "phone": { "min_confidence": 0.40, "required": false } } ``` ### Custom policy fields #### Address | Field | Type | Description | | :--------------------------- | :----- | :------------------------------------------------------------------------------------- | | `min_confidence` | number | Minimum confidence score (0–1) to accept | | `min_match_level` | string | Minimum match level: `premise`, `street`, `locality`, `administrative_area`, `country` | | `reject_verification_status` | array | Verification statuses to auto-reject (e.g., `["U", "R"]`) | #### Email | Field | Type | Description | | :------------------ | :------ | :--------------------------------------------------- | | `min_confidence` | number | Minimum confidence score (0–1) to accept | | `allow_catch_all` | boolean | Whether to accept catch-all email domains | | `reject_disposable` | boolean | Whether to reject disposable/temporary email domains | #### Phone | Field | Type | Description | | :--------------- | :------ | :--------------------------------------- | | `min_confidence` | number | Minimum confidence score (0–1) to accept | | `required` | boolean | Whether phone verification is mandatory | ### Validate a custom policy ```bash theme={null} lqt policy validate custom-policy.json ``` ### Use a custom policy ```bash theme={null} lqt verify -a "10 Downing St, London, GB" --policy-file custom-policy.json -o json ``` ### Register via MCP In an MCP session, use the `set_policy` tool to register a custom policy for the current session. This is useful when your agent needs to switch policies based on context. # IBM watsonx Orchestrate Agent Source: https://docs.loqate.com/ai-agents/wxo/overview Reach as a native watsonx Orchestrate (WXO) agent — a data-quality agent that verifies and cleanses address, email, and phone data from inside WXO chats, collaborations, and workflows. **Coming soon.** The Reach agent for IBM watsonx Orchestrate is not yet generally available. This documentation describes the agent ahead of its launch — features and steps may change before release. **GBG Reach** is available as a native [IBM watsonx Orchestrate](https://www.ibm.com/products/watsonx-orchestrate) (WXO) agent. It brings the Reach verification engine — addresses, emails, and phone numbers with policy-aware decisioning — directly into watsonx Orchestrate. This is the same Reach product documented elsewhere in this section. The difference is the delivery surface: instead of the `lqt` CLI or a standalone MCP server, verification runs as a first-class WXO agent that you discover and add from inside watsonx Orchestrate — no code or local install required. ## How it relates to Reach The WXO agent is powered by the same hosted Reach engine that drives the [MCP server](/ai-agents/mcp/overview). The policy logic, confidence scoring, and AVC codes all run server-side, so a verification in watsonx Orchestrate returns the same result as the equivalent CLI or MCP call. You interact with it entirely through watsonx Orchestrate — in chat, as a collaborator, or as a step in a workflow. ## Capabilities Verify, standardise, and cleanse postal addresses from free-form text or structured fields. Check deliverability and format, with disposable-domain and risk detection. Validate and format phone numbers, E.164 preferred with country-code fallback. Verify address, email, and phone together with an overall accept / review / reject recommendation. Paste a block of records or upload a CSV directly in the watsonx Orchestrate chat. Built-in `strict`, `shipping`, `standard`, and `permissive` policies control accept / review / reject thresholds. ## Structured output Every verification returns a structured report that collaborator agents and workflows can act on without human interpretation: ```json theme={null} { "summary": "Verified 1 record: Jane Doe accepted", "results": [ { "type": "contact", "name": "Jane Doe", "address": "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", "email": "jane.doe@example.com", "phone": "+16502530000", "decision": "accept", "confidence": 0.95, "policy": "standard", "reason": "All fields verified and standardised" } ] } ``` ## What you need * Access to an **IBM watsonx Orchestrate** instance * A **Loqate subscription**, provisioned and purchased through watsonx Orchestrate. Your Loqate API key is issued as part of that process — you don't need a separate Loqate account. ## Next steps Discover and add the agent, then use it in chat, as a collaborator, or in a workflow. Built-in and custom decisioning policies. # Usage Source: https://docs.loqate.com/ai-agents/wxo/usage Discover and add the Reach agent in watsonx Orchestrate, then use it in chat, as a collaborator, or as a step in an agentic workflow. **Coming soon.** The Reach agent for IBM watsonx Orchestrate is not yet generally available. This documentation describes the agent ahead of its launch — features and steps may change before release. The Reach agent is discovered and added from inside watsonx Orchestrate — there's nothing to install locally. Once added, you can use it three ways, all returning the same structured [verification report](/ai-agents/wxo/overview#structured-output). ## Add the agent to your instance Reach is published as a native agent in the watsonx Orchestrate agent catalog. From your instance, browse the catalog, select **GBG Reach**, and add it. The **Loqate API key** the agent uses to authenticate is issued when you provision and purchase Loqate through watsonx Orchestrate — there's no separate Loqate account to set up. Discovering and adding a native agent is a standard watsonx Orchestrate workflow. For the exact steps in your environment — including the agent catalog and connection credentials — follow the [watsonx Orchestrate documentation](https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base), using the version that matches your instance. ## 1. Interactive chat The simplest pattern — talk to the agent directly. It detects the data type, runs the right verification, and returns a decision with a confidence score. ```text theme={null} You: Verify this email: jane.doe@example.com Reach: jane.doe@example.com → accept (confidence 0.95, policy: standard) Deliverable, format valid, no risk flags. ``` You can also paste a block of records, or **upload a CSV**, and ask the agent to verify every row in one go. ## 2. Agent-to-agent (collaborator) Add Reach as a **collaborator** of another agent so a supervisor agent can hand off verification mid-conversation. The supervisor stays in control of the dialogue; when the user asks to verify, validate, or cleanse an address, email, or phone number, it delegates to Reach and receives a structured result back. This is configured in watsonx Orchestrate by listing Reach among the agent's collaborators — no code required. ## 3. As part of an agentic workflow For bulk, scheduled, or headless work, use Reach as a step inside a watsonx Orchestrate flow. A typical contact-cleansing flow reads records from your system of record, verifies and standardises each one through Reach, then writes the cleansed records back: ```text theme={null} [Read contacts] → for each record → [Reach: verify & standardise] → [Write cleansed records] ``` Reach supplies the verification step in the middle; the read and write-back steps connect to your own systems (CRM, data store, spreadsheet). Reach's structured output — decision, confidence, standardised fields, and reason per record — flows straight into the next step. ## Policies Every verification is evaluated against a policy that sets the accept / review / reject thresholds. Reach ships with `strict`, `shipping`, `standard` (the default), and `permissive`. You can ask the agent which policies are available or to explain a specific one, and you can name a policy in your request (for example, "verify these addresses using the strict policy"). See [Policies](/ai-agents/reference/policies) for the full breakdown of each policy's thresholds and when to use it. # Capture Find: Filters Source: https://docs.loqate.com/api-reference/address-capture/filters Filter address search results by postcode, locality, thoroughfare, organization, and more. Use IS and ISN'T filters to refine address matches. Using Filters as part of a [Capture Find](/api-reference/address-capture/find) call you can include or exclude certain type of addresses or locations from the address matches presented back to the end user. All Filters are currently operating on the basis of an exact match. Multiple filters can be provided in the same request. `&Filters=:` - this is an **IS** filter and will limit matches to the subset where this field value is as specified `&Filters=!:` - this is an **ISN'T** filter and will exclude any matches where this field value is as specified ## Example This will return matches that are in Nottingham, UK and exclude addresses with NG11 7EP postcode: ``` &Filters=Locality:Nottingham&Filters=!Postcode:NG11 7EP ``` ## Available filters The following filters are supported: | Filter | Description | | :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Postcode | Postal code / Postcode / ZIP Code.

Values can be specified regardless of casing or spaces. In the US it is possible to specify ZIP Code without the Zip+4 part and the results will include all records with the primary ZIP Code specified. | | Locality | The most common population centre within a country (i.e. USA City, Canadian Municipality). | | DependentLocality | A smaller population centre, dependent on the contents of the Locality field (i.e. District). | | Thoroughfare | The name of the street or thoroughfare. | | OrganisationName | The name of the company listed at this address. | | Language | The three character alpha country code as defined by the ISO 639-2/B specification. *Note that using this filter can return blank results if the search term you're using isn't available in the language you're filtering by. For example, if you're searching for the word "strasse" and using 'countries=de', using the filter Language:eng (i.e. setting the language filter to English) will return a blank result.* | | AdministrativeArea (US addresses only) | The most common administrative district within a country (i.e. US State). | | SubAdministrativeArea (US addresses only) | The smallest administrative region within a country (i.e. US County). | | Attributes.CommercialResidential (US addresses only) | Address type.

Allowed values are "Commercial" and "Residential". | | Attributes.HasSubPremise (US addresses only) | In the US, some addresses belong to a building that has a number of sub premises in it, (e.g. apartments or suites). By default, Capture will return an address of the building and a container with sub premises listed inside of it. You can exclude those building addresses where further sub premises exist by specifying a filter of HasSubpremises = NO.

Allowed values are "YES" and "NO". | | HomeNation (UK addresses only) | This filter will restrict the results to addresses from the specified country within the UK.

You can specify multiple values, and also invert the meaning to exclude selected countries (e.g. \&Filters=!HomeNation:Northern Ireland )

Allowed values are "England", "Scotland", "Wales", "Northern Ireland", "Channel Islands", "Isle of Man". | | Attributes.PostalAddress (AddressBase Premium Only) | Available only if AddressBase Premium has been enabled on your account for GB lookups. Filters addresses based on their postal delivery status.

Allowed values are "D" (Royal Mail PAF), "N" (Not a postal address), "C" (postal and linked to PAF) or "L" (postal and linked to local authority) | # Capture Find Source: https://docs.loqate.com/api-reference/address-capture/find capture_interactive_find get /Capture/Interactive/Find/v1.20/json6.ws Search for addresses and places with type-ahead functionality. Returns address IDs for use with Retrieve API to get formatted addresses. Note this does not return formatted addresses, and repeated calls to this service may be required to drill-down through results until an address ID is returned. The address ID should then be passed into the Retrieve service to obtain a fully formatted address. **This method does not consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # GeoLocation - UK Only Source: https://docs.loqate.com/api-reference/address-capture/geolocation capture_interactive_geolocation get /Capture/Interactive/GeoLocation/v1.00/json6.ws Find UK addresses within a radius of latitude/longitude coordinates using Ordnance Survey data. Returns address IDs for use with Retrieve API. The GeoLocation service takes latitude longitude coordinates and returns addresses that are within a specified radius. This must be followed by a Retrieve to obtain a fully formatted address. This service is only available for UK addresses, using Ordnance Survey data **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Capture Retrieve Source: https://docs.loqate.com/api-reference/address-capture/retrieve capture_interactive_retrieve get /Capture/Interactive/Retrieve/v1.30/json6.ws Get formatted address details using the ID from Capture Find. Returns address lines, postal codes, and geographic information. **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # International Batch Cleanse Source: https://docs.loqate.com/api-reference/address-verify/international-batch-cleanse cleansing_international_batch post /Cleansing/International/Batch/v1.20/json6.ws Validate global addresses individually or in batches up to 100 records. Returns verified addresses with standardization and quality indicators. **To enable the best customer experience, the recommendation is to send batches of less than 100 records which are homogenous in terms of the location.** Grouping the requests into countries enables the Verify engine to manage its resources more effectively. We don't support API connections using HTTP - all calls should use HTTPS. # International Batch Cleanse (Oracle Cloud) Source: https://docs.loqate.com/api-reference/address-verify/international-batch-cleanse-oci cleansing_international_batch_oci post /Cleansing/International/Batch/v1.20/json6.ws Validate global addresses individually or in batches up to 100 records via the Oracle Cloud-hosted Loqate Verify service. Returns verified addresses with standardization and quality indicators. **To enable the best customer experience, the recommendation is to send batches of less than 100 records which are homogenous in terms of the location.** Grouping the requests into countries enables the Verify engine to manage its resources more effectively. This endpoint is hosted on Oracle Cloud Infrastructure at `https://oci.location.gbg.com`. We don't support API connections using HTTP - all calls should use HTTPS. # Batch Bank Validation Source: https://docs.loqate.com/api-reference/bank-validation/batch bank_batch get /BankAccountValidation/Batch/Validate/v1.00/json6.ws Validate multiple UK bank accounts and sort codes in bulk. Returns corrected details, IBAN, and branch information. **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Individual Bank Validation Source: https://docs.loqate.com/api-reference/bank-validation/individual bank_individual get /BankAccountValidation/Interactive/Validate/v2.00/json6.ws Verify UK bank account numbers and sort codes individually. Returns corrected BACS details, IBAN, branch information, and payment service support. **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # International Bank Validation Source: https://docs.loqate.com/api-reference/bank-validation/international bank_international get /InternationalBankValidation/Interactive/Validate/v1.00/json6.ws Validate international bank account numbers internationally - excluding US. Returns whether IBAN format is correct. **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Bank Validation: RetrieveBySortcode Source: https://docs.loqate.com/api-reference/bank-validation/retrievebysortcode bank_retrieve_by_sortcode get /BankAccountValidation/Interactive/RetrieveBySortcode/v1.00/json6.ws Get UK bank branch details using sort code only. Returns bank name, BIC codes, branch contact information, and supported payment service types. **This method will consume credit.** We don't support API connections using HTTP - all calls should use HTTPS. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Common Errors Source: https://docs.loqate.com/api-reference/common-errors Troubleshoot common API errors across Loqate services. Find solutions for authentication issues, credit limits, key restrictions, and more. If an error occurs, an error table like the one below (but containing a single row) will be returned. To test for an error response, look for a 4-column table with columns "Error", "Description", "Cause" and "Resolution". Generic errors like these have IDs below 100. Specific errors have IDs starting at 1000. | Id | Error | Cause | Resolution | | ------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **-1** | Unknown error | The cause of the error is unknown but details have been passed to our support staff who will investigate. | These problems are typically short lived and are often resolved by trying again in a few minutes. | | **2** | Unknown key | The key you are using to access the service was not found. | Please check that the key is correct. It should be in the form AA11-AA11-AA11-AA11. | | **3** | Account out of credit | Your account is either out of credit or has insufficient credit to service this request. | Please check your account balance and top it up if necessary. | | **4** | Request not allowed from this IP | The request was disallowed from the IP address. | Check the security settings on the key first. If they look fine, please contact support as it may be from an IP address on our blacklist. | | **5** | Request not allowed from this URL | The request was disallowed from the URL. | Check the security settings on the key first. If they look fine, please contact support as it may be from a URL on our blacklist. | | **6** | Web service not available on this key | The requested web service is disallowed on this key. | Check the security settings on the key first. You can limit a key to certain web services. | | **7** | Web service not available on your plan | The requested web service is not currently available on your payment plan. | Some services are only available in specific regions due to licensing restrictions. Please contact us for more information. | | **8** | Key daily limit exceeded | The daily limit on the key has been exceeded. | Alter the daily limit on the key. Check the usage details first to see if usage is normal. | | **9** | Your account has been suspended | Your account has been suspended. This can be for a number of reasons including non-payment of an invoice. | Please contact us in order to resolve this issue. | | **10** | Surge protector triggered | An unusually large number of requests have been processed for your account so the surge protector has been enabled. | You can disable the surge protector at any time but this is only recommended if you are running through a batch of requests. | | **11** | No valid license available | The request requires a valid license but none were found. | Please check your purchase history. You may be using a license that is no longer valid or of an incorrect type. | | **12** | Management key required | To use this web service you require a management key. Management can be enabled on any key, but we advise you to use management keys with care. | Sign in to the website and create a new management key or change an existing key. | | **13** | Demo limit exceeded | The daily demonstration limit for this service or account has been exceeded. | The limit will be reset at midnight tonight. If you would like the limit increased, please contact us. | | **14** | Free service limit exceeded | You have used too many free web services. | Our web services are designed to operate in stages. The first is usually a Find service followed by a Retrieve. If you use too many Finds without the corresponding number of Retrieves you will receive this error. For more information, please contact us. | | **15** | Wrong type of key | The type of key you're using isn't supported by this web service. | This usually happens if you're using a user or server license with a web service that only supports transactional keys. Please use another key and try again. | | **16** | Key expired | The key you are trying to use has expired. | Please check that you are using the right key. A new one may have been issued if you recently renewed your key. Contact us if you have any questions. | | **17** | Individual User exceeded Lookup Limit | An Individual User has exceeded their daily lookup limit on the key and that user will be prevented from using your service until tomorrow (GMT). | Check the usage details. If required, increase the Lookup Limit per Individual User or add the specific Individual User's IP to the Limiter Exclusions. | | **18** | Missing or invalid parameters | A required parameter was not supplied of the value of a parameter cannnot be converted into the right type. | Check the parameters passed and their values against the specification for this service. | | **19** | Invalid JSON object | The JSON object sent in your request is invalid. | Please ensure your JSON object is syntactically correct and try again. | | **20** | Endpoint not available | The web service you are calling is not available on this endpoint. | Refer to our documentation pages to ensure you are calling a valid endpoint for the web service you are requesting. | | **21** | Sandbox Mode is not available on this endpoint | The License key used has Sandbox Mode enabled, but the testing functionality is not available on this endpoint. | Disable the Sandbox Mode on the License key. | | **22** | HTTPS requests only | As of 3rd September 2018 all new accounts must use HTTPS. | Ensure you consume all of our APIs over HTTPS and not HTTP. | | **23** | Agreement Not Signed | There are agreements associated with service which are not signed. | Please go to your account and check your agreements. | | **24** | Not enough credit for request | There is not enough credit on the account to process the request. | Please top up your account with credit. | | **25** | Unexpected error, please contact the help desk for more information | | | # Batch Email Validation Source: https://docs.loqate.com/api-reference/email-validation/batch-validate email_batch get /EmailValidation/Batch/Validate/v1.20/json6.ws Verify up to 100 email addresses per batch request. Returns validation status, identifies disposable mailboxes, and detects system addresses. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Bulk Email Validation Source: https://docs.loqate.com/api-reference/email-validation/bulk-validate Validate up to 100,000 email addresses asynchronously using three endpoints. Submit lists, check processing status, and retrieve validation results. This service is comprised of three endpoints. See the [Bulk Email Validation](/our-services/email-validation/bulk-email-validation) guide for details of how these endpoints interact. First, submit a list of emails for validation. Next, check the status of your submission. Lastly, retrieve the results of your validation. # Individual Email Validation Source: https://docs.loqate.com/api-reference/email-validation/individual email_individual get /EmailValidation/Interactive/Validate/v2.00/json6.ws Verify individual email addresses in real-time. Returns validation status, risk score, and identifies disposable or temporary mailboxes with 97% accuracy. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # DistancesAndDirections: Directions Source: https://docs.loqate.com/api-reference/geocode/distances-and-directions/directions geocode_directions get /DistancesAndDirections/Interactive/Directions/v2.00/json6.ws Get turn-by-turn directions between coordinates or postcodes. Returns step-by-step instructions with road names, distances, and time for each segment. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # DistancesAndDirections: Distance Source: https://docs.loqate.com/api-reference/geocode/distances-and-directions/distance geocode_distance get /DistancesAndDirections/Interactive/Distance/v1.00/json6.ws Calculate total distance and travel time between coordinates or postcodes. Supports multiple waypoints and returns measurements in metres and seconds. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: International Geocode Source: https://docs.loqate.com/api-reference/geocode/geocoding/international-geocode international_geocode get /Geocoding/International/Geocode/v1.10/json6.ws Convert postal codes or place names to WGS84 coordinates for international locations. Returns latitude and longitude for geocoding worldwide. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: International PositionToCountry Source: https://docs.loqate.com/api-reference/geocode/geocoding/international-positiontocountry international_positiontocountry get /Geocoding/International/PositionToCountry/v1.00/json6.ws Identify which country contains specific coordinates. Returns country name and ISO codes from WGS84 latitude and longitude input. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: International RetrieveNearestPlaces Source: https://docs.loqate.com/api-reference/geocode/geocoding/international-retrievenearestplaces international_retrievenearestplaces get /Geocoding/International/RetrieveNearestPlaces/v1.00/json6.ws Find nearest places of interest within a specified radius from any center point. Returns locations with distances and coordinates in kilometres. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: International ReverseGeocode Source: https://docs.loqate.com/api-reference/geocode/geocoding/international-reversegeocode international_reversegeocode get /Geocoding/International/ReverseGeocode/v2.00/json6.ws Convert WGS84 coordinates to nearest street addresses internationally. Returns street number, name, city, province, and postal code. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: UK Find Source: https://docs.loqate.com/api-reference/geocode/geocoding/uk-find uk_find get /Geocoding/UK/Find/v2.00/json6.ws Search UK locations by postcode, place name, street or town. Returns location IDs for use with Retrieve to get full coordinates. This method does not consume credit. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: UK Geocode Source: https://docs.loqate.com/api-reference/geocode/geocoding/uk-geocode uk_geocode get /Geocoding/UK/Geocode/v2.10/json6.ws Convert UK postcodes, place names, or addresses to OS easting/northing and WGS84 coordinates. Returns grid references with accuracy indicators. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: UK Retrieve Source: https://docs.loqate.com/api-reference/geocode/geocoding/uk-retrieve uk_retrieve get /Geocoding/UK/Retrieve/v2.00/json6.ws Get OS easting/northing and WGS84 coordinates from UK location IDs. Returns grid references for locations found with UK Find API. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: UK RetrieveNearestPlaces Source: https://docs.loqate.com/api-reference/geocode/geocoding/uk-retrievenearestplaces uk_retrievenearestplaces get /Geocoding/UK/RetrieveNearestPlaces/v1.20/json6.ws Find nearest UK places of interest within a radius from postcodes or coordinates. Returns locations with distances in metres and OS grid references. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding: UK ReverseGeocode Source: https://docs.loqate.com/api-reference/geocode/geocoding/uk-reversegeocode uk_reversegeocode get /Geocoding/UK/ReverseGeocode/v1.10/json6.ws Convert UK coordinates to nearest postcode. Accepts latitude/longitude or easting/northing input and returns distance with OS grid references. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # GovernmentData: Postzon RetrieveByCoordinates Source: https://docs.loqate.com/api-reference/geocode/governmentdata/postzon-retrievebycoordinates postzon_retrievebycoordinates get /GovernmentData/Postzon/RetrieveByCoordinates/v1.20/json6.ws Find nearest UK postcode and government data from coordinates. Returns ONS codes, NHS areas, constituencies, wards, and administrative boundaries. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # GovernmentData: Postzon RetrieveByPostcode Source: https://docs.loqate.com/api-reference/geocode/governmentdata/postzon-retrievebypostcode postzon_retrievebypostcode get /GovernmentData/Postzon/RetrieveByPostcode/v1.50/json6.ws Get comprehensive UK government data for any postcode. Returns coordinates, ONS codes, NHS areas, constituencies, wards, and council information. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # GovernmentData: Postzon RetrieveByPostcodeOrPlace Source: https://docs.loqate.com/api-reference/geocode/governmentdata/postzon-retrievebypostcodeorplace postzon_retrievebypostcodeorplace get /GovernmentData/Postzon/RetrieveByPostcodeOrPlace/v1.00/json6.ws Search UK government data by postcode or place name. Returns coordinates, ONS codes, NHS areas, constituencies, and local authority information. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # IP2Country Source: https://docs.loqate.com/api-reference/geocode/ip2country/ip2country extras_web_ip2country get /Extras/Web/Ip2Country/v1.10/json6.ws Identify which country an IP address belongs to. Returns ISO 2 and ISO 3 codes along with full country name. We don't support API connections using HTTP - all calls should use HTTPS. When no IP address is provided, the service will return the country of the IP address of the request, and will not consume credit. # StoreFinder: FindPlaceNames Source: https://docs.loqate.com/api-reference/geocode/store-finder/findplacenames findplacenames get /StoreFinder/Interactive/FindPlaceNames/v1.10/json6.ws Search towns, cities, and points of interest by name or postal code. Supports fuzzy and partial matching. This method does not consume credit. This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # StoreFinder: RetrieveCoordinates Source: https://docs.loqate.com/api-reference/geocode/store-finder/retrievecoordinates retrievecoordinates get /StoreFinder/Interactive/RetrieveCoordinates/v1.10/json6.ws Get coordinates for places found with FindPlaceNames. Returns WGS84 latitude/longitude and OS easting/northing for UK location IDs. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # APIs overview Source: https://docs.loqate.com/api-reference/introduction Introduction to Loqate API authentication, base URLs, and key setup. All services require HTTPS connections and valid API keys. Loqate services can be accessed securely over HTTPS - we do not support API connections that use HTTP or a TLS protocol below version 1.2. ## Base URL Each API has a base URL on which the required data endpoint can be appended, such as json3.ws or xmle.ws. For SOAP, use wsdlnew\.ws. Customers located in **China** should use services.postcodeanywhere.co.uk as part of the base URL, rather than api.addressy.com. ## Authentication APIs require authentication in the form of a key, which can be created by adding a service in your account. Each key has its own security settings (URL & IP restriction, usage limits), and as many keys as necessary can be set up with these restrictions. See the [Creating API Keys page](/loqate-basics/create-an-api-key/) for more information. A key must be passed to the API as a parameter in order for the request to authenticate, otherwise an error will be returned. ## Common errors Each API has specific errors that may be returned, as well as a common set of errors relating to either account or key settings. See the [Common errors page](/api-reference/common-errors) for details. # Individual Phone Validation Source: https://docs.loqate.com/api-reference/phone-validation/individual-validate phone_individual get /PhoneNumberValidation/Interactive/Validate/v2.20/json6.ws Validate mobile, landline, and VoIP numbers for 237 countries. Returns network operator, number type, and porting or roaming status. **This method will consume credit.** This endpoint also accepts POST requests with parameters supplied as application/x-www-form-urlencoded. # Geocoding Typeahead Source: https://docs.loqate.com/api-reference/store-finder/geocoding-typeahead geocoding_typeahead post /LocationServices/Geocoding/GlobalTypeAhead/v1.10/json6.ws Type-ahead suggestions for towns, cities, states, and postcodes across 17 countries. Returns coordinates when users select a location from results. The Global Geocoding API currently supports an initial set of 18 countries, with more scheduled for inclusion in the near future. See the 'List of available countries' section below for details of which territories are available. | ISO Code | Country Name | | :------- | :---------------- | | AU | Australia | | BE | Belgium | | CZ | Czech Republic | | DE | Germany | | ES | Spain | | FR | France | | GB | United Kingdom | | HU | Hungary | | IE | Ireland | | IT | Italy | | JP | Japan | | KR | Republic of Korea | | NL | Netherlands | | NZ | New Zealand | | PL | Poland | | PT | Portugal | | RO | Romania | | SL | Slovenia | | SK | Slovakia | | US | United States | Text searches using the "Input" field are always free. This method will consume credit per "addressID" search and co-ordinates returned. ### Use of geocodes/addresses Use of the output of the Global Geocoding API is temporary, and only for use as part of a Store Finder. It is not permitted to index or store results for other purposes, such as use in a checkout process. For further information please see the [Loqate Terms and Conditions](https://www.gbgplc.com/en/legal-and-regulatory/products/loqate-storefinder/legal-notices-loqate-storefinder/). # Global Distance Finder Source: https://docs.loqate.com/api-reference/store-finder/global-distance-finder global_distance_finder post /LocationServices/DistanceFinder/Nearby/v1.10/json6.ws Find road-based distances and travel times between locations. Returns up to 100 nearest points within 500km radius. Please note that there are no limits to how many points you can send us, however your results returned will be limited to the nearest 100 points within a maximum of a 500km radius. In general there is a linear correlation between number of points/distance and response times. Due to this we recommend limiting to the fewest points possible for your application. Travel times are calculated using historical traffic data. This API supports most international locations. Distance calculation is supported between countries (e.g. France to Germany) provided that those countries are within the same region (e.g. Europe, Africa, Asia). **This method will consume credit. It is charged per request regardless of the number of destinations.** # Global Geocoding Source: https://docs.loqate.com/api-reference/store-finder/global-geocoding global_geocoding post /LocationServices/Geocoding/Global/v1.10/json6.ws Convert addresses to coordinates or reverse geocode coordinates to addresses. Supports most international locations for Store Finder implementations. When reverse geocoding, multiple addresses will be returned if possible (with a maximum of 5). This is because, particularly in urban areas, it can be difficult to identify the specific property associated with a set of co-ordinates. **A note on multiple inputs** Please note that whilst the API can accept an input of multiple addresses/co-ordinates, response times will be quicker if only one is sent at a time. For the UK, only the first address/co-ordinate in the string will be parsed (i.e. only one geocoding/reverse geocoding result will be provided). If sending multiple addresses/co-ordinates, limiting these to one country will also improve performance. The Global Geocoding API supports most international locations. For a full list of coverage please see [data coverage documentation](/data-coverage/introduction/). **This method will consume credit. You will be charged per address geocoded.** ### Use of geocodes/addresses Use of the output of the Global Geocoding API is temporary, and only for use as part of a Store Finder. It is not permitted to index or store results for other purposes, such as use in a checkout process. For further information please see the [Loqate Terms and Conditions](https://www.gbgplc.com/en/legal-and-regulatory/products/loqate-storefinder/legal-notices-loqate-storefinder/). # Location Management: Create List Source: https://docs.loqate.com/api-reference/store-finder/location-management-create-list create_list post /LocationServices/LocationManagement/CreateList/v1.10/json6.ws Create location lists with coordinates, addresses, and opening hours. Optional geocoding converts addresses to coordinates for up to 500 locations. This endpoint requires the use of a Loqate **Management** key. Management keys are used to provide access to server-side functions in place of your standard API key, ensuring that were any of your keys to be scraped from a customer facing website, they could not be used to edit or delete your Location Lists. For information on how to create a Management key please see the [Setting Up Store Finder Keys](/our-services/store-finder/setting-up-store-finder-keys) guide. The Create List API allows you to create a list of locations, including their co-ordinates and their IDs. It can also store additional information such as a description of each location, opening times, and address, to provide more context. This API also supports the use of a “metaInfo” object which can be used to store any other relevant information such as contact details, accessibility information etc. When uploading a list, co-ordinates for each location are mandatory. If you do not have the co-ordinates of a location but have the address instead, we can geocode those for you. If the geocoding option is selected we will geocode every address in your request, any existing geocodes you send us will be overwritten. When Geocoding a list, if a geocode cannot be found for one of your locations then the request will fail. You will not be charged, and we will outline which address(es) had caused the issue. **Please note that each address geocoded is chargeable based on your [standard geocoding cost](https://www.loqate.com/en-gb/pricing/).** Geocoding supports most international locations. For a full list of coverage please see [data coverage documentation](/data-coverage/introduction/). # Location Management: Delete List or Point Source: https://docs.loqate.com/api-reference/store-finder/location-management-delete-list-or-point delete_list_or_point post /LocationServices/LocationManagement/DeleteListOrPoint/v1.10/json6.ws Permanently delete location lists or individual points using management keys. Deletions cannot be recovered once completed. This endpoint requires the use of a Loqate **Management** key. Management keys are used to provide access to server-side functions in place of your standard API key, ensuring that were any of your keys to be scraped from a customer facing website, they could not be used to edit or delete your Location Lists. For information on how to create a Management key please see the [Setting Up Store Finder Keys](/our-services/store-finder/setting-up-store-finder-keys) guide. The Delete List or Point API allows you to delete an existing list created using our [Create List endpoint](/api-reference/store-finder/location-management-create-list). **NOTE: any lists deleted via this endpoint are deleted permanently. We do not back up location lists.** # Location Management: Get List Source: https://docs.loqate.com/api-reference/store-finder/location-management-get-list get_list post /LocationServices/LocationManagement/GetLists/v1.10/json6.ws View existing location lists with complete details for all points including coordinates, addresses, and metadata. The Get List API allows you to view an existing list created using our [Create List](/api-reference/store-finder/location-management-create-list) endpoint. # Location Management: Update List or Point Source: https://docs.loqate.com/api-reference/store-finder/location-management-update-list-or-point update_list_or_point post /LocationServices/LocationManagement/UpdateListOrPoint/v1.10/json6.ws Update location lists or individual points with new information. Add up to 100 new points per request while preserving existing location data. This endpoint requires the use of a Loqate **Management key**. Management keys are used to provide access to server-side functions in place of your standard API key, ensuring that were any of your keys to be scraped from a customer facing website, they could not be used to edit or delete your Location Lists. For information on how to create a Management key please see the [Setting Up Store Finder Keys](/our-services/store-finder/setting-up-store-finder-keys) guide. The Update List or Point API allows you to update an existing list created using our [Create List](/api-reference/store-finder/location-management-create-list) endpoint. When updating a list or point, any fields left null will retain their original information. To add new points to a list, only supply the new values - the existing points will be unaffected. You can add a maximum of 100 points to an existing list per request. # Map Tile API Source: https://docs.loqate.com/api-reference/store-finder/mapping mapping_get_url post /LocationServices/Mapping/GetUrl/v1.00/json6.ws Generate signed URLs for map tiles and basemap data. Use with MapLibre or Leaflet to render interactive maps showing customer locations and stores. Please note that we are unable to serve map data for China. The Map Tile API takes an input of your Loqate key and returns a Signed URL, which is valid for one hour and can be used to provide secure access our tile server. Whilst the Signed URL is active you can make as many requests using that URL as needed. Our tile server provides access to basemap data, tiles and styling for a map. This can then be used with a map rendering library, such as [MapLibre](https://github.com/maplibre/maplibre-gl-js) or [Leaflet](https://leafletjs.com/examples/quick-start/), to add an interactive map to your application. Other functionality required for your map, such as pins for locations, can then be added afterwards via the map renderer. ### Mapping Concepts There are several key concepts that are important to understand when implementing a map using this API: * **Signed URL:** a secure URL generated for a specific session within a limited time period, with limited permissions. This contains authentication information within the query, thus reducing the time required to authenticate and reducing overall response times. You will receive two signed URLs, one for vector based tiles and another for raster based tiles * **Basemap data:** basemaps form the foundation for your map, providing geographic context stored as tile layers. These layers include the context required to display useful information such as the names of streets, buildings and land categorisation * **Vector tiles:** a format of tile that stores map data using vector shapes. As these are composed dynamically, they can be easily styled and smoothly zoom in and out as a user is navigating. These are generally faster to load than Raster tiles, but can be more demanding on the end user's hardware * **Raster tiles:** a format of tile that stores map data using grids of pixels, commonly as images. These tiles can be slower to load than vector tiles, but are generally less demanding on the end user's hardware * **Map Style:** a Map style is a JSON document that defines how the map will appear when rendered * **Map renderer:** library required to render a map within an application. Once you have defined your data source as the signed URL you receive from this API, the map rendering library will pull data from Loqate at run time, rendering the map data for you. Commonly used open source libraries for this include MapLibre, Leaflet and Amplify ### Application flow using a map renderer Signed URLs can be used to request individual map tiles if required, however for more complex applications you're likely to use a map renderer. The following diagram represents how an application could be designed to work with our API and a map renderer: Application Flow Here are the steps this flow takes: 1. Make a request to [https://api.addressy.com/LocationServices/Mapping/GetUrl/v1.00/json4.ws?key=\{\{license\_key}}](https://api.addressy.com/LocationServices/Mapping/GetUrl/v1.00/json4.ws?key=\{\{license_key}}) (adding in your own API key) 2. Receive multiple Signed URLs in the response (one for Raster tiles and one for Vector tiles) 3. Choose whether you want to use Raster tiles or Vector tiles, and pass the appropriate Signed URL to the map renderer 4. The map renderer will request basemap data from Loqate as needed (for instance this could be when a user scrolls on your map and the renderer interprets which tiles will be needed next) 5. Loqate will return the appropriate map data 6. The map renderer will then use this data to render the map on the screen of your browser **This method will consume credit each time a signed URL is generated.** You must ensure attribution is visible when rendering a map as part of your application. Loqate uses map styling from [OpenMapTiles](https://osmfoundation.org/wiki/Licence/Attribution_Guidelines) and open data from [OpenStreetMaps](https://www.openstreetmap.org/copyright). Attribution is provided by default as part of the map style configuration, however if you choose to create your own map styling you must still ensure that this attribution is visible. For further information on copyright notices please see the [Loqate Terms and Conditions](https://www.gbgplc.com/en/legal-and-regulatory/products/loqate-storefinder/legal-notices-loqate-storefinder/). # Country Process Source: https://docs.loqate.com/available-processes/country-process The Country process is designed to attempt to identify a country from supplied input data. It performs the following processes: 1. Check the `ForceCountry` option. If set, use this. 2. Check each of the fields specified in the `CountryFields` option. If a valid country is found, use this. 3. Check the `DefaultCountry` option. If set, use this as a candidate. 4. Check the address fields for potential candidates and duplicates identified through the previous processes. ## Relevant Options * ForceCountry * CountryFields * DefaultCountry [Click here](/available-processes/introduction/) for the full list of supported options and their descriptions. # Format Process Source: https://docs.loqate.com/available-processes/format-process The Format process is designed to output fields using the specified casing and output script. ## Relevant Options * UseSymbolicTransliteration * OutputCasing * OutputScript [Click here](/available-processes/introduction/) for the full list of supported options and their descriptions. [Click here](/support/character-scripts/) for a list of supported character sets. # Geocode Process Source: https://docs.loqate.com/available-processes/geocode-process The Geocode process adds latitude, longitude, and GeoAccuracy where possible, and is generally used with either [Verify](/available-processes/verify-process/) or [Search](/available-processes/search-process/). ## Relevant Options * GeocodeCountryList # GKRInfo Tool Source: https://docs.loqate.com/available-processes/gkrinfo-process Each GKR file has a set of parameters and corresponding values. The GKRInfo process is designed to provide information about the GKR files' parameters. The GKR files are read from the data folder provided. ## API Usage The following code walks through API usage. ### Initialize the server ```java theme={null} lqtServer srv = lqtServer.create(); srv.init("C:\\loqate\\data"); lqtProcessList lst = lqtProcessList.create(); lqtProcessOptions opts = lqtProcessOptions.create(); ``` ### Set the tool ```java theme={null} lst.add("GKRInfo", opts); ``` ### Execute the process ```java theme={null} lqtInputRecord rec = lqtInputRecord.create(); lqtProcessResult res = lqtProcessResult.create(); srv.process(rec, lst, res); ``` ### Dump the output from the GKRInfo ```java theme={null} FileWriter outputFile = new FileWriter("C:\\output.txt"); PrintWriter out = new PrintWriter(outputFile); for (int record = 0; record < res.getCount(); record++) { out.print( "\n"); for (long field=0; field < res.getFieldCount(record); field++) { out.print( res.getFieldName(record, field) + ": " +"\t"); out.print( res.getField(record, field) + "\n"); } } ``` ## Output Information The GKRInfo tool enumerates data files in the data folder and collects all GKR parameters and their values. Each data file's information is stored in a separate Record inside the ProcessResult structure. ### Common Parameters | Parameter | Description | | ---------------------------- | ---------------------------------------------------------------------------------------------------- | | `Name` | Name of the data file | | `DataVersion` | Release version | | `GKRVersion` | Version number of data format | | `Reference.FieldCount` | The fields that have available data in the Reference data file for the specific country | | `Reference.ContentType.()` | The actual fields | | `Reference.FieldBlank.()` | Count of records where the particular field is blank (output for each relevant field) | | `Reference.FieldDistinct.()` | Count of records where the particular field is unique and not blank (output for each relevant field) | Most other parameters vary by file and provide miscellaneous information about the respective files. ### Example Output The following example shows parameters and values for `context.lfs`: ``` Name context.lfs CompressionType 0 Context.MaxNodeSize 256 Context.NodeLookupPos 2036 Context.RecordLookupPos 167805 File.Build.Context 1357346307 File.Version.Context 1 DataVersion 2013Q1.0 GKRVersion 1 ``` # Available Processes Source: https://docs.loqate.com/available-processes/introduction Loqate provides multiple address processing functions. Choose the process that fits your use case. ## Core Processes Break addresses into individual components Compare and match addresses against reference data Format addresses to local postal standards Validate and correct addresses Convert addresses to latitude/longitude coordinates Convert coordinates to addresses ## Utility Processes Retrieve country-specific information Query geographic knowledge repository data Generate processing reports ## Regional Certification Processes USPS CASS-certified address validation Canada Post SERP-certified processing Australia Post AMAS-certified validation ## Deprecated Processes Legacy search functionality - use alternative processes for new implementations # Match Process Source: https://docs.loqate.com/available-processes/match-process The Match process is designed to find the most closely matching record or records from the relevant reference data source to the supplied componentized input data. ## Relevant Options * SuppressAdditionFields * MaxResults * RangeDecompose * VerifyMatchRules ([click here](/support/match-rules-syntax/) for syntax information) [Click here](/available-processes/introduction/) for the full list of supported options and their descriptions. # Parse Process Source: https://docs.loqate.com/available-processes/parse-process The Parse process is designed to transform fully or partially unstructured address data into correctly componentized information. ## Relevant Options * ToolInfo * ConfidenceThreshold * SuppressFields [Click here](/available-processes/introduction/) for the full list of supported options and their descriptions. # Query Process Source: https://docs.loqate.com/available-processes/query-process ## Overview The Query process is designed to perform SQL-like custom queries on the Loqate GKR. It enables searching and retrieving multiple results of specific address components that meet user-definable conditions. The query-conditions are expressed in our proprietary query-language, an example using our Verify SaaS service and the syntax and semantics are described below. ```json theme={null} { "Key": "{{LoqateKey}}", "Options": { "Process": "Query", "ServerOptions": { "Table": "rd_US_vfy", "QueryString": "(PostalCodePrimary LIKE \"60010%*\")", "OutputFields": "Locality", "QueryClause": "Distinct", "AliasPreference": "First", "RangefieldPreference": "Match", "MaxResults": 655 } } } ``` Query is a debug tool to be used to support submission of support cases, and please note this tool is in maintenance mode with no planned future developments or bug fixes. ## Query Syntax and Semantics A query has the following syntax: ``` ...(<(>QUERY-EXPRESSION <)> ... ``` The terminology used in the query syntax is described below. Parenthesis may be used optionally to nest and string simple queries into compound queries: | Term | Syntax/Values | Description | | ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------- | | PREFIX TAG | `~` | Means phonetic similarity (optional) | | SUFFIX TAG | `%`, `*` | `%` means auto-complete word, `*` means auto-complete phrase | | QUERY-KEYWORD | `word` | Tags apply at word level to qualify search criteria | | CONDITION-OPERATORS | `LIKE`, `CONTAINS` | `LIKE` = Ordered-matching, `CONTAINS` = Unordered-matching | | QUERY-EXPRESSION | `FieldName CONDITION-OPERATOR "QUERY-KEYWORD(s)"` | Complete query expression | | LOGICAL-OPERATORS | Two pipes, `&&` | Two pipes = logical OR, `&&` = logical AND, used to form compound queries | ## Example Queries | Query | Matches | Does Not Match | | --------------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------- | | `Thoroughfare LIKE "Bayhill Dr"` | `Bayhill Dr` | `Dr Bayhill`, `Bayhill Drive` | | `Thoroughfare CONTAINS "Bayhill Dr"` | `Bayhill Dr`, `Dr Bayhill` | `Bayhill Drive` | | `Thoroughfare LIKE "~Payhill Dr"` | `Bayhill Dr` | `Bayhill Tr` | | `Thoroughfare CONTAINS "Bay% Dr"` | `Dr Bayhill`, `Bayhill Dr`, `Bay Dr` | `Bay Drive`, `TromBay Dr` | | `Thoroughfare LIKE "Bay Dr%"` | `Bay Dr`, `Bay Drive` | `Bayhill Dr`, `Bay Drive Ct` | | `Thoroughfare LIKE "Bay Dr%*"` | `Bay Dr`, `Bay Dr Ct`, `Bay Drive`, `Bay Drive Ct` | | | `(Thoroughfare CONTAINS "Bay%") && (Locality LIKE "San Bruno")` | `Bayhill Drive San Bruno`, `Bay Dr San Bruno`, `Bayhill Dr San Bruno` | | ## Process Options The query tool uses the following process options: | Option | Required | Description | | ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Table` | Required | Reference (GKR) table to be queried | | `QueryString` | Required | String expressing the query in the query language | | `OutputFields` | Optional | Comma separated output field-names desired. Field-names are case sensitive. Reserved keyword `ALL` (or null) returns all field in output. | | `MaxResults` | Optional | Max number of output records desired. Defaults to `10`, valid values are 1-1000. | | `QueryClause` | Optional | `DISTINCT`/`UNIQUE`/null specifies output address component-set to be distinct, unique, or unconstrained across the output record results, respectively. | | `AliasPreference` | Optional | Specify to return, for non-rangefields: `FIRST` - the first alias in fields desired in the output; `EXHAUSTIVE` - all combinations of every alias; `UNPROCESSED` (null) - field-value entry as stored in the GKR | | `RangefieldPreference` | Optional | Specify to return, for rangefields: `MATCH` - the queried value verified in the range; `RANGE` - the range containing the queried value after verification; `FULL` - every value in the range containing the queried value; `RAW` (null) - the range-field containing the queried value as stored in the table | ## Output The results of the query are returned in the `ProcessResult` object. # Report Process Source: https://docs.loqate.com/available-processes/report-process The Report process generates reports during batch processing. ## Supported Reports * Data Quality Report (DQR) * CASS Report * PS3553 Report * SERP Report ## Usage The Report Process is invoked from lqtBatch using the following command-line options: | Option | Description | | ------ | ------------------------------------------------------------------ | | `-r` | List of reports to generate (delimited by pipe character) | | `-ri` | Report info file passed to the report generator (optional) | | `-ro` | Report output file name (optional - uses default if not specified) | ## Report Types | Supported Report | Definition | | ---------------- | -------------------------------------------------------------------------------------------------------------------------- | | **DQR** | Data Quality Report | | **CASS** | CASS Stage File Report | | **PS3553** | CASS summary report that may be submitted to USPS together with the mailing list that was processed using the CASS Process | | **SERP** | SERP address accuracy report | ## Example ```bash theme={null} lqtBatch.exe -p v -r DQR -i c:\test\input.txt -d c:\test\data -ro myreport.txt ``` # Reverse Geocode Process Source: https://docs.loqate.com/available-processes/reverse-geocode-process This process will provide address or location suggestions based on a proximity search of an input country, and digital latitude/longitude. ## API Usage Set the process: ``` lst.add("ReverseGeocode", opts); ``` Define required parameters (example given): ``` rec.set("Country", "BEL"); rec.set("Latitude", "50.848510"); rec.set("Longitude", "4.387950"); ``` ## Relevant Options * MaxResults (when not set, the default value is 1) # Product Update June 2022 Source: https://docs.loqate.com/available-processes/search-process The Search function in Verify is now deprecated and in Maintenance Mode – no fixes will be made to any issues discovered. This means that no further development or fixes to the functionality will be undertaken by Loqate. The existing functionality will remain but strategically Loqate Capture+ is the API to use to search for addresses. You can find details on Address Capture [here](https://www.loqate.com/en-gb/address-verification/address-capture/) and to get started use [Address Capture Quick Setup Guide](/our-services/address-capture/address-capture-quick-start). ## Search Process The Search process is designed for interactive environments where full or partial address data is provided as input and a list of closely matching results is returned as output. ## Relevant Options * `MaxResults` * `ConfidenceThreshold` * `MinimumSimilarity` * `SuppressFields` * `SuppressAdditionFields` * `OutputCasing` * `OutputScript` * `OutputSortType` ## Algorithm Options **`SearchAutocompleteIndexCheck`:** (`Yes`, `No`, default `Yes`). Specifies whether or not to use the 'autocomplete index' algorithm (useful for guaranteed response times of queries like '4916 est' in the USA). Related to this is the `AutocompleteIndexOnly` option (`Yes`, `No`, default `No`) which if set to `Yes` stops the use of any other search algorithms so gives a guaranteed response time in all situations. **`SearchLikeFieldCheck`:** (`Yes`, `No`, default `Yes`). Specifies whether or not to use the 'like field' algorithm (looks for an exact field match in the address field, useful for single items like postcodes, building names, organization names, etc) **`SimpleParse`:** (`Yes`, `No`, default `Yes`). Specifies whether or not to use the 'simple parse' algorithm (looks for something like premise + street in the address field, but is not particularly tolerant of invalid input data) **`CombinedSearchMethods`:** (`Yes`, `No`, default `Yes`). Specifies whether or not to use a word-based search algorithm (similar to a web search engine approach). # Verify Process Source: https://docs.loqate.com/available-processes/verify-process The Verify process is designed for batch environments, where the desire is to enter address information in address lines, address components or a combination of both and return the cleansed address data. Internally, the Verify process is implemented by running the Country, Parse, Match, and Format processes. ## Relevant Options * VerifyCountryList * MinimumVerificationLevel * MinimumMatchscore * MinimumPostcode * MaxResults * ConfidenceThreshold * SuppressFields * SuppressAdditionFields [Click here](/available-processes/introduction/) for the full list of supported options and their descriptions. Other options are relevant to the underlying Country, Parse, Match, and Format processes. # Country Data Coverage Source: https://docs.loqate.com/data-coverage/introduction You can also view the full Loqate international address line orders on the [Loqate International Address Formats](/data-coverage/loqate-international-address-formats/) page. Please visit the main Loqate site for product and coverage information about our [phone verification](https://www.loqate.com/en-us/phone-verification/) and [email verification](https://www.loqate.com/en-us/email-verification/) services. The countries listed below are supported by the Loqate Verify engine. The verification and geocoding levels represent the highest component that is supported. These translate to the following: * **L5:** Delivery point (sub-building, such as suite, floor, apartment, etc) \[verify only] * **L4:** Premise (building name, house number) \[indicates building level for geocoding] * **L3:** Street (thoroughfare) * **L2:** Locality (city, town) * **L1:** Administrative Area (such as a county or state) The +/- provides a more granular indication of how good the data is at the stated level. This is only relevant for the verification level. Some details on Loqate’s continuous improvement process (PDH) can be found [here](/getting-started/country-improvement-program/). All country datasets listed below are shipped with both the installed and cloud Verify/Geocode product. | Country/territory name | Region | ISO2 | ISO3 | Verification Lvl | Geocode Lvl | PDH Process applied | | ------------------------------------------------ | --------------------------- | ---- | ---- | ---------------- | ----------- | ---------------------- | | **Afghanistan** | Asia | AF | AFG | L2 | L2 | Yes | | **Albania** | Eastern Europe | AL | ALB | L4- | L4 | | | **Algeria** | Middle East & Africa | DZ | DZA | L3 | L3 | | | **American Samoa** | North America | AS | ASM | L2 | L3 | | | **Andorra** | Western Europe | AD | AND | L4 | L4 | Yes | | **Angola** | Middle East & Africa | AO | AGO | L4- | L4 | Yes | | **Anguilla** | Central America & Caribbean | AI | AIA | L2 | L2 | Yes | | **Antarctica** | Pacific & Arctic | AQ | ATA | L2 | L2 | Yes | | **Antigua and Barbuda** | Central America & Caribbean | AG | ATG | L3 | L3 | Yes | | **Argentina** | South America | AR | ARG | L4- | L4 | Yes | | **Armenia** | Eastern Europe | AM | ARM | L4- | L4 | Yes | | **Aruba** | Central America & Caribbean | AW | ABW | L4- | L4 | | | **Australia** | Pacific & Arctic | AU | AUS | L5+ | L4 | Yes | | **Austria** | Western Europe | AT | AUT | L4 | L4 | Yes | | **Azerbaijan** | Eastern Europe | AZ | AZE | L4 | L4 | Yes | | **Bahamas** | Central America & Caribbean | BS | BHS | L4 | L4 | Yes | | **Bahrain** | Middle East & Africa | BH | BHR | L4+ | L4 | | | **Bangladesh** | Asia | BD | BGD | L3+ | L3 | Yes | | **Barbados** | Central America & Caribbean | BB | BRB | L4- | L4 | Yes | | **Belarus** | Eastern Europe | BY | BLR | L4 | L4 | Yes | | **Belgium** | Western Europe | BE | BEL | L5+ | L4 | Yes | | **Belize** | Central America & Caribbean | BZ | BLZ | L4- | L4 | Yes | | **Benin** | Middle East & Africa | BJ | BEN | L3 | L3 | Yes | | **Bermuda** | Central America & Caribbean | BM | BMU | L4- | L4 | Yes | | **Bhutan** | Asia | BT | BTN | L2 | L2 | Yes | | **Bolivia, Plurinational State of** | South America | BO | BOL | L4- | L4 | Yes | | **Bonaire, Sint Eustatius and Saba** | Central America & Caribbean | BQ | BES | L3- | L3 | Yes | | **Bosnia and Herzegovina** | Eastern Europe | BA | BIH | L4- | L4 | Yes | | **Botswana** | Middle East & Africa | BW | BWA | L4- | L4 | | | **Bouvet Island** | Pacific & Arctic | BV | BVT | L2 | L2 | Yes | | **Brazil** | South America | BR | BRA | L5 | L4 | Yes | | **British Indian Ocean Territory** | Asia | IO | IOT | L2 | L2 | Yes | | **Brunei Darussalam** | Asia | BN | BRN | L4 | L4 | | | **Bulgaria** | Eastern Europe | BG | BGR | L4 | L4 | Yes | | **Burkina Faso** | Middle East & Africa | BF | BFA | L4- | L4 | Yes | | **Burundi** | Middle East & Africa | BI | BDI | L3- | L3 | Yes | | **Cambodia** | Asia | KH | KHM | L4- | L4 | Yes | | **Cameroon** | Middle East & Africa | CM | CMR | L3 | L3 | | | **Canada** | North America | CA | CAN | L5+ | L4 | Yes | | **Cape Verde** | Central America & Caribbean | CV | CPV | L3 | L3 | | | **Cayman Islands** | Central America & Caribbean | KY | CYM | L4+ | L4 | | | **Central African Republic** | Middle East & Africa | CF | CAF | L3 | L3 | | | **Chad** | Middle East & Africa | TD | TCD | L2 | L2 | Yes | | **Chile** | South America | CL | CHL | L4 | L4 | Yes | | **China** | Asia | CN | CHN | L3+ | L2 | Premium Data Available | | **Christmas Island** | Pacific & Arctic | CX | CXR | L2 | L2 | | | **Cocos (Keeling) Islands** | Pacific & Arctic | CC | CCK | L5- | L2 | Yes | | **Colombia** | South America | CO | COL | L4 | L4 | Yes | | **Comoros** | Middle East & Africa | KM | COM | L3 | L3 | Yes | | **Congo** | Middle East & Africa | CG | COG | L3 | L3 | | | **Congo, the Democratic Republic of the** | Middle East & Africa | CD | COD | L3 | L3 | Yes | | **Cook Islands** | Pacific & Arctic | CK | COK | L3 | L3 | | | **Costa Rica** | Central America & Caribbean | CR | CRI | L4- | L4 | Yes | | **Croatia** | Eastern Europe | HR | HRV | L4 | L4 | Yes | | **Cuba** | Central America & Caribbean | CU | CUB | L3 | L3 | Yes | | **Curaçao** | Central America & Caribbean | CW | CUW | L2 | L2 | Yes | | **Cyprus** | Western Europe | CY | CYP | L4 | L4 | Yes | | **Czech Republic** | Eastern Europe | CZ | CZE | L4 | L4 | Yes | | **Côte d'Ivoire** | Middle East & Africa | CI | CIV | L3 | L3 | | | **Denmark** | Western Europe | DK | DNK | L5+ | L4 | Yes | | **Djibouti** | Middle East & Africa | DJ | DJI | L3+ | L3 | | | **Dominica** | Central America & Caribbean | DM | DMA | L3 | L3 | Yes | | **Dominican Republic** | Central America & Caribbean | DO | DOM | L4- | L4 | Yes | | **Ecuador** | South America | EC | ECU | L4- | L4 | Yes | | **Egypt** | Middle East & Africa | EG | EGY | L4- | L4 | Yes | | **El Salvador** | Central America & Caribbean | SV | SLV | L3 | L3 | Yes | | **Equatorial Guinea** | Middle East & Africa | GQ | GNQ | L2 | L2 | Yes | | **Eritrea** | Middle East & Africa | ER | ERI | L3- | L3 | | | **Estonia** | Eastern Europe | EE | EST | L4 | L4 | Yes | | **Eswatini** | Middle East & Africa | SZ | SWZ | L3+ | L3 | Yes | | **Ethiopia** | Middle East & Africa | ET | ETH | L3- | L3 | | | **Falkland Islands (Malvinas)** | South America | FK | FLK | L3 | L3 | | | **Faroe Islands** | Western Europe | FO | FRO | L4 | L4 | | | **Fiji** | Pacific & Arctic | FJ | FJI | L4- | L4 | Yes | | **Finland** | Western Europe | FI | FIN | L4+ | L4 | Yes | | **France** | Western Europe | FR | FRA | L4+ | L4 | Yes | | **French Guiana** | South America | GF | GUF | L4+ | L4 | | | **French Polynesia** | Pacific & Arctic | PF | PYF | L3 | L3 | Yes | | **French Southern Territories** | Pacific & Arctic | TF | ATF | L2 | L2 | Yes | | **Gabon** | Middle East & Africa | GA | GAB | L2 | L2 | Yes | | **Gambia** | Middle East & Africa | GM | GMB | L3 | L3 | Yes | | **Georgia** | Eastern Europe | GE | GEO | L4 | L4 | Yes | | **Germany** | Western Europe | DE | DEU | L4+ | L4 | Yes | | **Ghana** | Middle East & Africa | GH | GHA | L3 | L3 | | | **Gibraltar** | Western Europe | GI | GIB | L4 | L4 | | | **Greece** | Western Europe | GR | GRC | L4 | L4 | Yes | | **Greenland** | Western Europe | GL | GRL | L4- | L4 | Yes | | **Grenada** | Central America & Caribbean | GD | GRD | L2 | L2 | Yes | | **Guadeloupe** | Central America & Caribbean | GP | GLP | L4+ | L4 | Yes | | **Guam** | North America | GU | GUM | L5+ | L4 | Yes | | **Guatemala** | Central America & Caribbean | GT | GTM | L4+ | L4 | | | **Guernsey** | Western Europe | GG | GGY | L5 | L4 | Yes | | **Guinea** | Middle East & Africa | GN | GIN | L3- | L3 | | | **Guinea-Bissau** | Middle East & Africa | GW | GNB | L2 | L2 | Yes | | **Guyana** | South America | GY | GUY | L3 | L3 | Yes | | **Haiti** | Central America & Caribbean | HT | HTI | L3- | L3 | Yes | | **Heard Island and McDonald Islands** | Pacific & Arctic | HM | HMD | L2 | L2 | Yes | | **Holy See (Vatican City State)** | Western Europe | VA | VAT | L4- | L4- | Yes | | **Honduras** | Central America & Caribbean | HN | HND | L3 | L3 | Yes | | **Hong Kong** | Asia | HK | HKG | L5 | L4 | Yes | | **Hungary** | Eastern Europe | HU | HUN | L4+ | L4 | Yes | | **Iceland** | Western Europe | IS | ISL | L4 | L4 | Yes | | **India** | Asia | IN | IND | L4 | L4 | Yes | | **Indonesia** | Asia | ID | IDN | L4 | L4 | Yes | | **Iran, Islamic Republic of** | Middle East & Africa | IR | IRN | L2 | L2 | Yes | | **Iraq** | Middle East & Africa | IQ | IRQ | L3- | L3 | Yes | | **Ireland** | Western Europe | IE | IRL | L5 | L4 | Yes | | **Isle of Man** | Western Europe | IM | IMN | L5 | L4 | Yes | | **Israel** | Middle East & Africa | IL | ISR | L4 | L4 | Yes | | **Italy** | Western Europe | IT | ITA | L4+ | L4 | Yes | | **Jamaica** | Central America & Caribbean | JM | JAM | L3+ | L3 | Yes | | **Japan** | Asia | JP | JPN | L4+ | L4 | Yes | | **Jersey** | Western Europe | JE | JEY | L5 | L4 | Yes | | **Jordan** | Middle East & Africa | JO | JOR | L4- | L4 | Yes | | **Kazakhstan** | Eastern Europe | KZ | KAZ | L4 | L4 | Yes | | **Kenya** | Middle East & Africa | KE | KEN | L3 | L3 | Yes | | **Kiribati** | Pacific & Arctic | KI | KIR | L2 | L2 | Yes | | **Korea, Democratic People's Republic of** | Asia | KP | PRK | L2 | L2 | Yes | | **Korea, Republic of** | Asia | KR | KOR | L5+ | L4 | Yes | | **Kosovo** | Eastern Europe | XK | XKK | L4+ | L4 | Yes | | **Kuwait** | Middle East & Africa | KW | KWT | L4+ | L4 | | | **Kyrgyzstan** | Eastern Europe | KG | KGZ | L4- | L4 | Yes | | **Lao People's Democratic Republic** | Asia | LA | LAO | L2 | L2 | Yes | | **Latvia** | Eastern Europe | LV | LVA | L4 | L4 | Yes | | **Lebanon** | Middle East & Africa | LB | LBN | L4- | L4 | | | **Lesotho** | Middle East & Africa | LS | LSO | L4- | L4 | | | **Liberia** | Middle East & Africa | LR | LBR | L3 | L3 | | | **Libya** | Middle East & Africa | LY | LBY | L3 | L3 | | | **Liechtenstein** | Western Europe | LI | LIE | L4+ | L4 | Yes | | **Lithuania** | Eastern Europe | LT | LTU | L4 | L4 | Yes | | **Luxembourg** | Western Europe | LU | LUX | L4 | L4 | Yes | | **Macao** | Asia | MO | MAC | L4- | L4 | Yes | | **North Macedonia** | Eastern Europe | MK | MKD | L4 | L4 | Yes | | **Madagascar** | Middle East & Africa | MG | MDG | L3- | L3 | | | **Malawi** | Middle East & Africa | MW | MWI | L3+ | L3 | | | **Malaysia** | Asia | MY | MYS | L5 | L4 | Yes | | **Maldives** | Middle East & Africa | MV | MDV | L3- | L3 | | | **Mali** | Middle East & Africa | ML | MLI | L3 | L3 | Yes | | **Malta** | Western Europe | MT | MLT | L4- | L4 | Yes | | **Marshall Islands** | North America | MH | MHL | L4- | L3 | Yes | | **Martinique** | Central America & Caribbean | MQ | MTQ | L4+ | L4 | Yes | | **Mauritania** | Middle East & Africa | MR | MRT | L3 | L3 | | | **Mauritius** | Middle East & Africa | MU | MUS | L3+ | L3 | | | **Mayotte** | Middle East & Africa | YT | MYT | L4 | L4 | | | **Mexico** | Central America & Caribbean | MX | MEX | L4+ | L4 | Yes | | **Micronesia, Federated States of** | North America | FM | FSM | L2 | L2 | Yes | | **Moldova, Republic of** | Eastern Europe | MD | MDA | L4 | L4 | Yes | | **Monaco** | Western Europe | MC | MCO | L4 | L4 | | | **Mongolia** | Asia | MN | MNG | L3- | L3 | Yes | | **Montenegro** | Eastern Europe | ME | MNE | L4- | L4 | | | **Montserrat** | Central America & Caribbean | MS | MSR | L2 | L2 | Yes | | **Morocco** | Middle East & Africa | MA | MAR | L4- | L4 | | | **Mozambique** | Middle East & Africa | MZ | MOZ | L3 | L3 | Yes | | **Myanmar** | Asia | MM | MMR | L4- | L4 | Yes | | **Namibia** | Middle East & Africa | NA | NAM | L4- | L4 | | | **Nauru** | Asia | NR | NRU | L2 | L2 | Yes | | **Nepal** | Asia | NP | NPL | L3+ | L3 | | | **Netherlands** | Western Europe | NL | NLD | L5 | L4 | Yes | | **New Caledonia** | Pacific & Arctic | NC | NCL | L4 | L4 | Yes | | **New Zealand** | Pacific & Arctic | NZ | NZL | L5+ | L4 | Yes | | **Nicaragua** | Central America & Caribbean | NI | NIC | L3- | L3 | Yes | | **Niger** | Middle East & Africa | NE | NER | L3 | L3 | | | **Nigeria** | Middle East & Africa | NG | NGA | L4- | L4 | | | **Niue** | Pacific & Arctic | NU | NIU | L3 | L3 | Yes | | **Norfolk Island** | Pacific & Arctic | NF | NFK | L4+ | L4 | | | **Northern Mariana Islands** | North America | MP | MNP | L4- | L4 | Yes | | **Norway** | Western Europe | NO | NOR | L5+ | L4 | Yes | | **Oman** | Middle East & Africa | OM | OMN | L4- | L4 | Yes | | **Pakistan** | Asia | PK | PAK | L2 | L2 | Yes | | **Palau** | North America | PW | PLW | L2 | L2 | Yes | | **Palestine, State of** | Middle East & Africa | PS | PSE | L2 | L2 | Yes | | **Panama** | Central America & Caribbean | PA | PAN | L4- | L4 | Yes | | **Papua New Guinea** | Pacific & Arctic | PG | PNG | L3- | L3 | Yes | | **Paraguay** | South America | PY | PRY | L4- | L4 | | | **Peru** | South America | PE | PER | L4- | L4 | Yes | | **Philippines** | Asia | PH | PHL | L4- | L4 | Yes | | **Pitcairn** | Pacific & Arctic | PN | PCN | L2 | L2 | Yes | | **Poland** | Eastern Europe | PL | POL | L5+ | L4 | Yes | | **Portugal** | Western Europe | PT | PRT | L4 | L4 | Yes | | **Puerto Rico** | North America | PR | PRI | L5+ | L4 | Yes | | **Qatar** | Middle East & Africa | QA | QAT | L4 | L4 | Yes | | **Republic of South Sudan** | Middle East & Africa | SS | SSD | L3- | L2 | Yes | | **Romania** | Eastern Europe | RO | ROU | L4 | L4 | Yes | | **Russian Federation** | Eastern Europe | RU | RUS | L4 | L4 | Yes | | **Rwanda** | Middle East & Africa | RW | RWA | L3 | L3 | Yes | | **Réunion** | Middle East & Africa | RE | REU | L4+ | L4 | Yes | | **Saint Barthélemy** | Central America & Caribbean | BL | BLM | L4+ | L4 | Yes | | **Saint Helena, Ascension and Tristan da Cunha** | Pacific & Arctic | SH | SHN | L3+ | L3 | | | **Saint Kitts and Nevis** | Central America & Caribbean | KN | KNA | L3 | L3 | Yes | | **Saint Lucia** | Central America & Caribbean | LC | LCA | L3 | L3 | Yes | | **Saint Martin (French Part)** | Central America & Caribbean | MF | MAF | L4+ | L4 | | | **Saint Pierre and Miquelon** | North America | PM | SPM | L4+ | L4 | Yes | | **Saint Vincent and the Grenadines** | Central America & Caribbean | VC | VCT | L3 | L3 | Yes | | **Samoa** | Pacific & Arctic | WS | WSM | L3- | L3 | Yes | | **San Marino** | Western Europe | SM | SMR | L4+ | L4 | Yes | | **Sao Tome and Principe** | Middle East & Africa | ST | STP | L3 | L3 | Yes | | **Saudi Arabia** | Middle East & Africa | SA | SAU | L4+ | L4 | Yes | | **Senegal** | Middle East & Africa | SN | SEN | L3 | L3 | Yes | | **Serbia** | Eastern Europe | RS | SRB | L4 | L4 | | | **Seychelles** | Middle East & Africa | SC | SYC | L3+ | L3 | | | **Sierra Leone** | Middle East & Africa | SL | SLE | L3 | L3 | | | **Singapore** | Asia | SG | SGP | L4+ | L4 | Yes | | **Sint Maarten** | Central America & Caribbean | SX | SXM | L3+ | L3 | Yes | | **Slovakia** | Eastern Europe | SK | SVK | L4+ | L4 | Yes | | **Slovenia** | Eastern Europe | SI | SVN | L4 | L4 | Yes | | **Solomon Islands** | Pacific & Arctic | SB | SLB | L3 | L3 | Yes | | **Somalia** | Middle East & Africa | SO | SOM | L2 | L2 | Yes | | **South Africa** | Middle East & Africa | ZA | ZAF | L4 | L4 | Yes | | **South Georgia and the South Sandwich Islands** | South America | GS | SGS | L2 | L2 | Yes | | **Spain** | Western Europe | ES | ESP | L5+ | L4 | Yes | | **Sri Lanka** | Asia | LK | LKA | L3 | L3 | Yes | | **Sudan** | Middle East & Africa | SD | SDN | L2 | L2 | Yes | | **Suriname** | South America | SR | SUR | L4- | L4 | Yes | | **Svalbard and Jan Mayen** | Western Europe | SJ | SJM | L4 | L4 | Yes | | **Sweden** | Western Europe | SE | SWE | L4+ | L4 | Yes | | **Switzerland** | Western Europe | CH | CHE | L4+ | L4 | Yes | | **Syrian Arab Republic** | Middle East & Africa | SY | SYR | L2 | L2 | Yes | | **Taiwan, Province of China** | Asia | TW | TWN | L4+ | L4 | Yes | | **Tajikistan** | Eastern Europe | TJ | TJK | L3- | L3 | Yes | | **Tanzania, United Republic of** | Middle East & Africa | TZ | TZA | L3- | L3 | | | **Thailand** | Asia | TH | THA | L4 | L4 | Yes | | **Timor-Leste** | Asia | TL | TLS | L2 | L2 | Yes | | **Togo** | Middle East & Africa | TG | TGO | L3- | L3 | | | **Tokelau** | Pacific & Arctic | TK | TKL | L2 | L2 | Yes | | **Tonga** | Pacific & Arctic | TO | TON | L4- | L4 | Yes | | **Trinidad and Tobago** | Central America & Caribbean | TT | TTO | L3+ | L3 | Yes | | **Tunisia** | Middle East & Africa | TN | TUN | L4- | L4 | Yes | | **Turkey** | Eastern Europe | TR | TUR | L4+ | L4 | Yes | | **Turkmenistan** | Eastern Europe | TM | TKM | L3 | L3 | | | **Turks and Caicos Islands** | Central America & Caribbean | TC | TCA | L3- | L3 | | | **Tuvalu** | Pacific & Arctic | TV | TUV | L2 | L2 | Yes | | **Uganda** | Middle East & Africa | UG | UGA | L3 | L3 | | | **Ukraine** | Eastern Europe | UA | UKR | L4 | L4 | Yes | | **United Arab Emirates** | Middle East & Africa | AE | ARE | L4 | L4 | Yes | | **United Kingdom** | Western Europe | GB | GBR | L5+ | L4 | Yes | | **United States** | North America | US | USA | L5+ | L4 | Yes | | **United States Minor Outlying Islands** | North America | UM | UMI | L2 | L2 | Yes | | **Uruguay** | South America | UY | URY | L4 | L4 | Yes | | **Uzbekistan** | Eastern Europe | UZ | UZB | L4- | L4 | | | **Vanuatu** | Pacific & Arctic | VU | VUT | L4- | L4 | | | **Venezuela, Bolivarian Republic of** | South America | VE | VEN | L4- | L4 | Yes | | **Viet Nam** | Asia | VN | VNM | L4- | L4 | Yes | | **Virgin Islands, British** | Central America & Caribbean | VG | VGB | L3 | L3 | | | **Virgin Islands, U.S.** | North America | VI | VIR | L5+ | L4 | | | **Wallis and Futuna** | Pacific & Arctic | WF | WLF | L3 | L3 | Yes | | **Western Sahara** | Middle East & Africa | EH | ESH | L2 | L2 | Yes | | **Yemen** | Middle East & Africa | YE | YEM | L2 | L2 | Yes | | **Zambia** | Middle East & Africa | ZM | ZMB | L3 | L3 | | | **Zimbabwe** | Middle East & Africa | ZW | ZWE | L4- | L4 | | | **Åland Islands** | Western Europe | AX | ALA | L4+ | L4 | | ## Note on Russia *Following Russia’s invasion of Ukraine the availability of up to date Russian data ceased as data suppliers changed their risk appetite and stopped dealing with Russia. Until the situation improves GBG are unfortunately unable to reliably update current data relating to Russia.* # Loqate International Address Formats Source: https://docs.loqate.com/data-coverage/loqate-international-address-formats This page documents the latest Loqate international address format definitions for each country and territory, including the preferred line order, field composition, and native-script variants where available. [Download the original PDF: Loqate International Address Formats (Feb 2026)](https://github.com/loqate/release-docs/blob/main/verify-relelase-notes/Loqate%20international%20address%20formats%202026%20Feb.pdf) **Date:** 24 February 2026 ## General Notes * Field values will only be populated where available and in accordance with local postal authority guidelines. * This file includes native script format where available, but more details on native scripts are available [here](/support/character-scripts/). * Country header format: Country Name ISO 3166-3, ISO 3166-2 ## Address Formats ### Afghanistan AFG, AF | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Åland Islands ALA, AX | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Albania ALB, AL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode | | Line 9 | Locality | ### Algeria DZA, DZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### American Samoa ASM, AS | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Andorra AND, AD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Angola AGO, AO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Anguilla AIA, AI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Antarctica ATA, AQ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Antigua and Barbuda ATG, AG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Argentina ARG, AR | Line | Value | | ------ | -------------------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise | | Line 4 | Building SubBuilding DoubleDependentLocality DependentLocality | | Line 5 | PostalCode Locality | ### Armenia ARM, AM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Aruba ABW, AW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Australia AUS, AU | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | SubBuilding Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Austria AUT, AT | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building/SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | PostalCode Locality | ### Azerbaijan AZE, AZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | | Line 9 | AdministrativeArea | ### Bahamas BHS, BS | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea | ### Bahrain BHR, BH | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Bangladesh BGD, BD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality – PostalCode | ### Barbados BRB, BB | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Belarus BLR, BY | Line | Value | | ------ | --------------------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise DependentThoroughfare Building SubBuilding | | Line 4 | DoubleDependentLocality | | Line 5 | PostalCode Locality | | Line 6 | | | Line 7 | DependentLocality | ### Belgium BEL, BE | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Belize BLZ, BZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Benin BEN, BJ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Bermuda BMU, BM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Bhutan BTN, BT | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Bolivia, Plurinational State of BOL, BO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Bonaire, Sint Eustatius and Saba BES, BQ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Bosnia and Herzegovina BIH, BA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Botswana BWA, BW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Bouvet Island BVT, BV | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Brazil BRA, BR | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality - AdministrativeArea | | Line 8 | PostalCode | ### British Indian Ocean Territory IOT, IO | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Brunei Darussalam BRN, BN | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Bulgaria BGR, BG | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | ### Burkina Faso BFA, BF | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Burundi BDI, BI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Cabo Verde, the Republic of CPV, CV | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Cambodia KHM, KH | Line | Value | | ------ | ----------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea PostalCode | ### Cameroon CMR, CM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Canada CAN, CA | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | Building | | Line 3 | Premise Thoroughfare SubBuilding | | Line 4 | PostBox Route DeliveryInstallation | | Line 5 | Locality AdministrativeArea PostalCode | ### Cayman Islands CYM, KY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Central African Republic CAF, CF | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Chad TCD, TD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Chile CHL, CL | Line | Value | | ------ | -------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | PostalCodePrimary Locality DependentLocality | | Line 8 | AdministrativeArea | ### China CHN, CN | Line | Value | | ------ | ------------------------------------------ | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise DependentThoroughfare Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | PostalCode | ### China CHN, CN (Native) | Line | Value | | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Line 1 | PostalCode | | Line 2 | AdministrativeArea Locality DependentLocality DoubleDependentLocality Thoroughfare DependentThoroughfare Premise SubBuilding PostBox Organization | ### Christmas Island CXR, CX | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Cocos (Keeling) Islands CCK, CC | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Colombia COL, CO | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | | Line 9 | AdministrativeArea | ### Comoros COM, KM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Congo COG, CG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Congo, the Democratic Republic of the COD, CD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Cook Islands COK, CK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | ### Costa Rica CRI, CR | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | AdministrativeArea Locality | | Line 9 | PostalCode | ### Côte d’Ivoire CIV, CI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Croatia HRV, HR | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Cuba CUB, CU | Line | Value | | ------ | --------------------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise DependentThoroughfare Building SubBuilding | | Line 4 | DoubleDependentLocality | | Line 5 | DependentLocality | | Line 6 | PostalCode Locality AdministrativeArea | ### Curaçao CUW, CW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Cyprus CYP, CY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Czechia CZE, CZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Denmark DNK, DK | Line | Value | | ------ | ------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuildingFloor SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Djibouti DJI, DJ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Dominica DMA, DM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Dominican Republic DOM, DO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Ecuador ECU, EC | Line | Value | | ------ | ------------------------------------------ | | Line 1 | Organization | | Line 2 | Building SubBuilding | | Line 3 | Thoroughfare Premise DependentThoroughfare | | Line 4 | DependentLocality | | Line 5 | PostalCode Locality | ### Egypt EGY, EG | Line | Value | | ------ | ------------------------------------------ | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | AdministrativeArea | | Line 9 | PostalCode | ### El Salvador SLV, SV | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | | Line 9 | AdministrativeArea | ### Equatorial Guinea GNQ, GQ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Eritrea ERI, ER | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Estonia EST, EE | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Eswatini SWZ, SZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Ethiopia ETH, ET | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Falkland Islands (Malvinas) FLK, FK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Faroe Islands FRO, FO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Fiji FJI, FJ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Finland FIN, FI | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | | | Line 7 | PostalCode Locality | ### France FRA, FR | Line | Value | | ------ | ------------------------------------------------------- | | Line 1 | Organization | | Line 2 | SubBuilding Building | | Line 3 | Premise Thoroughfare | | Line 4 | DependentThoroughfare | | Line 5 | PostBox Town | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality LocalityExtra LocalityExtra\_Others | ### French Guiana GUF, GF | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### French Polynesia PYF, PF | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### French Southern Territories ATF, TF | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Gabon GAB, GA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Gambia GMB, GM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Georgia GEO, GE | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Germany DEU, DE | Line | Value | | ------ | --------------------- | | Line 1 | Organization | | Line 2 | Thoroughfare Premise | | Line 3 | Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | PostalCode Locality | ### Ghana GHA, GH | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Gibraltar GIB, GI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Greece GRC, GR | Line | Value | | ------ | --------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare PremiseExtra Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Greenland GRL, GL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Grenada GRD, GD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Guadeloupe GLP, GP | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Guam GUM, GU | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Guatemala GTM, GT | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Guernsey GGY, GG | Line | Value | | ------ | ------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding SubBuildingFloor Building | | Line 4 | Premise Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | PostalCode | ### Guinea GIN, GN | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Guinea-Bissau GNB, GW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Guyana GUY, GY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Haiti HTI, HT | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Heard Island and McDonald Islands HMD, HM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Holy See (Vatican City State) VAT, VA | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Honduras HND, HN | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Hong Kong HKG, HK | Line | Value | | ------ | --------------------------- | | Line 1 | Attention Organization | | Line 2 | PostBox | | Line 3 | SubBuilding BuildingPhase | | Line 4 | Building BuildingPhaseExtra | | Line 5 | Premise Thoroughfare | | Line 6 | DependentThoroughfare | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | ### Hungary HUN, HU | Line | Value | | ------ | ----------------- | | Line 1 | Organization | | Line 2 | Locality | | Line 3 | DependentLocality | | Line 4 | DeliveryAddress | ### Iceland ISL, IS | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | ### India IND, IN | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Indonesia IDN, ID | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Iran, Islamic Republic of IRN, IR | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Iraq IRQ, IQ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Ireland IRL, IE | Line | Value | | ------- | ------------------------ | | Line 1 | PostBox | | Line 2 | Department | | Line 3 | Organization | | Line 4 | SubBuilding Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | Locality | | Line 7 | DependentLocality | | Line 8 | DoubleDependentLocality | | Line 9 | PostTown | | Line 10 | AdministrativeArea | | Line 11 | PostalCode | ### Isle of Man IMN, IM | Line | Value | | ------ | ------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding SubBuildingFloor Building | | Line 4 | Premise Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | PostalCode | ### Israel ISR, IL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Italy ITA, IT | Line | Value | | ------ | --------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode SubAdministrativeArea AdministrativeArea | ### Jamaica JAM, JM | Line | Value | | ------ | --------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | AdministrativeArea | ### Japan JPN, JP | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Japan JPN, JP (Native) | Line | Value | | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | Line 1 | 〒 PostalCode | | Line 2 | AdministrativeArea Locality DependentLocality DoubleDependentLocality Thoroughfare DependentThoroughfare Premise Building SubBuilding PostBox Organization | ### Jersey JEY, JE | Line | Value | | ------ | ------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding SubBuildingFloor Building | | Line 4 | Premise Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | PostalCode | ### Jordan JOR, JO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Kazakhstan KAZ, KZ | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | | Line 8 | SubAdministrativeArea | | Line 9 | AdministrativeArea | ### Kazakhstan KAZ, KZ (Native) | Line | Value | | ------ | ----------------------------------------- | | Line 1 | AdministrativeArea | | Line 2 | SubAdministrativeArea | | Line 3 | PostalCode Locality | | Line 4 | DependentLocality | | Line 5 | DoubleDependentLocality | | Line 6 | PostBox | | Line 7 | Thoroughfare Premise Building SubBuilding | | Line 8 | DependentThoroughfare | | Line 9 | Organization | ### Kenya KEN, KE | Line | Value | | ------- | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | | Line 10 | AdministrativeArea | ### Kiribati KIR, KI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | ### Korea, Democratic People’s Republic of PRK, KP | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Korea, Republic of KOR, KR | Line | Value | | ------ | --------------------------------------- | | Line 1 | OrganizationPostBox | | Line 2 | BuildingNumber SubBuilding BuildingName | | Line 3 | PremiseNumber Thoroughfare | | Line 4 | DependentLocality | | Line 5 | Locality | | Line 6 | AdministrativeArea PostalCode | ### Korea, Republic of KOR, KR (Native) | Line | Value | | ------ | ----------------------------------------------------------------------------------------------------- | | Line 1 | PostalCode AdministrativeArea | | Line 2 | Locality DependentLocality Thoroughfare PremiseNumber BuildingName BuildingNumber SubBuilding PostBox | | Line 3 | Organization | ### Kosovo XKV, XK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Kuwait KWT, KW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Kyrgyzstan KGZ, KG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostalCode Locality | | Line 3 | PostBox | | Line 4 | Building SubBuilding | | Line 5 | Thoroughfare Premise | | Line 6 | DependentThoroughfare | | Line 7 | DoubleDependentLocality | | Line 8 | DependentLocality | ### Lao People’s Democratic Republic LAO, LA | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Latvia LVA, LV | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Lebanon LBN, LB | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Lesotho LSO, LS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Liberia LBR, LR | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Libya LBY, LY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Liechtenstein LIE, LI | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Lithuania LTU, LT | Line | Value | | ------ | ----------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | LT-PostalCode SubAdministrativeArea | ### Luxembourg LUX, LU | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | L-PostalCode Locality | ### Macao MAC, MO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise | | Line 4 | DependentThoroughfare | | Line 5 | Building | | Line 6 | SubBuilding | | Line 7 | DoubleDependentLocality | | Line 8 | DependentLocality | | Line 9 | Locality | ### Madagascar MDG, MG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Malawi MWI, MW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Malaysia MYS, MY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | | Line 9 | AdministrativeArea | ### Maldives MDV, MV | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Mali MLI, ML | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Malta MLT, MT | Line | Value | | ------ | --------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | Locality | | Line 7 | PostalCode | ### Marshall Islands MHL, MH | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Martinique MTQ, MQ | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Mauritania MRT, MR | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Mauritius MUS, MU | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Mayotte MYT, YT | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Mexico MEX, MX | Line | Value | | ------ | --------------------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise DependentThoroughfare Building SubBuilding | | Line 4 | DoubleDependentLocality | | Line 5 | DependentLocality | | Line 6 | PostalCode SubAdministrativeArea AdministrativeArea | ### Micronesia, Federated States of FSM, FM | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | Locality AdministrativeArea PostalCode | ### Moldova, Republic of MDA, MD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Monaco MCO, MC | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | PostalCode Locality AdministrativeArea | ### Mongolia MNG, MN | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Montenegro MNE, ME | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Montserrat MSR, MS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Morocco MAR, MA | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Mozambique MOZ, MZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Myanmar MMR, MM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Namibia NAM, NA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Nauru NRU, NR | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Nepal NPL, NP | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Netherlands NLD, NL | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### New Caledonia NCL, NC | Line | Value | | ------ | ---------------------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality LocalityExtra AdministrativeArea | ### New Zealand NZL, NZ | Line | Value | | ------ | ----------------------- | | Line 1 | Department | | Line 2 | Organization | | Line 3 | SubBuilding | | Line 4 | Building | | Line 5 | Thoroughfare | | Line 6 | DependentThoroughfare | | Line 7 | DoubleDependentLocality | | Line 8 | DependentLocality | | Line 9 | Locality PostalCode | ### Nicaragua NIC, NI | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode | | Line 9 | Locality AdministrativeArea | ### Niger NER, NE | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Nigeria NGA, NG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Niue NIU, NU | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Norfolk Island NFK, NF | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### North Macedonia MKD, MK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Northern Mariana Islands MNP, MP | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Norway NOR, NO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Oman OMN, OM | Line | Value | | ------- | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode | | Line 9 | Locality | | Line 10 | AdministrativeArea | ### Pakistan PAK, PK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Palau PLW, PW | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Palestine, State of PSE, PS | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Panama PAN, PA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | | Line 9 | AdministrativeArea | ### Papua New Guinea PNG, PG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | | Line 9 | AdministrativeArea | ### Paraguay PRY, PY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Peru PER, PE | Line | Value | | ------- | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise | | Line 4 | DependentThoroughfare | | Line 5 | Building SubBuilding | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | | Line 10 | AdministrativeArea | ### Philippines PHL, PH | Line | Value | | ------ | ----------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode AdministrativeArea | ### Pitcairn PCN, PN | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Poland POL, PL | Line | Value | | ------ | ------------------------ | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | PostalCode Locality | ### Portugal PRT, PT | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode SubAdministrativeArea | ### Puerto Rico PRI, PR | Line | Value | | ------ | ------------------------------------------------- | | Line 1 | Organization | | Line 2 | DependentLocality | | Line 3 | PostBox | | Line 4 | Building | | Line 5 | Premise Thoroughfare SubBuilding SubBuildingFloor | | Line 6 | DependentThoroughfare | | Line 7 | DoubleDependentLocality | | Line 8 | Locality PostalCode | ### Qatar QAT, QA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Republic of South Sudan SSD, SS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode | | Line 9 | Locality | ### Réunion REU, RE | Line | Value | | ------ | --------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality LocalityExtra | ### Romania ROU, RO | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise Building SubBuilding | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | ### Russian Federation RUS, RU | Line | Value | | ------- | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | | Line 10 | PostalCode | ### Rwanda RWA, RW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Saint Barthélemy BLM, BL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | SubBuilding Building | | Line 3 | Premise Thoroughfare | | Line 4 | DependentThoroughfare | | Line 5 | PostBox | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Saint Helena, Ascension and Tristan da Cunha SHN, SH | Line | Value | | ------- | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | | Line 10 | PostalCode | ### Saint Kitts and Nevis KNA, KN | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Saint Lucia LCA, LC | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Saint Martin (French part) MAF, MF | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Saint Pierre and Miquelon SPM, PM | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Saint Vincent and the Grenadines VCT, VC | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Samoa WSM, WS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### San Marino SMR, SM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Sao Tome and Principe STP, ST | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Saudi Arabia SAU, SA | Line | Value | | ------ | --------------------------------- | | Line 1 | Organization | | Line 2 | ShortAddressCode | | Line 3 | PostBox | | Line 4 | PremiseExtra Premise Thoroughfare | | Line 5 | SubBuilding Building | | Line 6 | SecondaryNumber DependentLocality | | Line 7 | PostalCode | | Line 8 | Locality | ### Senegal SEN, SN | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality AdministrativeArea | ### Serbia SRB, RS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Seychelles SYC, SC | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Sierra Leone SLE, SL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Singapore SGP, SG | Line | Value | | ------ | ---------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Premise Thoroughfare | | Line 4 | Building BuildingPhase | | Line 5 | DependentThoroughfare | | Line 6 | Locality PostalCode | ### Sint Maarten (Dutch part) SXM, SX | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea | ### Slovakia SVK, SK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Slovenia SVN, SI | Line | Value | | ------ | --------------------------------- | | Line 1 | Building SubBuilding Organization | | Line 2 | PostBox | | Line 3 | Thoroughfare Premise | | Line 4 | DependentThoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | ### Solomon Islands SLB, SB | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | ### Somalia SOM, SO | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### South Africa ZAF, ZA | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### South Georgia and the South Sandwich Islands SGS, GS | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Spain ESP, ES | Line | Value | | ------ | ----------------------------------------------------------------------------------------------------------------- | | Line 1 | Organization | | Line 2 | Thoroughfare Premise Building SubBuildingType SubBuildingBlock BuildingStaircase SubBuildingFloor SubBuildingDoor | | Line 3 | DependentThoroughfare | | Line 4 | PostBox | | Line 5 | DependentLocality | | Line 6 | PostalCode Locality | | Line 7 | AdministrativeArea | ### Sri Lanka LKA, LK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### Sudan SDN, SD | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode | | Line 9 | Locality | ### Suriname SUR, SR | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Svalbard and Jan Mayen SJM, SJ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Sweden SWE, SE | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | PostalCode Locality | ### Switzerland CHE, CH | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | SubBuilding Building | | Line 3 | Thoroughfare Premise | | Line 4 | DependentThoroughfare | | Line 5 | PostBox | | Line 6 | Locality AdministrativeArea | ### Syrian Arab Republic SYR, SY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Taiwan, Province of China TWN, TW | Line | Value | | ------ | ------------------------------------------ | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise DependentThoroughfare Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | PostalCode Locality | ### Taiwan, Province of China TWN, TW (Native) | Line | Value | | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Line 1 | PostalCode | | Line 2 | AdministrativeArea Locality DependentLocality DoubleDependentLocality Thoroughfare DependentThoroughfare Premise SubBuilding PostBox Organization | ### Tajikistan TJK, TJ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Tanzania, United Republic of TZA, TZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Thailand THA, TH | Line | Value | | ------ | ------------------------------------------ | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise DependentThoroughfare Thoroughfare | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality | | Line 8 | AdministrativeArea | | Line 9 | PostalCode | ### Timor-Leste TLS, TL | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Togo TGO, TG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Tokelau TKL, TK | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Tonga TON, TO | Line | Value | | ------ | --------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea | ### Trinidad and Tobago TTO, TT | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Tunisia TUN, TN | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Türkiye TUR, TR | Line | Value | | ------ | --------------------------------------------------- | | Line 1 | Organization | | Line 2 | DoubleDependentLocality | | Line 3 | Thoroughfare Building NoPremise | | Line 4 | PostBox | | Line 5 | PostalCode SubAdministrativeArea AdministrativeArea | ### Turkmenistan TKM, TM | Line | Value | | ------ | ------------------------------- | | Line 1 | OrganizationPostalCode Locality | | Line 2 | AdministrativeArea | | Line 3 | DeliveryAddress | ### Turks and Caicos Islands TCA, TC | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | AdministrativeArea | ### Tuvalu TUV, TV | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Uganda UGA, UG | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Ukraine UKR, UA | Line | Value | | ------ | -------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building | | Line 4 | Thoroughfare Premise SubBuilding | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality Locality | | Line 8 | AdministrativeArea | | Line 9 | PostalCode | ### United Arab Emirates ARE, AE | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### United Kingdom GBR, GB | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | Department | | Line 3 | PostBox | | Line 4 | SubBuilding Building | | Line 5 | Premise Thoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | | Line 9 | PostalCode | ### United States USA, US | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | Building | | Line 3 | Premise Thoroughfare SubBuilding | | Line 4 | DependentThoroughfare PostBox | | Line 5 | DoubleDependentLocality | | Line 6 | DependentLocality | | Line 7 | Locality AdministrativeArea PostalCode | ### United States Minor Outlying Islands UMI, UM | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Uruguay URY, UY | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Uzbekistan UZB, UZ | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Vanuatu VUT, VU | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Venezuela, Bolivarian Republic of VEN, VE | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality PostalCode | ### Viet Nam VNM, VN | Line | Value | | ------ | ----------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality DependentLocality | | Line 7 | Locality SubAdministrativeArea | | Line 8 | AdministrativeArea PostalCode | ### Virgin Islands, British VGB, VG | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Virgin Islands, U.S. VIR, VI | Line | Value | | ------ | -------------------------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality AdministrativeArea PostalCode | ### Wallis and Futuna WLF, WF | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | Building SubBuilding | | Line 4 | Thoroughfare Premise | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Western Sahara ESH, EH | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Yemen YEM, YE | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | ### Zambia ZMB, ZM | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | PostalCode Locality | ### Zimbabwe ZWE, ZW | Line | Value | | ------ | ----------------------- | | Line 1 | Organization | | Line 2 | PostBox | | Line 3 | SubBuilding Building | | Line 4 | Premise Thoroughfare | | Line 5 | DependentThoroughfare | | Line 6 | DoubleDependentLocality | | Line 7 | DependentLocality | | Line 8 | Locality | # On-Premise Documentation Source: https://docs.loqate.com/documentation/introduction ## Available Processes ## Field Descriptions ## Status Options ## Server Options ## Installed API Reference # Server Options Source: https://docs.loqate.com/documentation/server-options ## Server Options The following commands can be used to control and manipulate the Loqate process or output. These are considered advanced functions, and we recommend that server options are used in custom workflows. **CASS2 related server options added to the bottom of this list.** | Server Option | Description | | :--------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | AddressLineSeparator | Used to specify the string which will separate the output address lines within the output Address field (default `
`). | | AutocompleteIndexOnly | This option allows the user to specify whether the search process should use Powersearch auto-complete index ONLY. The default is `OFF`. The option should be set to 0 or `OFF` to allow search tool to also use the parser and match tool when the auto-complete index cannot find any results. The option should be set to 1 or `ON` to allow the search tool to use the Powersearch auto-complete index files. This can also be used as a process option. | | CasingIgnoreFields | Used to specify the fields that should be ignored by the OutputCasing option. System default is "ID,PostalCode,PostalCodePrimary,PostalCodeSecondary,ISO3166-2,ISO3166-3,PostBox,PostBoxNumber,PostBoxType,\_L,Latitude,Longitude,GeoAccuracy,GeoDistance,AVC,AQI,HyphenClass,MatchedFieldList,DPS,CountryCode,Outputstatus,FormattedAddress". Additionally, the following datasets also add AdministrativeArea to the default values: AUS, BRA, CAN, ITA, MEX, CHE, and USA. Currently system defaults cannot be overridden, but country-level values will be ignored when CasingIgnoreFields is used. Please re-use "AdministrativeArea" as a value to retain the default behavior. | | CassCompanyName | This option is set within the `loqate.ini` file. This will allow the Loqate engine to print the Company Name value in the CASS and PS3553 reports. Please note, if a value has not been specified, then the default value will be `LOQATE`. | | CassSoftwareName | This option is set within the `loqate.ini` file. This will allow the Loqate engine to print the CASS software name value in the CASS and PS3553 reports. Please note, if a value has not been specified, then the default value will be `LOQATE ENGINE`. | | CassSoftwareVersion | This option is set within the `loqate.ini` file. This will allow the Loqate engine to print the CASS software version in the CASS and PS3553 reports. Please note, if a value has not been specified, then the default value will be `20.13.04.N`. | | CertifiedCountryList | Used to specify a comma-delimited list of countries where data should be processed using the relevant certified process. e.g. "USA,CAN,AUS" to give CASS, SERP, and AMAS certified output respectively. | | CombinedSearchMethods | Specifies whether or not to use a word-based search algorithm similar to a web search engine approach. Default `Yes`. | | CombinedVerifyMethods | If this option is set to YES or `ON` or `TRUE` or 1, the word-based search algorithm similar to a web search engine approach will be enabled during verification process. Default `Yes`. | | ConfidenceThreshold | Used to specify the threshold at which to stop returning parse interpretations, as a percentage of the confidence of the top result. Default `90`. | | ConfigurationFilename | Used to specify the name of the file that will attempt to be opened during the call to `lqtServer::init`. Default `loqate.ini`. | | ConformToReference | Controls whether the output address fields should strictly conform to the values stored in the reference data. This option is particularly relevant when verifying **Premise** and **SubBuilding** fields. Options are “Yes” and “No” with the default being “No”.

For example, given reference data: 14 Main St Ste 1

Input: 14A Main St Ste 1A

Output with default **No**: 14A Main St Ste 1A

Output with **Yes**: 14 Main St Ste 1 | | ContextResultCacheSize | Used to specify how many sets of context results should be cached in memory. This cache is a cost-based cache based on processing time, meaning that the slowest context analyses have their results cached. Default `0`. Values up to around 5,000 are relevant, but the memory usage and performance gain will be dependent on the supplied input data. | | ContextCountryCacheSize | Used to specify the number of MRU countries to generate ContextResult caches for. On an unsorted multi-country file a value of around 10 may be relevant, but the memory usage and performance gain will be dependent on the supplied input data. | | CountryFields | Used to specify the comma delimited list of fields to be searched for country information. This should be a subset of the ParseFields entry. | | CustomFields | Used to specify the comma delimited list of custom fields to be searched for during the parse process. | | CustomFieldConfidence | Used to specify the confidence to be applied to the recognition of any fields recognized through the CustomFields option. | | DataDirectory | Used to specify the directory in which to find the Global Knowledge Repository, if other than the directory of the `loqate.ini` configuration file specified during the `lqtServer::init` call. | | DefaultCountry | Used to specify the ISO 3166-1 alpha-3 code which should be used if no identifiable country can be found in an input record. | | DuplicateHandlingMask | Used to specify the duplicate handling level, between 0 and 15. Default is `0`. When option is set, duplicate components in the input address are removed if it meets a certain criteria. For more details, please click this [link](/support/duplicatehandlingmask-option). | | EnhancedCountryTool | This option allows users to enable the Automatic Country Identification. To enable the option, set the value of the option to "`ON`" or "`True`". To disable the option set the value to "`OFF`" or "`False`". Default `False`. | | FieldNameWeight | Used to specify the default field name weight, between 1 and 255. Default `10`. A larger value will give more precedence to the supplied field name, a smaller value will give more precedence to the GKR matches. Individual field name weights can also be declared using the syntax. For instance 'Organization=240,AdministrativeArea=100,50' would mean a field name weight of 240 for the Organization field, 100 for the AdministrativeArea field, and a default of 50 for all remaining fields. **This option is only used during the initial Parse process, and not during the Match process.** | | FieldStatus | This option produces a status code for every returned field. Default is "false"; to see this value, set the option to "true". Examples include Verified, Identified, or Added. Statuses are defined [here](/report-codes/fieldstatus). | | FlexiconCountryList | This option allows the user to specify a comma separated list of ISO 3166-1 alpha-3 country codes for which phonetic lexicons is enabled for parsing. Default value is empty which means that the phonetic lexicons are not enabled for any country by default. | | ForceCountry | Used to specify the ISO 3166-1 alpha-3 code which should be used for all input records. | | FormatFields | A list of default field formats for those fields that can be derived from a combination of other fields. This can be overridden on a per-country basis, and should only be changed if requested by Support staff. | | GeocodeCountryList | Used to specify a comma-delimited list of ISO 3166-1 alpha-3 codes of acceptable countries to geocode. Input records from other countries will not return geocodes. The default is to process data from all countries. | | GeocodeMatchRules | A list of default match rules specifying how fields can be combined when attempting to generate a geocode match. This can be overridden on a per-country basis, and should only be changed if requested by Support staff. | | IgnoreUnmatched | Allow unmatched input data within the address lines to be ignored during a Search process, meaning that a search can proceed matching only partial input data. Default `No`. We don't recommend you use this server option on a Verify process, as it may reduce the accuracy of otherwise valid results. | | LogFileName | Used to specify a filename for debug output. Must be specified before the `lqtServer::init` call. | | MatchScoreAbsoluteThreshold | Used to specify the minimum matchscore a record must reach in the Match process to be taken into account as a candidate for matching. Default value is `60` and the maximum value is 100. | | MatchScoreThresholdFactor | This is a value that is used as a factor of the highest matching result. The resulting value is then used as a cut-off for considering candidates for the results. The higher the value of the factor, the higher the chance of getting a good verification result. Default value is `95` and the maximum value is 100. | | MaximumGeoDistance | Used to specify the maximum GeoDistance a geocode can reach and still be returned as a result. Default is -1 (no limit). | | MaximumInstanceCount | Used to specify the maximum number of lqtServer instances to allow to run concurrently. Default is -1 (no limit). If using the single threaded library it is recommended to set this to 1 to ensure that no attempt to open multiple lqtServer instances can occur. | | MaxResults | Used to specify the maximum number of results to return in the ProcessResults structure. | | MinimumGeoAccuracyLevel | Used to specify the minimum GeoAccuracy level a geocode must reach in order to be returned as a result. Default is `0` (zero), valid values are 0-5. | | MinimumMatchscore | Used to specify the minimum matchscore a record must reach in order to avoid reversion. Default is `0` (zero), valid values are 0-100. | | MinimumPostcode | Used to specify the minimum postcode status a record must reach in order to avoid reversion. Default is `0` (zero), valid values are 0-8. | | MinimumSimilarity | Used to specify the minimum similarity score that is needed to make a match to a candidate result. Default value is `70`. | | MinimumVerificationLevel | Used to specify the minimum verification level a record must reach in order to avoid reversion. Default is `0` (zero), valid values are 0-5. | | NativeAddressLineReverse | Used to specify whether to reverse the order of the input address lines when processing non-Latin data. Usually this is set on a per-country basis automatically, but can be overridden by setting the server option as appropriate. When set to `False`, any input Address lines are concatenated for parsing in normal order (e.g. Address1 + Address2 + Address3), when set to `True` any input Address lines are concatenated for parsing in reverse order (e.g. Address3 + Address2 + Address1). | | NewSearchPrefered | If this option is set to `TRUE` or `ON`, New Search is executed before the Old Search during execution of the Search Process. Typically if the input is nearly complete, New Search is preferred to complete the search and the option should be set to `TRUE` or `ON`. If the input is quite partial and is not nearly a complete address, Old Search is preferred and the option should be set to `FALSE` or `OFF`. Default option is `FALSE` or `OFF`. | | OutputAddressFormat | Used to specify whether to output an extra field for the Address block fields with the suffix 'Format' showing how the hierarchical field positioning has occurred. Valid options are '`Yes`' or '`No`', default '`No`'. | | OutputCasing | Used to specify the letter case to use for output fields. Valid options are 'Upper', 'Title', or 'Lower'. The default will be Default: 'Title'; unless the postal authority prefer a different case. For example, the postal authority in Spain prefer to have the Locality formatted in upper case. | | OutputScript | Used to specify the language or character set (based on the ISO 15924 standard) in which the output should be encoded, from the following list of possible values:
- Latn - Latin (English transliteration wherever possible)
- Cyrl - Cyrillic (Russia)
- Grek - Greek (Greece)
- Hebr - Hebrew (Israel)
- Hani - Kanji (Japan)
- Hans - Simplified Chinese (China)
- Arab - Arabic (United Arab Emirates)
- Thai - Thai (Thailand)
- Hang - Hangul (South Korea)
- Native - Output in the native script wherever possible | | OutputSortType | Used to specify the order in which the Search output results should be sorted. To sort in alphabetical order use 'Alphabetical', or alternatively specify 'AVC' to sort from the highest verification level to the lowest verification level. The option can also be set to 'Similarity' giving an indication of the percentage of the input characters that have been matched in the output. Default 'AVC'. | | ParseFields | Specifies the list of fields to be parsed into word tokens. | | PreferPrimaryValidAlias | When option is set to "Yes", the engine will pick out the first valid alias it finds within the reference data. Default value is "No". | | QueryResultCacheSize | Used to specify how many sets of query results should be cached in memory. This cache is a cost-based cache based on query time, meaning that the slowest queries have their results cached. Default `0`. Values up to around 5,000 are relevant, but the memory usage and performance gain will be dependent on the supplied input data. | | RangeDecompose | Used to specify how to expand ranges such as premise numbers and sub building numbers. Valid values are 'Match' (returning only the value matching the input query), 'Range' (returning a human-readable range, e.g. '1-9 Odd'), or 'Full' (expanding out the range into its constituent numbers, e.g. '1', '2', '3', '4', '5'). | | ReferenceDatasetCacheSize | Used to specify the number of MRU reference datasets to cache. Default value is `5`. | | ReferencePageCacheSize | Used to specify the number of MRU pages to cache from each individual reference dataset. Default value is `12`, each page equates to approximately 5Mb of memory use. | | ReturnDataType | Valid values are Complete (default) or Verified. If set to Verified, the output from a Search process will only include data that has been verified against the available reference data. | | ReturnVerifiedFieldsOnly | This option will return only verified fields, meaning that it will remove anything that isn't verified from any field. SuppressUnmatched option will only suppress the unverified components in the Address field. Default `No`, meaning all fields will be returned. This can be specified on a per-country basis, with the added ability to specify fields to ignore during the check, using the following syntax.

`ReturnVerifiedFieldsOnly=[:;;…;][,:;…;,…,]. e.g. ReturnVerifiedFieldsOnly=BE:SubBuilding;Premise,DE:SubBuilding;Premise,AT:SubBuilding;Premise or ReturnVerifiedFieldsOnly=US,CA,GB.`

The former will return verified fields only in Belgium, Germany, and Austria, but will retain non-verified data in the Premise and SubBuilding fields, the latter will return verified fields only in USA, Canada, UK. | | SearchAutocompleteIndexCheck | Specifies whether or not to use the 'autocomplete index' algorithm integral to Address Powersearch (this will not function if Address Powersearch is not installed). This algorithm returns a list of suggestions in record time for entries like '4916 eas' in the US. For more information on Address Powersearch, please visit. Related to this option is the AutocompleteIndexOnly option which will prevent other algorithms from being called. Because the autocomplete index algorithm is much faster than the other algorithms, this guarantees a faster response time in all situations. Default `Yes`. | | SearchLikeFieldCheck | Specifies whether or not to use the 'like field' algorithm. This option looks for an exact field match in the address field which is useful for single items like postcodes, building names, organization names, etc. Default `Yes`. | | SearchMatchRules | A list of default match rules specifying how fields can be combined when attempting to generate a search. This can be overridden on a per-country basis, and should only be changed if requested by Support staff. | | SearchReferenceTypes | Specifies the list of lexicon tagged field types that should be searched for in the reference data during a parse process. This should only be changed if requested by Support staff. | | SimpleParse | Specifies whether or not to use the 'simple parse' algorithm. This option looks for something like premise + street in the address field, but is not particularly tolerant of invalid input data. Default `Yes`. | | StrictReferenceMatch | This option helps to output results that are identical to what is found within the reference data. For example, if an input address has a premise of "08", but the reference data contains "8", the Premise would be verified with an Premise Number output of "08". Turning on StrictReferenceMatch would have the output be "8". Default `No`. | | StrictRefMatchCountryList | This is a list of ISO2 countries that you would like to have the option StrictReferenceMatch turned on for. | | SuppressAdditionFields | Used to specify the comma-delimited list of fields that should not be added to an output result if they do not appear in the input record. | | SuppressAddressFields | Used to specify the comma-delimited list of fields that should be suppressed from the Address field output. | | SuppressFields | Used to specify the comma-delimited list of fields that should be suppressed from the output. | | SuppressMatchFields | Used to specify the comma-delimited list of fields that should be suppressed when determining the Address Verification Code. | | SuppressUnmatched | If this option is set to `TRUE` or `ON`, unverified fields will not be output in Address fields (Address, Address1, Address2, etc.). Default option is `FALSE` or `OFF`. | | TextFields | Specifies the list of field names, and the order in which they should be combined, to generate the combined word list for parsing. This should be a subset of the ParseFields entry. | | TransliterationIgnoreFields | Used to specify the fields that should not be transliterated. Default "ID,ISO3166-2,ISO3166-3,\_L,Latitude,Longitude,GeoAccuracy,GeoDistance,AVC". | | ToolInfo | Specify `Yes` to output extra debug information viewable using the getFieldInfo method. | | UseCustomLexicons | Specify `Yes` to force the API to search for custom lexicons (lx\_\_c.lfs files) | | UseSymbolicTransliteration | Specify `No` to limit transliteration to complete field phrase matches. Default `Yes`. | | VerifyCountryList | Used to specify a comma-delimited list of ISO 3166-1 alpha-3 codes of acceptable countries to process. Input records from other countries will return the unprocessed Address Verification Code `U00-U00-P0-000`. The default is to process data from all countries. | | VerifyMatchRules | A list of default match rules specifying how fields can be combined when attempting to generate a verification match. This can be overridden on a per-country basis, and should only be changed if requested by Support staff. | ## Process Options | Server Option | Description | | ------------- | --------------------------------------------------------------- | | LogInput | Record the process input data to the specified debug log file. | | LogOutput | Record the process output data to the specified debug log file. | ## CASS2 Related Server Options | Server Option | Description | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **CassAvcEnable** | `Yes`/`No` (Default: `No`).
The default will Z00-00-00-000 (AVC) and Z (AQI), but computing the report values can be forced. Please note that if returned, these fields may not accurately reflect the changes made in the record during the CASS process. | | **CassUrbFirst** | `Yes`/`No` (Default: `No`).
This specifies the Urbanization location on the address lines output (Puerto Rico only). The default will put the value after the address lines(s) with premise, thoroughfare, and sub-building. | | **CassZipFields** | `Yes`/`No` (Default: `No`).
Populate "Finance" and "AutoZoneIndicator". If these fields are desired, customers will experience a moderate performance degradation (up to 20%). | | **CassCityAbbreviation** | `Yes`/`No` (Default: `No`).
If a Locality name is longer than 13 characters, this option can be used to return the official, short version. Both short and long versions are valid according to CASS. | | **CassFalsePosDir** | `path_to_use`
Allows you to control the directory where the `False` Positive file is created. For example: CassFalsePosDir='C:temp' or CassFalsePosDir='/opt/temp'. | | **CassUseUSPSPreferredCity** | `Yes`/`No` (Default: `No`).
Setting this to `Yes` will return the USPS preferred city name. This server option only applies to on-premises installations. The default behaviour is for this option to be applied at the session level and will apply to all addresses. Use the CassMultiThreadedSettings to turn this server option on and off for individual addresses. | | **CassPreserveAlias** | `Yes`/`No` (Default: `No`).
By default, Verify will convert a thoroughfare alias (as recognised by USPS data) provided in an input address into the official USPS-approved thoroughfare name. Choose ‘Yes’ to preserve the alias and prevent it from being converted. This server option only applies to on-premises installations. The default behaviour is for this option to be applied at the session level and will apply to all addresses. Use the CassMultiThreadedSettings to turn this server option on and off for individual addresses. | | **CassMultiThreadedSettings** | `Yes`/`No` (Default: `No`).
Setting this to ‘Yes’ will enable CassUseUSPSPreferredCity and CassPreserveAlias server options to be applied for individual addresses. | ## SERP Related Server Options | Server Option | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **SerpWesternStyle** | `Yes`/`No` (Default: `No`).

When `Yes`, the output Address/Delivery address lines will have the SubBuilding first, followed by a hyphen, the Premise, and remainder of the address. For example:

Input: APT 200 – 6200 MCKAY AVE, BURNABY BC V5H 4L7 CAN.

Output:

Option '`No`' or blank: 6200 MCKAY AVE APT 200, BURNABY BC V5H 4L7.

Option '`Yes`': 200-6200 MCKAY AVE, BURNABY BC V5H 4L7.

This option only impacts addresses that are SerpStatusEx of 'V' (valid) or 'C' (correctable) | # Address Fields Source: https://docs.loqate.com/field-descriptions/addfields Loqate's address structure is based on the OASIS Extensible Address Language (xAL) version 2.0, adapted to suit a flattened record structure. Some countries have more complex addressing structures than others. As such, the use of individual fields will vary based on the input country and the available reference data. The following fields are recognized, `[in]` designates a field that can be used on input, `[out]` designates a field that may be present on output, and `[in,out]` designates that a field can be used for both input and output. Please Note that the `AdministrativeArea` should be the full name or the postal authority accepted code. For example, `New York` or `NY` in the US, and `VALLE DEL CAUCA` in Colombia (there is no postal abbreviation). ISO-3166 administrative area codes (e.g. `CO-VAC` for `VALLE DEL CAUCA` in Colombia) are not recognized on input and should not be used but can be returned in our output via our enhanced [ISO-3166 dataset](/support/data-enhancement-administrativearea-iso-2-code/) Field descriptions for our geocode and certified products can be accessed from [the main field descriptions menu](/field-descriptions/). ## Primary Address Fields Primary fields (also known as atomic fields) are always populated and verified when appropriate. | Field | Description | | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Address \[in,out]** | This field holds the full address, correctly formatted for mailing in the relevant country, including line breaks specified using the `AddressLineSeparator` option. Do not use `Address` as input when running CASS. The preferred input for CASS is (`Address1` + `Locality` + `AdministrativeArea` + `PostalCode` + `Country`). However, (`Address1` + `Address2` + `Country`) will also work. | | **Address1, Address2, …, Address8 \[in,out]** | These fields can be used to specify input address line data, and on output will contain the correctly formatted address split into individual address lines for mailing in the relevant country. Examples of recommended input are listed below:
- Address lines input: (`Address1`, `Address2`, `Address3` OR `Address`) + `Country`
- Address lines + geographical: `Address1`, `Address2`, `Address3` + `Locality` + `AdministrativeArea` + `PostalCode` + `Country` **Note**: If the input values (Thoroughfare/premise) are entered on separate lines, the user may receive an unexpected outcome as this is not in a recommended input format. Example:
- `Premise` + `Address1` + `Locality` + `Postalcode` + `Country` | | **ID \[in,out]** | Optional. This field will be passed through to the output unchanged. | | **DeliveryAddress \[in,out]** | This field holds the full address minus the `Organization`, `Locality`, `AdministrativeArea` hierarchy and `PostalCode` hierarchy fields, correctly formatted for mailing in the relevant country, including line breaks specified using the `AddressLineSeparator` option. | | **DeliveryAddress1, DeliveryAddress2, …, DeliveryAddress8 \[in,out]** | These fields contain the individual lines contained within the `DeliveryAddress` field. | | **Country \[in]** | This field is used to supply the country name or code (ISO 3166 2-character country code and ISO 3166 3-character country code). | | **CountryName \[out]** | This field holds the ISO 3166 official country name. | | **ISO3166-2 \[out]** | This field holds the ISO 3166 2-character country code. | | **ISO3166-3 \[out]** | This field holds the ISO 3166 3-character country code. | | **ISO3166-N \[out]** | This field holds the ISO 3166 3-digit numeric country code. | | **SuperAdministrativeArea \[in,out]** | This field holds the largest geographic data element within a country. | | **AdministrativeArea \[in,out]** | This field holds the most common geographic data element within a country. For instance, USA State, and Canadian Province. | | **SubAdministrativeArea \[in,out]** | This field holds the smallest geographic data element within a country. For instance, USA County. | | **Locality \[in,out]** | This field holds the most common population center data element within a country. For instance, USA City, Canadian Municipality. | | **DependentLocality \[in,out]** | This field holds a smaller population center data element, dependent on the contents of the `Locality` field. For instance, Turkish Neighborhood. | | **DoubleDependentLocality \[in,out]** | This field holds the smallest population center data element, dependent on both the contents of the `Locality` and `DependentLocality` fields. For instance, UK Village. | | **Thoroughfare \[in,out]** | This field holds the most common street or block data element within a country. For instance, USA Street. | | **DependentThoroughfare \[in,out]** | This field holds the dependent street or block data element within a country. For instance, UK Dependent Street. | | **Building \[in,out]** | This field contains the descriptive name identifying an individual location, should one exist. | | **Premise \[in,out]** | This field contains the alphanumeric code identifying an individual location, should one exist. | | **SubBuilding \[in,out]** | This field contains the secondary identifiers for a particular delivery point. For instance, `FLAT 1` or `SUITE 212`. | | **SubBuildingFloor \[in,out]** | This field contains the parsed floor information within the `SubBuilding` field, and includes the floor label (or type) and a numeric where applicable. For example, `L7` or `Fl 12`. This will be consistently populated for the following countries: Argentina, Australia, China, Denmark, Guernsey, Hong Kong, Isle of Man, Japan, Jersey, Kenya, South Korea, Lithuania, Macao, New Zealand, Portugal, Puerto Rico, Spain, and Taiwan. | | **HasSubPremise \[out]** | As part of the US PDH data an additional field will be returned named `HasSubPremise`. This field, in combination with the AVC code, will articulate whether the premise has any sub premises (a.k.a., SubBuilding) (e.g., apartments). This is particularly useful for customers and partners where accurate sub premise information is critical for ensuring a successful delivery.

The `HasSubPremise` field will return a value of `Yes`, `No`, or blank. Additional information and examples are available on the separate [HasSubPremise page](/field-descriptions/hassubpremise). | | **PostalCode \[in,out]** | This field contains the complete postal code for a particular delivery point, should such detail be able to be determined. | | **PostalCodePrimary \[out]** | This field contains the primary postal code used for a particular country. For instance, USA Zip, Canadian Postcode, Indian PINcode. | | **PostalCodeSecondary \[out]** | This field contains secondary postal code information, if used in a particular country and if such detail is able to be determined and reference data is available. For instance, USA Zip Plus 4. | | **Organization \[in,out]** | This field contains the business name associated with a particular delivery point, should one exist. | | **PostBox \[in,out]** | This field contains the post box for a particular delivery point, should one exist. | | **AddressFormat \[out]** | If Server Option `OutputAddressFormat` is `Yes`, then this field will contain the fields used to construct the `Address` Field. For example, `Organization
DeliveryAddress
Locality AdministrativeArea PostalCode`. The default `
` line breaks can be changed with the `AddressLineSeparator` Server Option. | | **DeliveryAddressFormat \[out]** | If Server Option `OutputAddressFormat` is `Yes`, then this field will contain the fields used to construct the `DeliveryAddress` Field. For example, `Organization
DeliveryAddress
Locality AdministrativeArea PostalCode`. The default `
` line breaks can be changed with the `AddressLineSeparator` Server Option. | | **AVC (Address Verification Code) \[out]** | A response code which includes information associated with the parsing and matching of the address record. Use this to identify the level to which an address has been verified. See [the AVC page](/report-codes/address-verification-code/) for more information. | | **AQI (Address Quality Index) \[out]** | Offers a view of overall address quality (see [the AQI page](/report-codes/address-quality-index/) for more information), but is not used as a metric for deciding whether to accept an address which has been processed via Verify. **Please use the AVC to verify addresses.** | | **Sequence \[out]** | When multiple addresses are included in a single Verify request this counter will show the order of the addresses from the input. For example: `7` represents the 7th address in the input request. | ## Sub-Fields Sub-fields are populated when the level of parsing detail exists for the particular country. Sub-fields are only verified when they are supported by the reference data for the particular country. Therefore they are not guaranteed to be populated or verified in the output. For example, a Sub-field may be populated from the parsed input, but may not be able to be verified. Please check the associated [Field Status](/report-codes/fieldstatus/) to confirm. | Field | Description | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Unmatched \[out]** | This field can hold any information in the input address fields that is unable to be parsed to a particular address field. [Read more about the Unmatched field here](/field-descriptions/unmatched-field/). | | **MatchRuleLabel \[out]** | Loqate Engine uses a set of rules to match the input with the reference data. Each rule is identified by a match rule label. Please refer to the below links for more information regarding the Match Rules.
- [Match Process](/available-processes/match-process/)
- [Match Rule Syntax](/support/match-rules-syntax/) | | **HyphenClass \[out]** | [objfields](/field-descriptions/objfeilds/) | | **Contact \[in,out]** | This field can hold contact name information. | | **Function \[in,out]** | This field can hold function or job title information. | | **Department \[in,out]** | This field can hold organizational department information. | | **AdministrativeAreaName \[out]** | This field holds the name indicator within the `AdministrativeArea` field, should one exist. For example, Taipai where the `AdministrativeArea` is Taipai City. | | **AdministrativeAreaTrailingType \[out]** | This field holds the trailing `AdministrativeArea` type, should one exist. For example, City where the `AdministrativeArea` is Taipai City. | | **AdministrativeAreaType \[out]** | This field holds the `AdministrativeArea` type, should one exist. For example, City where the `AdministrativeArea` is Taipai City. | | **LocalityExtra \[out]** | This field is used to hold information that could be present along with the `Locality`. This information is not considered as part of the Postal authority data but is still necessary for parsing the address in order to obtain a complete delivery address. Available if a sufficient level of parsing detail exists within a particular country. Example: 12 rue de la Gare, 75019 PARIS CEDEX, France. CEDEX will be considered as Locality Extra. | | **LocalitySpecial** | The `LocalitySpecial` field combines both the `Locality` and `LocalityExtra` components, to capture specific locality information that includes essential details for accurate address parsing and delivery. For example, in the address "12 rue de la Gare, 75019 PARIS CEDEX, France," the term "Paris CEDEX" represents the `LocalitySpecial`. It encompasses both the primary locality (Paris) and the additional locality information (CEDEX) that is necessary for a complete and precise delivery address. | | **LocalityName \[out]** | This field holds the name indicator within the `Locality` field, should one exist. For example: Jeju where the `Locality` is Jeju-Si. | | **LocalityType \[out]** | This field holds the type indicator for `Locality`, should one exist. For example: Dist. where the `Locality` is Da'an Dist. | | **LocalityTrailingType \[out]** | This field holds the type indicator for `Locality`, should one exist. For example: Dist. where the `Locality` is Da'an Dist. | | **DependentLocalityName \[out]** | This field holds the name indicator within the `DependentLocality` field, should one exist. For instance, if `DependentLocality` contains `Dong Cheng Qu` `DependentLocalityName` contains `Dong Cheng` if a sufficient level of parsing detail exists for the particular country. | | **DependentLocalityType \[out]** | This field is used to hold the `DependentLocality` indicator within the `DependentLocality` field, should one exist. For instance, if `DependentLocality` contains `Dong Cheng Qu` `DependentLocalityType` contains `Qu` if a sufficient level of parsing detail exists for the particular country. | | **DependentLocalityLeadingType \[out]** | This field holds the leading dependent locality type indicator, should one exist. For example, `Rancheria San Jose Cacahuatepec` where the `DependentLocality` is Ciudad Renacimiento. | | **DoubleDependentLocalityName \[out]** | This field holds the name indicator within the `DoubleDependentLocality` field, should one exist. For instance, if `DoubleDependentLocality` contains `Xin Zhuang Zhen` `DoubleDependentLocalityName` contains `Xin Zhuang` if a sufficient level of parsing detail exists for the particular country. | | **DoubleDependentLocalityType \[out]** | This field is used to hold the `DoubleDependentLocality` indicator within the `DoubleDependentLocality` field, should one exist. For instance, if `DoubleDependentLocality` contains `Xin Zhuang Zhen` `DoubleDependentLocalityType` contains `Zhen` if a sufficient level of parsing detail exists for the particular country. | | **ThoroughfarePreDirection \[out]** | This field holds the prefix directional contained within the `Thoroughfare` field, should one exist. For instance, if `Thoroughfare` contains `N MAIN ST` `ThoroughfarePreDirection` contains `N` if a sufficient level of parsing detail exists for the particular country. | | **ThoroughfareType \[out]** | This field holds the type of thoroughfare should one exist. Examples include Road, Vei, St, Rua, Avenita, Pereulok, 路 | | **ThoroughfareLeadingType \[out]** | This field holds the leading thoroughfare type indicator within the `Thoroughfare` field, should one exist. For instance, if `Thoroughfare` contains `RUE DE LA GARE` `ThoroughfareLeadingType` contains `RUE` if a sufficient level of parsing detail exists for the particular country. | | **ThoroughfareName \[out]** | This field holds the name indicator within the `Thoroughfare` field, should one exist. For instance, if `Thoroughfare` contains `N MAIN ST` `ThoroughfareName` contains `MAIN` if a sufficient level of parsing detail exists for the particular country. | | **ThoroughfareTrailingType \[out]** | This field holds the trailing thoroughfare type indicator within the `Thoroughfare` field, should one exist. For instance, if `Thoroughfare` contains `N MAIN ST` `ThoroughfareTrailingType` contains `ST` if a sufficient level of parsing detail exists for the particular country. | | **ThoroughfarePostDirection \[out]** | This field holds the postfix directional contained within the `Thoroughfare` field, should one exist. For instance, if `Thoroughfare` contains `MAIN ST N` `ThoroughfarePostDirection` contains `N` if a sufficient level of parsing detail exists for the particular country. | | **DependentThoroughfarePreDirection \[out]** | This field holds the prefix directional contained within the `DependentThoroughfare` field, should one exist. For instance, if `DependentThoroughfare` contains `N MAIN ST` `DependentThoroughfarePreDirection` contains `N` if a sufficient level of parsing detail exists for the particular country. | | **DependentThoroughfareLeadingType \[out]** | This field holds the leading thoroughfare type indicator within the `DependentThoroughfare` field, should one exist. For instance, if `DependentThoroughfare` contains `RUE DE LA GARE` `DependentThoroughfareLeadingType` contains `RUE` if a sufficient level of parsing detail exists for the particular country. | | **DependentThoroughfareName \[out]** | This field holds the name indicator within the `DependentThoroughfare` field, should one exist. For instance, if `DependentThoroughfare` contains `N MAIN ST` `DependentThoroughfareName` contains `MAIN` if a sufficient level of parsing detail exists for the particular country. | | **DependentThoroughfareTrailingType \[out]** | This field holds the trailing thoroughfare type indicator within the `DependentThoroughfare` field, should one exist. For instance, if `DependentThoroughfare` contains `N MAIN ST` `DependentThoroughfareTrailingType` contains `ST` if a sufficient level of parsing detail exists for the particular country. | | **DependentThoroughfarePostDirection \[out]** | This field holds the postfix directional contained within the `DependentThoroughfare` field, should one exist. For instance, if `DependentThoroughfare` contains `MAIN ST N` `DependentThoroughfarePostDirection` contains `N` if a sufficient level of parsing detail exists for the particular country. | | **BuildingLeadingType \[out]** | This field holds the leading building type indicator within the `Building` field, should one exist. For instance, if `Building` contains `BLOC C` `BuildingLeadingType` contains `BLOC` if a sufficient level of parsing detail exists for the particular country. | | **BuildingName \[out]** | This field holds the name indicator within the `Building` field, should one exist. For instance, if `Building` contains `WESTMINSTER HOUSE` `BuildingName` contains `WESTMINSTER` if a sufficient level of parsing detail exists for the particular country. | | **BuildingType \[out]** | This field is used to hold the Building indicator within the `Building` field, should one exist. Examples include Place, 城. | | **BuildingTrailingType \[out]** | This field holds the trailing building type indicator within the `Building` field, should one exist. For instance, if `Building` contains `WESTMINSTER HOUSE` `BuildingTrailingType` contains `HOUSE` if a sufficient level of parsing detail exists within a particular country. | | **PremiseType \[out]** | This field contains the leading premise type indicator within the `Premise` field, should one exist. For instance, if `Premise` contains `Plot 7/7A` `PremiseType` contains `Plot` if a sufficient level of parsing detail exists within a particular country. | | **PremiseNumber \[out]** | This field contains the alphanumeric indicator within the `Premise` field, should one exist. For instance, if `Premise` contains `Plot 7/7A` `PremiseNumber` contains `7/7A` if a sufficient level of parsing detail exists within a particular country. | | **PremiseExtra \[out]** | This field is used to hold information that could be present as part of the `Premise` field. This information is not considered as part of the Postal authority data but is still necessary for parsing the address in order to obtain a complete delivery address. Available if a sufficient level of parsing detail exists within a particular country. Example: In French address, the Premise number could be followed by words bis and ter which will be considered as Premise Extra. 25 bis rue Emile Zola, 91190 GIF SUR YVETTE, France. Bis will be considered as `PremiseExtra`. | | **SubBuildingType \[out]** | This field contains the leading sub-building type indicator within the `SubBuilding` field, should one exist. For instance, if `SubBuilding` contains `FLAT 1` `SubBuildingType` contains `FLAT` if a sufficient level of parsing detail exists within a particular country. | | **SubBuildingLeadingType \[out]** | This field contains the sub-building type indicator within the `SubBuilding` field, should one exist. For instance, if `SubBuilding` contains `FLAT 1` `SubBuildingLeadingType` contains `FLAT` if a sufficient level of parsing detail exists within a particular country. | | **SubBuildingNumber \[out]** | This field contains the alphanumeric indicator within the `SubBuilding` field, should one exist. For instance, if `SubBuilding` contains `FLAT 1` `SubBuildingNumber` contains `1` if a sufficient level of parsing detail exists within a particular country. | | **SubBuildingName \[out]** | This field contains the descriptive name within the `SubBuilding` field. For instance, if `SubBuilding` contains `BASEMENT FLAT` `SubBuildingName` contains `BASEMENT FLAT`. | | **SubBuildingBlock \[out]** | This field contains the secondary identifiers for a particular delivery point. For instance – `BLOQUE 7`. | | **SubBuildingDoor \[out]** | This field contains the secondary identifiers for a particular delivery point. For instance `PUERTA D`. | | **SubBuildingStaircase \[out]** | This field contains the secondary identifiers for a particular delivery point. For instance `PUERTA D`. | | **Bolignummer (Norway only) \[out]** | The utility unit number consist of a letter followed by four numbers (Norway/NO/NOR only). Examples include: `H0001`, `L0002`, `U0004`, `K0032`. | | **DeliveryInstallationAreaName (Canada only) \[out]** | The name of a village, town, municipality, city, or metropolitan area that forms part of a Delivery Installation Name (Canada/CA/CAN only). Examples include: Ladysmith, Roxton Pond. | | **DeliveryInstallationType (Canada only) \[out]** | An abbreviation that represents the type of installation (Canada/CA/CAN only). Examples include: STN – Postal Station, PO – Post Office, BDP – Bureau De Poste. | | **DeliveryInstallationQualifierName (Canada only) \[out]** | When more than one delivery installation serves an area described by the Delivery Installation Area Name, the qualifier name uniquely identifies the delivery installation (Canada/CA/CAN only). Examples include: Cap-A-L'aigle, B, St Michel, 32, Bank Hunt Club. | | **RouteType (Canada only) \[out]** | A code that identifies the type of route service (Canada/CA/CAN only). Examples include: RR – Rural Route, SS – Suburban Service. | | **RouteNumber (Canada only) \[out]** | A number that identifies the specific Delivery Mode (Canada/CA/CAN only). Examples include: `22`, `62`, `404`. | | **BranchName (Canada only) \[out]** | Branch name of Department field (Canada/CA/CAN only). Examples include: Agence De Parcs Canada, Fisheries and Oceans, Ottawa District Office. | | **MakaniNumber (United Arab Emirates only) \[out]** | A Makani number is a 10-digit number which gives you the exact location of the entrance of a building (United Arab Emirates/AE/ARE only). For example: `3000595279`. | | **ShortAddressCode (Saudi Arabia only) \[out]** | A short address that consists of four letters followed by four numbers (Saudi Arabia/SA/SAU only). For example: `RGSA3808`. | | **Cluster (Indonesia Only)** | This field refers to a residential grouping commonly used in Indonesian addresses, similar to neighbourhood or resident association information. It helps identify specific housing areas within larger communities and represents local administrative divisions commonly known as RT (Rukun Tetangga) and RW (Rukun Warga). | | **OrganizationName \[out]** | This field contains the name indicator within the `Organization` field, should one exist. For instance, if `Organization` contains `Loqate Inc` `OrganizationName` contains `Loqate` if a sufficient level of parsing detail exists for the particular country. | | **OrganizationType \[out]** | This field contains the type indicator contained within the `Organization` field, should one exist. For instance, if `Organization` contains `Loqate Inc` `OrganizationType` contains `Inc` if a sufficient level of parsing detail exists for the particular country. | | **OrganizationTrailingType \[out]** | This field contains the trailing type indicator contained within the `Organization` field, should one exist. For example: Corp., Gmbh. | | **PostBoxType \[out]** | This field contains the type indicator contained within the `PostBox` field, should one exist. For instance, if `PostBox` contains `PO BOX 1234` `PostBoxType` contains `PO BOX` if a sufficient level of parsing detail exists for the particular country. | | **PostBoxNumber \[out]** | This field contains the alphanumeric indicator within the `PostBox` field, should one exist. For instance, if `PostBox` contains `PO BOX 1234` `PostBoxNumber` contains `1234` if a sufficient level of parsing detail exists for the particular country. | | **BoxBagLobbyName (New Zealand only) \[out]** | Box lobby name or New Zealand Post shop name (New Zealand/NZ/NZL only). Examples include: MAUNGATAPERE POSTCENTRE, NEWMARKET POSTSHOP, MOUNT COOK. | # AMAS Fields Source: https://docs.loqate.com/field-descriptions/amas-fields The table below is the list of AMAS specific output fields. | Field | Definition | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **DPID** | Delivery Point Identifier is a unique 8-digit number which is assigned for every new address to the source address database | | **FloorType** | Type of floor or level | | **FloorNumber** | Floor or level number (including alpha characters) | | **LotNumber** | Allotment number | | **PostBoxNum** | Postal delivery number if the address is a postal delivery type | | **PostBoxNumberPrefix** | Postal delivery number prefix related to the postal delivery number | | **PostBoxNumberSuffix** | Postal delivery number suffix related to the postal delivery number | | **PrimaryPremise** | Thoroughfare number for a property (first number in a property ranged address) | | **PrimaryPremiseSuffix** | Suffix for the thoroughfare number | | **SecondaryPremise** | Second thoroughfare number (only used if the property has a ranged address eg 23-25) | | **SecondaryPremiseSuffix** | Suffix for the second thoroughfare number | | **PreSortZone** | Also known as Barcode Sort Plan (BSP) number. The number of one of 54 individual sort regions around Australia. To qualify for Australia Post's PreSort Letters Service, letters must be sorted based on this number | | **PrintPostZone** | Also known as a PreSort Indicator. To qualify for Australia Post's Print Post Service, letters must be sorted based on this number | | **Barcode** | Standard barcode based on the DPID | | **PrimaryAddressLine** | Primary address line in standardized format | | **SecondaryAddressLine** | Secondary address line in standardized format | ## AMAS Error Code Information For the AMAS process, the `ErrorCode` field lets us determine whether PPM rules have taken place. An `ErrorCode` of `4` indicates that all of the fields were matched correctly (i.e. no error), which means the DPID matches the entire input address and PPM has not been used. If the `ErrorCode` is `5` or `19`, the address is respectively not verified or partially verified at the `SubBuilding` level, and PPM has been used to match to the Primary Point address. If the `ErrorCode` is `20` or `21`, the address is only verified up to `Thoroughfare` or `Locality` respectively, and the output address and DPID both reflect this verification level. Although we cannot determine whether PPM has been used in this case, the output address does not contain information beyond what can be found with the DPID. If the `ErrorCode` is `211` through `216`, at least one field has been changed between the input and the output, likely because of a spelling error or a blank field. We cannot determine whether PPM has been used based on this `ErrorCode` alone, but we can use the corrected output address to fix the input spelling error and get a new `ErrorCode` that allows us to determine whether PPM has been used. The error codes correspond to the following spelling errors: | Error Code | Field Corrected | Description | | ---------- | ---------------------- | ---------------------------------------------- | | `211` | Thoroughfare name | The street name was corrected | | `212` | Locality | The suburb/town name was corrected | | `213` | PostalCode | The postal code was corrected | | `214` | AdministrativeArea | The state/territory was corrected | | `215` | Thoroughfare type | The street type (ST, RD, etc) was corrected | | `216` | Thoroughfare direction | The street direction (N, S, etc) was corrected | # What are ISO2 codes for Administrative Areas? Source: https://docs.loqate.com/field-descriptions/data-enhancement/data-enhancement-administrativearea-iso-2-code **ISO 3166-2** is part of the [ISO 3166](http://en.wikipedia.org/wiki/ISO_3166) standard published by the International Organization for Standardization (ISO), and defines codes for identifying the principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1. The official name of the standard is *Codes for the representation of names of countries and their subdivisions – Part 2: Country subdivision code. It was first published in 1998.* The purpose of ISO 3166-2 is to establish an international standard of short and unique alphanumeric codes to represent the relevant administrative divisions and dependent territories of all countries in a more convenient and less ambiguous form than their full names. Each complete ISO 3166-2 code consists of two parts, separated by a hyphen: * The first part is the code of the country * The second part is a string of up to three alphanumeric characters, which is usually obtained from national sources and stems from coding systems already in use in the country concerned, but may also be developed by the ISO itself. Each complete ISO 3166-2 code can then be used to uniquely identify a country subdivision in a global context. ## Coverage and Data Loqate previously supplied [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) values for administrative areas in the United States, Canada, Germany, Brazil, Colombia, France, and Argentina. From the 2022Q2.1 release onwards, `rd_WW_enh_ISO_ADMIN` file will cover 171 countries in total, which includes: AD, AE, AF, AG, AL, AM, AO, AR, AT, AU, AZ, BD, BE, BF, BG, BI, BJ, BN, BQ, BR, BS, BT, BW, BY, BZ, CA, CG, CH, CI, CL, CN, CO, CR, CU, CV, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ER, ES, ET, FI, FJ, FR, GA, GB\*, GD, GE, GH, GL, GM, GN, GQ, GR, GT, GW, GY, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IR, IS, IT, JM, JO, JP, KE, KG, KH, KM, KN, KP, KR, KW, KZ, LA, LB, LI, LK, LR, LS, LT, LU, LV, LY, MD, ME, MM, MN, MU, MV, MW, MX, MY, MZ, NA, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PT, PY, QA, RO, RS, RU, SA, SB, SC, SD, SE, SH, SK, SM, SN, SO, SR, SS, SV, SY, SZ, TD, TH, TJ, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, YE, ZA, ZM, ZW Using a combination of the `CountryName` and `AdministrativeArea` fields, the Loqate engine will add the ISO 3166-2 code to a field called `AdministrativeAreaISO2`. Each `AdministrativeAreaISO2` value refers to a unique combination of country and administrative area. The value in the `AdministrativeAreaISO2` consists of two parts, separated by a hyphen. The first part is the ISO 3166-1 alpha-2 code of the Country. The second part is multiple letters or numbers representing the `AdministrativeArea`. The Loqate engine will also return a field status for `AdministrativeAreaISO2`. For a valid code the field status will read `fsAdded`. Note that for GB, the ISO code returned is based on Royal Mail former postal county that they have declared static. Because of that, North Northamptonshire and West Northamptonshire will return the `AdministrativeArea` of Northamptonshire with code `GB-NTH`. The absence of comprehensive ISO 3166‑2 values is expected, as the default Loqate AdministrativeArea for GB is based on former postal counties, which do not have full or official ISO 3166‑2 coverage. ISO 3166‑2 codes are only defined for recognised official administrative subdivisions, not for postal constructs (see page 70 of the Royal Mail Programmer’s Guide: [https://www.poweredbypaf.com/wp-content/uploads/2024/11/Latest-Programmers\_guide\_Edition-7-Version-6-2.pdf](https://www.poweredbypaf.com/wp-content/uploads/2024/11/Latest-Programmers_guide_Edition-7-Version-6-2.pdf)). # Data Enhancement: Sample API Call Source: https://docs.loqate.com/field-descriptions/data-enhancement/data-enhancement-sample-api-call ## Overview `Enhance` is a follow-up process that can be called to append enhanced data to a verified address. The process will call up different enhancement data packs depending on how the API call is setup. The example below shows a Java API call appending the ISO 3166-2 field to Loqate's business address. ## Sample Java API Call ```java theme={null} import com.loqate.*; import java.io.*; import java.net.*; public class lqtSample { static { System.loadLibrary("lqtjava"); } public static void main(String args[]) { // Loqate objects lqtServer srv = lqtServer.create(); lqtInputRecord rec = lqtInputRecord.create(); lqtProcessResult res = lqtProcessResult.create(); // Initialize the server if (args.length > 0) srv.init(args[0]); else srv.init("./data"); // Create the process list lqtProcessList lst = lqtProcessList.create(); lqtProcessOptions opts = lqtProcessOptions.create(); lst.add("Verify", opts); lst.add("Geocode", opts); lst.add("Enhance", opts); try { // Open the Loqate session int session = srv.open(); // Process data try { // Set the relevant Loqate values rec.set("Address1", "999 baker way ste 320 san mateo ca 94404 usa"); //rec.set("Address2", "usa"); // Process the record srv.process(rec, lst, res); // Output the result System.out.println("Found " + res.getCount() + " records"); for (int i = 0; i < res.getCount(); i++) { System.out.println("Output record " + i); for (int j = 0; j < res.getFieldCount(i); j++) { System.out.println(res.getFieldName(i, j) + " : " + res.getField(i, j)); } } System.out.flush(); } catch (Exception e) { System.out.println("Exception: " + e); } // Close the session srv.close(session); } catch (Exception e) { System.out.println("Exception: " + e); } // Destroy the process list lqtProcessList.destroy(lst); lqtProcessOptions.destroy(opts); // Tidy up srv.shutdown(); lqtInputRecord.destroy(rec); lqtProcessResult.destroy(res); lqtServer.destroy(srv); } } ``` ## Output ```properties theme={null} AQI : A AVC : V55-I55-P7-100 Address : 999 Baker Way Ste 320\
San Mateo CA 94404-1566 Address1 : 999 Baker Way Ste 320 Address2 : San Mateo CA 94404-1566 AdministrativeArea : CA # Census output field below AdministrativeAreaISO2 : US-CA # ISO-2 Administrative Area code CensusClassCode : C1 CensusCode : 68252 CensusIndicator : Locality GNISFeatureID : 2411800 CountryName : United States DeliveryAddress : 999 Baker Way Ste 320 DeliveryAddress1 : 999 Baker Way Ste 320 GeoAccuracy : P4 GeoDistance : 0.0 ISO3166-2 : US ISO3166-3 : USA ISO3166-N : 840 Latitude : 37.560210 Locality : San Mateo Longitude : -122.285640 MatchRuleLabel : 1 PostalCode : 94404-1566 PostalCodePrimary : 94404 PostalCodeSecondary : 1566 Premise : 999 PremiseNumber : 999 SubAdministrativeArea : San Mateo SubBuilding : Ste 320 SubBuildingLeadingType : Ste SubBuildingNumber : 320 Thoroughfare : Baker Way Verify|Country|Parse|Lexicon:TABLE=lx_US3|RefLex:TABLE=rd_US_vfy;POSTCODECHECK=Yes;POSTCODEFIELD=PostalCodeIndex|Signal:MATCHTYPES=Address ``` # US Census Data Fields Source: https://docs.loqate.com/field-descriptions/data-enhancement/data-enhancement-us-census-data-fields US Census Data may be appended to one of the following three fields: * `AdministrativeArea` * `SubAdministrativeArea` * `Locality` The data takes the form of multiple value fields, which are outlined in the next section. For each value field, there is a corresponding status field named `ValueFieldName_Status` which indicates whether a value was returned for that value field or not. If a value is returned the status field will contain `fsAdded`. ## Value Fields ### CensusIndicator This field indicates the address level for which the census data was returned. Since CENSUS data currently only covers the United States, only 3 levels of data will be shown: `Locality`, `SubAdministrativeArea`, and `AdministrativeArea`. In the best case scenario the value will be `Locality`, the most accurate address level CENSUS data covers. If input `Locality` is not found in CENSUS data, it may return `SubAdministrativeArea` indicating it can only find CENSUS data for `SubAdministrativeArea` level. ### CensusCode Census Code defines that the Census data is referencing the Census Codes, previously known as the Federal Information Processing Standard (FIPS) code. Census Codes are used as the government codes currently published for Admin Places in the U.S. This data is also published as Census data for completeness. Census Codes and GNIS Feature IDs are published for Administrative Areas (Admin Level 1-4 in the U.S.) and all Zones with official government codes. ### CensusClassCode Census Class Code defines the census classification of a place. Census Class Code corresponding to the FIPS 55-3 standard. Census Class Codes are alphanumeric and defined at [http://geonames.usgs.gov/pls/gnispublic](http://geonames.usgs.gov/pls/gnispublic). Census Class Codes are published only for level 3 and 4 Administrative Areas and Zones. An example would be: `C1`: Identifies an active incorporated place that is not also recognized as an Alaska Native Village statistical area, and does not also serve as a primary county division; that is, it is included in and is part of a primary county division. For example, the city of Hammond, Indiana is within and part of North township; the city of Austin, Texas is within and part of several census county divisions in several counties; Hammond and Austin are coded `C1`. ### GNISFeatureID GNIS Feature ID defines that the Census data is referencing the Geographic Names Information System (GNIS) Feature ID. GNIS Feature IDs are similar to Census Codes. GNIS includes geographic names for all known places, features, and areas in the United States that are identified by a proper name. Census Codes defined for level 4 Administrative Areas and Zones are being phased out by the U.S. government and replaced by GNIS Feature IDs. However, GNIS Feature IDs are an addition to and not a replacement of Census Codes. New places only get a GNIS Feature ID assigned. For new places the government code publishes the GNIS feature ID. Census Codes and GNIS Feature IDs are published for Administrative Areas (Admin Level 1-4 in the U.S.) and all Zones with official government codes. ### CBSAMetropolitanStatisticalArea CBSA Metropolitan Statistical Area defines that the Census data is referencing the Core Based Statistical Area (CBSA). CBSA is a collective term for both metro and micro areas. A metro area contains a core urban area of 50,000 or more population, and a micro area contains an urban core of at least 10,000 (but less than 50,000) population. Each metro or micro area consists of one or more counties and includes the counties containing the core urban area, as well as any adjacent counties that have a high degree of social and economic integration with the urban core (as measured by commuting to work). \*CBSA Metropolitan or Micropolitan areas can span multiple Counties. There is one CBSA that defines a partial county. St. Louis, MO-IL Metropolitan Statistical Area only includes the Sullivan City part of Crawford County, MO. For this specific case the complete Crawford County are published with the CBSA code (`41180`) for St. Louis, MO-IL. ### CBSAMicropolitanStatisticalArea CBSA Micropolitan Statistical Area. See definition above. ### NECTAMetropolitanStatisticalArea NECTA Metropolitan Statistical Area defines a set of geographic areas that are defined using cities and towns in the six New England states. The New England City and Town Areas (NECTAs) are defined using the same criteria as Metropolitan and Micropolitan Statistical Areas and are identified as either Metropolitan or Micropolitan. A metro area contains a core urban area of 50,000 or more population, and a micro area contains an urban core of at least 10,000 (but less than 50,000) population. NECTAs are published for one or more cities or towns where applicable. ### NECTAMicropolitanStatisticalArea NECTA Micropolitan Statistical Area. See definition above. ### MetropolitanDivision Metropolitan Division defines that the Census data is referring to a county or group of closely tied contiguous counties that serve as a distinct employment region within a metropolitan statistical area that has a population core of at least 2.5 million. While a Metropolitan Division is a subdivision of a larger metropolitan statistical area, it often functions as a distinct social, economic, and cultural area within a larger region. ### NECTADivision NECTA Division defines NECTAs (see definition above) containing a single core with a population of at least 2.5 million that are subdivided to form smaller groupings of cities and towns referred to as NECTA Divisions. [Learn more about other address enhancement datasets](/field-descriptions/data-enhancement/) # GB Enhancement Data Fields Source: https://docs.loqate.com/field-descriptions/data-enhancement/gb-enhancement-data-fields **The following fields are sourced through the United Kingdom Postal Address File (PAF) and the OS Open UPRN data source, and provide further intelligence on each verified address record.** ## UDPRNKey The Royal Mail UDPRN, or Unique Delivery Point Reference Number, is an eight-digit numeric key that is unique to every delivery point record in the PAF. There are some cases where `AddressKeys` or `OrganisationKeys` will change or be re-used, so the UDPRN key is a more permanent reference to a given delivery point. ## UPRN The Unique Property Reference Number (UPRN) is the twelve-digit Ordnance Survey's unique record ID for a property and is a persistent ID for a property. ## ParentUPRN The Parent UPRN is a twelve-digit UPRN of the shell or owning building of a Multiple Residence (flat, unit or apartment). Note that this is inferred from the relationships of an Multi Residence with a PAF parent address record. ## OwningUDPRN The Owning UDPRN is an eight-digit UDPRN key of the shell or owning PAF building record of a Multiple Residence (flat, unit or apartment). For example, if "Ground Floor Flat, Princes House" is a Multiple Residence record, then "Princes House" would be its owning building. ## UMRRN The Unique Multiple Residence Reference Number (UMRRN) is an eight-digit numeric key that is unique to every Multiple Residence (MR). ## ResidentialCommercialFlag A flag indicating if the address is known to be residential or commercial. Values are `R` (residential), `C` (commercial), or blank (unknown). ## DPS The Delivery Point Suffix (DPS) is used with a postcode to generate a machine-readable barcode (RM4SCC), which then serves as a unique reference to an active property or delivery point. It is made up of one number (1-9) and one character (A-T), and is assigned by Royal Mail. It is possible that an address is not assigned a DPS value, in which case a default value of `9U` or `9Z` is used. `1A` is also reserved for postcodes that have `PostCodeType = L` (Large User). **Example:** 16 St. Alphonsus Road, London * Postcode: `SW4 7AS` * DPS: `1B` * Sample RM4SCC: (Loqate does not generate a barcode) ## PostcodeType This can be one of two values, below. This value can also be empty (not assigned). ### Large User Postcode (L) These are assigned to one single address either due to the large volume of mail received at that address, or because a PO Box has been set up. ### Small User Postcode (S) Describes a range of standard delivery points. On average, a Small User Postcode will serve between 15-20 properties, but may range from 1 to 100+ delivery points. ## AddressKey Every address in the Royal Mail Postal Address File (PAF) is assigned an 8-digit value that serves as a persistent reference to a building or delivery point, even when there are changes to a postcode. ## OrganisationKey Each Organization that is added to PAF is assigned an 8-digit number that serves as a unique delivery point when used alongside the `AddressKey` and `PostcodeType`. This is useful to identify small businesses that share an address (the address will appear multiple times in the PAF). For residential addresses, `OrganisationKey` is set to `0`. ## FormerPostalCounty Default value for `AdministrativeArea`, or County, in the United Kingdom. Defined and supplied by Royal Mail. These values were used prior to the postcode system introduced in the 1970s to differentiate `Locality` names that were the same, or similar. E.g. Avon This field is assigned as the `AdministrativeArea` default as it remains static and provides a consistent geographic boundary. ## AdministrativeCounty Alternative value for `AdministrativeArea`, or County, in the United Kingdom. Defined and supplied by Royal Mail. This is the Unitary Authority name (where one is present), and provided by the Office for National Statistics. This field can change more frequently due to administrative changes in the respective area. E.g. "Bristol, City Of" ## Traditional County Alternative value for `AdministrativeArea`, or County, in the United Kingdom. Defined and supplied by Royal Mail. These values date from the 1800s and were assigned by the Association of British Counties. E.g. "Gloucestershire" [Learn more about other address enhancement datasets](/field-descriptions/data-enhancement/) # Enhancement Datasets Source: https://docs.loqate.com/field-descriptions/data-enhancement/overview Since 2015Q2.0 Loqate has been adding data enhancement capabilities to its product suite. The enrichment process allows a user to append non-address information (metadata) to address fields in the final output of the Loqate engine. That information is retrieved from Loqate-produced enhancement data packs through the `Enhance` option. This process will take the output from a Verify, Search, or Geocode process and append enhanced data to the qualified fields. ## Available Enhancement Packs The list of currently available enhancement packs is the following: *More data enhancement packs will become available over time* ## Licensing The data sets available at the present time are not included automatically with every license, but can be obtained by requesting them from your account manager. Once your account manager has updated your license with access to specific enhancement data packs, they will be available for download. Please note that the enhancement data packs will require the country data pack for the specific country for which you attempt to enhance data. For example, the U.S. Census data pack will not function without the standard U.S. Verify or Geocode packs in your license, and as such will not be distributed to customers who have not licensed the required data packs. ## Installation The enhancement data packs can be installed with the same methods as all other data packs. The best way is to execute the Install Manager and install the enhancement packs in the data folder that contains all other Loqate data packs. ## Execution An example of an Enhance process call and its output can be found here: * [Sample Java API Call](/field-descriptions/data-enhancement/data-enhancement-sample-api-call/) # Residential/Commercial Flag Source: https://docs.loqate.com/field-descriptions/data-enhancement/residential-commercial-flag We have this flag available for these countries: Australia, Belgium, Brazil, Canada, Netherlands, Spain, United Kingdom and the USA. We will update this page when we add this flag for more countries. The `ResComFlag` field can have the following values: * **Res:** Residential * **Com:** Commercial * **R/C:** Mixed use residential/commercial. Please note that this is not available in US data * **Unk:** Unknown Due to country certification requirements, the flag will not be valid for both Australia AMAS certified addresses and Canda SERP certified addresses (i.e., when you run Verify using “Certify”:true). For USA CASS certified addresses, you can safely use the CASS provided ResidentialDelivery flag. # Time Zone Enhancement Dataset Source: https://docs.loqate.com/field-descriptions/data-enhancement/timezone ## What are Time Zones? Time Zone refers to the local time of a region or a country. The local time within a time zone is defined by its offset (difference) from Coordinated Universal Time (UTC), the world's time standard, ranging from UTC-12:00 to UTC+14:00. Some countries or regions use Daylight Savings Time (DST) for part of the year during spring and summer. During DST, our clocks are forwarded an hour, so daylight ends at a later time of the day. ## Coverage and Data Loqate provides time zone information for worldwide countries. Most countries have a single time zone, there are 23 countries with at least two time zones, including Antarctica, Australia, Brazil, Canada, The Democratic Republic of the Congo, Ecuador, French Polynesia, Greenland, Indonesia, Kazakhstan, Kiribati, Mexico, Federated States of Micronesia, Mongolia, New Zealand, Papua New Guinea, Portugal, Russian Federation, Spain, Ukraine, United States Minor Outlying Islands, and United States. For countries with single time zone, Loqate engine will add the time zone fields using `CountryName` field. Whereas for countries with multiple time zones, Loqate will add the time zone fields using a combination of `CountryName` and Geographical fields – (`SuperAdministrativeArea` / `AdministrativeArea` / `SubAdministrativeArea` / `Locality` / or the combination of all of them). The new Time Zone enhanced data is available by using the `Enhance` option on the address verify requests. The following additional fields will be returned with the other address verification fields: ## Value Fields ### TimeZone\_UTC UTC defines the Coordinated Universal Time. **Example:** 2869 S County Road 210, Knox IN 46534-7969, USA * Returned UTC value: `-05:00` ### TimeZone\_DST DST defines the Daylight Saving Time. **Example:** 2869 S County Road 210, Knox IN 46534-7969, USA * Returned DST value: `-06:00` ### TimeZone\_Name This field is available with 2022 Q1.1 Minor release. For more information about accessing or using the Time Zone data please contact your account manager or support. # US Census Plus Data Fields Source: https://docs.loqate.com/field-descriptions/data-enhancement/us-census-data-enhancement US Census Plus Data may be appended to one or more of the following fields: * `AdministrativeArea` * `SubAdministrativeArea` * `Locality` * `Thoroughfare` * `Premise` This data comes from the US Census Tiger File and will provide multiple value fields which are outlined in the next section. For each value field, there is a corresponding status field named `ValueFieldName_Status` which indicates whether a value was returned for that value field or not. If a value is returned the status field will contain `fsAdded`. Please note it is important that when you use the new Census Plus data set you set the server option: `ReferenceDatasetCacheSize=15` This is due to the increased volume of data files in use as part of the Census Plus enhanced dataset. Please also note as a result of the increased size of this dataset we recommend an increase of 5GB of memory is allocated to your existing integration. ## Value Fields ### BlockCode `BlockCode` defines the census data that represent the smallest geographic unit used by the US Census Bureau. Blocks may be bounded by visible features such as roads/highways, rivers and other natural features, railroad tracks and non-visible features such as political boundaries of a city/town/county or property lines and school district. Blocks typically have a 4-digit value. In Loqate, this value field is appended to `Thoroughfare` and `Premise` field. ### BlockGroupCode `BlockGroupCode` defines the census data that represent the group of Blocks. `BlockGroupCode` typically have a 1-digit value, and it is also represented in the first digit value in `BlockCode` field value. In Loqate, this value field is appended to `Thoroughfare` and `Premise` field. ### CBSACode `CBSACode` defines that the Census data is referencing the Core-Based Statistical Area (CBSA), in typically 5-digit value. CBSA is a collective term for both metro and micro areas. A metro area contains a core urban area of 50,000 or more population, and a micro area contains an urban core of at least 10,000 (but less than 50,000) population. Each metro or micro area consists of one or more counties and includes the counties containing the core urban area, as well as any adjacent counties that have a high degree of social and economic integration with the urban core (as measured by commuting to work). CBSAs defined according to the population standards above were applied since the Census 2000 data, that was announced by OMB (US Office of Management and Budget) in June 2003. These standards are used to replace the definitions of metropolitan areas (MSA) that were defined in 1990. ### CBSAName `CBSAName` refers to the official name given to the CBSAs which complements the `CBSACode` field value as defined above. For definition of CBSA, please refer to the `CBSACode` field definition above. ### CensusCode `CensusCode` defines that the Census data is referencing the Census Codes, previously known as the Federal Information Processing Standard (FIPS) code. Unlike its previous FIPS code value, Census Codes are currently used as the government code to represent Admin Places in the U.S. Census Codes are published for Administrative Areas (Admin Level 1-4 in the U.S.) and all Zones with official government codes. ### CensusClassCode `CensusClassCode` defines the census classification of a place. Census Class Code corresponding to the FIPS 55-3 standard. Census Class Codes are alphanumeric and can be referred at [https://www.census.gov/library/reference/code-lists/class-codes.html](https://www.census.gov/library/reference/code-lists/class-codes.html). Census Class Codes are published only for level 3 and 4 Administrative Areas and Zones. An example would be: `C1`: Identifies an active incorporated place that is not also recognized as an Alaska Native Village statistical area and does not also serve as a primary county division; that is, it is included in and is part of a primary county division. For example, the city of Hammond, Indiana is within and part of North township; the city of Austin, Texas is within and part of several census county divisions in several counties; Hammond and Austin are coded `C1`. ### CensusIndicator This field indicates the address level for which the census data was returned. In Census Plus, this field will show the value `Premise`, the most accurate address level in Census Plus data, when there is Premise level match found. Otherwise, the value field would not be visible. ### CountyCode The primary legal divisions of most states are termed counties. While not all states have them or call them counties, the census bureau will assign one for statistical purposes. These are three-character numeric codes that are unique within each state. ### GNISFeatureID `GNISFeatureID` defines the census data that is referencing the Geographic Names Information System (GNIS) Feature ID. GNIS Feature IDs are similar to Census Codes. GNIS includes geographic names for all known places, features, and areas in the United States that are identified by a proper name. Census Codes defined for level 4 Administrative Areas and Zones are being phased out by the U.S. government and replaced by GNIS Feature IDs. However, GNIS Feature IDs are an addition to and not a replacement of Census Codes. New places only get a GNIS Feature ID assigned. For new places the government code publishes the GNIS feature ID. Census Codes and GNIS Feature IDs are published for Administrative Areas (Admin Level 1-4 in the U.S.) and all Zones with official government codes. ### MetroDivisionCode `MetroDivisionCode` (Metropolitan Division Code) defines the census data that is referring to a county or group of closely tied contiguous counties that serve as a distinct employment region within a metropolitan statistical area that has a population core of at least 2.5 million. While a Metropolitan Division is a subdivision of a larger metropolitan statistical area, it often functions as a distinct social, economic, and cultural area within a larger region. Metropolitan Division Code is typically represented in 5-digit value. ### MetroDivisionName `MetroDivisionName` refers to the official name given to the Metropolitan Division which complements the `MetroDivisionCode` field value as defined above. For definition of Metropolitan Division, please refer to the `MetroDivisionCode` field definition above. ### NECTACode `NECTACode` refers to a set of geographic areas that are defined using cities and towns in the six New England states, in typically 5-digit value. The New England City and Town Areas (NECTAs) are defined using the same criteria as Metropolitan and Micropolitan Statistical Areas and are identified as either Metropolitan or Micropolitan. A metro area contains a core urban area of 50,000 or more population, and a micro area contains an urban core of at least 10,000 (but less than 50,000) population. NECTAs are published for one or more cities or towns where applicable. ### NECTAName `NECTAName` refers to the official name given to the NECTAs which complements the `NECTACode` field value as defined above. For definition of NECTA, please refer to the `NECTACode` field definition above. ### NECTADivisionCode NECTA Division defines NECTAs (see definition under `NECTACode` field above) containing a single core with a population of at least 2.5 million that are subdivided to form smaller groupings of cities and towns referred to as NECTA Divisions. `NECTADivisionCode` is typically represented in a 5-digit value. ### NECTADivisionName `NECTADivisionName` refers to the official name given to the NECTA Divisions which complements the `NECTADivisionCode` field value as defined above. For definition of NECTA Division, please refer to the `NECTADivisionCode` field definition above. ### OldMSACode `OldMSACode` represents an obsolete value of MSA (metropolitan areas) that were defined by the OMB in 1990. With the introduction of CBSA definitions (see `CBSACode` field definition above), these MSA codes are replaced with the CBSA codes and names and not updated by the OMB since 1990. Therefore, the typical 4-digit value of `OldMSACode` will remain static in Census Plus product. ### OldMSAName `OldMSAName` refers to the official name given to the MSA (metropolitan areas) which complements the `OldMSACode` field value as defined above. For definition of MSA, please refer to the `OldMSACode` field definition above. ### StateCode `StateCode` refers to the census data that defines the official geographic (FIPS) code given to a US state. This field is a supplementary field given as part of Census Plus data. It can be used to complement the field value of `CensusCode`, in which when appended (in the format of `StateCode-CensusCode`) provides the old `CensusCode` value which represented the FIPS code. See `CensusCode` field value above for the current definition. ### TractCode `TractCode` represents the census data that defines geographic entities within counties, where each `TractCode` is typically a 6-digit code (including any leading zeros, and also two trailing zeros in the many cases in which the basic tract code has no suffix). A census `TractCode` may not be used more than once in a single county, but it may be used again in a different county in the same state or in a county of a different state. In Loqate, this value field is appended to `Thoroughfare` and `Premise` field. # Geocode Fields Source: https://docs.loqate.com/field-descriptions/geocode-fields [Click here](/support/geocode-accuracy-codes-demystified/) for more information on the geocode report fields Loqate provides. | Field | Description | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Latitude \[out]** | This field holds the WGS 84 latitude in decimal degrees format. | | **Longitude \[out]** | This field holds the WGS 84 longitude in decimal degrees format. | | **GeoAccuracy \[out]** | This field holds the [GeoAccuracy](/report-codes/geoaccuracy-code/) code. | | **GeoDistance \[out]** | This field holds the radius of accuracy in meters, giving an indication of the likely maximum distance between the given geocode and the physical location. Please note that this field is derived from and therefore dependent on the accuracy and coverage of the underlying reference data. | # HasSubPremise Source: https://docs.loqate.com/field-descriptions/hassubpremise [← Back to Address Fields](/field-descriptions/addfields) This page covers the logic and example scenarios for the `HasSubPremise` field, which is available in US PDH data. For the full set of address fields, see [Address Fields](/field-descriptions/addfields). ## Field values | Value | Meaning | | ----- | ------------------------------------------------------------------------------------------------------------------------ | | `Yes` | The verified premise contains one or more sub premises (for example, apartments or suites). | | `No` | The verified record is itself a sub premise, or the verified premise contains no sub premises. | | blank | No sub premise information is available (typically when the address was only verified to thoroughfare or a lower level). | ## How `HasSubPremise` interacts with AVC The value of `HasSubPremise` should always be interpreted alongside the [AVC code](/field-descriptions/addfields). The table below summarises the common combinations. | AVC | Verification level | Typical `HasSubPremise` | Interpretation | | ---- | --------------------------------------- | ----------------------- | -------------------------------------------------------------------------- | | `V4` | Verified to premise level | `Yes` | Premise verified and contains sub premises. | | `V4` | Verified to premise level | `No` | Premise verified and contains no sub premises. | | `V5` | Verified to sub premise level | `No` | Record is itself a sub premise, so it cannot contain further sub premises. | | `A5` | Ambiguous at sub premise level | `No` | Sub premise level record; no further sub premises to flag. | | `V3` | Verified to thoroughfare (street) level | blank | No sub premise information available. | ## Scenarios The following scenarios illustrate how the `HasSubPremise` flag behaves for different verification outcomes. ### Scenario 1: Verified premise level property that contains sub premises | Field | Value | | ---------------- | -------------------------------------- | | `HasSubPremise` | `Yes` | | `AVC` | `V4` | | Verified address | `999 Baker Way San Mateo CA 94404 USA` | The property has been verified to premise level, so the AVC is `V4`. It also contains one or more sub premises, so `HasSubPremise` is set to `Yes`. ### Scenario 2: Verified sub premise level property | Field | Value | | ---------------- | -------------------------------------------- | | `HasSubPremise` | `No` | | `AVC` | `V5` | | Verified address | `999 Baker Way Ste 1 San Mateo CA 94404 USA` | The property has been verified as a sub premise, so the AVC is `V5`. A sub premise cannot itself contain further sub premises, so `HasSubPremise` is set to `No`. ### Scenario 3: Verified premise level property with incorrect sub premise data | Field | Value | | ---------------- | --------------------------------------------- | | `HasSubPremise` | `Yes` | | `AVC` | `V4` | | Verified address | `999 Baker Way Ste 21 San Mateo CA 94404 USA` | The property has been verified to premise level (AVC `V4`) because the supplied sub premise information was incorrect. The premise does contain sub premises, so `HasSubPremise` is set to `Yes`. ### Scenario 4: Verified premise level property with no sub premises | Field | Value | | ---------------- | -------------------------------------------------- | | `HasSubPremise` | `No` | | `AVC` | `V4` | | Verified address | `121 Private Road 3697 Paradise TX 76073-4800 USA` | The property has been verified to premise level (AVC `V4`) and contains no sub premises, so `HasSubPremise` is set to `No`. ### Scenario 5: Ambiguous sub premise level property | Field | Value | | ---------------- | ----------------------------------------------- | | `HasSubPremise` | `No` | | `AVC` | `A5` | | Verified address | `1 Chestnut St Ste 3Y Nashua NH 03060-9306 USA` | The AVC code of `A5` means there is more than one close reference data match at sub premise level. Because this is a sub premise level record, the sub premise does not contain further sub premises, so `HasSubPremise` is set to `No`. ### Scenario 6: No sub premise information | Field | Value | | ---------------- | --------------------------------------- | | `HasSubPremise` | blank | | `AVC` | `V3` | | Verified address | `8055 veterans blvd redwoodcity ca usa` | The property was only verified to the thoroughfare (street) level, so no sub premise information is available and `HasSubPremise` is returned blank. # Field Descriptions Source: https://docs.loqate.com/field-descriptions/introduction ## Primary Data Fields ## Server & Process Fields ## Certified Product Fields Documentation for [report codes can be found here](/report-codes/) # Process Fields Source: https://docs.loqate.com/field-descriptions/objfeilds Non-address fields that are either generated by the engine during processing or referenced from the country-specific configuration files are described below. These fields are returned alongside the Address and Report fields. Field descriptions for all processes can be accessed from [the main field descriptions menu](/field-descriptions/). | Field | Description | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **MatchRuleLabel \[out]** | Loqate Engine uses a set of rules to match the input with the reference data. Each rule is identified by a match rule label. Please refer to the below links for more information regarding the Match Rules.
- [Match Process](/available-processes/match-process/)
- [Match Rule Syntax](/support/match-rules-syntax/)

Possible values include:
- `rlh` (Reflex Hash)
- `rlfnpq` (Reflex filter, populate quick)
- `rlfnp` (Normal Reflex filter and populate)
- `rlhng` (Normal Reflex filter and populate with HashNG)
- `1`, `1a`, `1ab`, …, `6` (Verify Match Rule name)
- `1`, `2`, `3`, … (Reference Tool results)

The `MatchRuleLabel` is mainly used for debugging and troubleshooting on case queries and issues. Customers are not expected to make use of this field within their integrations. | | **DuplicateInfo \[out]** | A single string indicating what is being removed from the original input (when `DuplicateHandlingFlag` is used). | | **HyphenClass \[out]** | A code of `A`, `B`, or `C` that identifies how a hyphen in a premise will be handled. | | **\_L \[out]** | A string providing an audit trail of parse, match, and formatting tools and options. Used only for debugging and troubleshooting. | # processStatus Source: https://docs.loqate.com/field-descriptions/processstatus | Code | Status | Description | | ---- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | `0` | `psOK` | The command completed normally. The accuracy score must be examined to determine result accuracy. | | `1` | `psException` | An exception occurred during processing, normally as a result of malformed input data. | | `2` | `psServerUninitialized` | The command could not be completed as the server has not yet been initialized. | | `3` | `psInvalidInputRecord` | The input record contains invalid data, often due to the supply of non-UTF8/Unicode data. | | `4` | `psError` | An error has been reported by loqate process, use `getLastError()` function in `lqtProcessResult` object to get error description. | # SERP Fields Source: https://docs.loqate.com/field-descriptions/serp-fields The table below displays the SERP verification codes currently available in the Loqate API. | Field | Definition | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **SerpStatusEx** | `V` (Valid) `C` (Correctable) : Correctable fields will have been corrected to their right values in the output. `N` (Invalid) | | **Questionable** | `QR` (for "Questionable-Rural") `QU` (for "Questionable-Urban") Empty - It means that the address is not questionable. | | **Result** | `VALID` for valid addresses. Otherwise, internal error code. | | **GeneralDelivery** | This field is available when adding "SERP" to the Loqate engine. It identifies a General Delivery type address – Example value: `GD` | | **DeliveryInstallation** | This field is available when adding "SERP" to the Loqate engine. It contains the Station Information to direct mail to the proper postal installation for non-civic addresses. Example value: `STN A` | | **Route** | This field is available when adding "SERP" to the Loqate engine. It identifies a Route Address, such as Rural Route, Military Route. Example value: `RR 6` | | **AdditionalContent** | This field is available when adding "SERP" to the Loqate engine. Sometimes a site specification and compartment is assigned for delivery to a rural address that does not have a civic address. Example value: `SITE 6 COMP 10` | ## Notes For output field `RESULT`, it will either be `VALID`, or an address classification and series of three character codes indicating the status of individual address components. Each code will be a two-digit numeric that identify the address component plus one character status indicator. There can be many of these three character codes. For example a `RESULT` of `C17M` indicates: * `C` = Invalid Correctable Address * `17M` = The Suite Identifier is missing Another example, a `RESULT` of `N10I11I62M` indicates: * `N` = Invalid Non-Correctable Address * `10I` = Complete street information is Inconsistent/Incorrect * `11I` = Civic Number is Inconsistent/Incorrect * `62M` = Province is Missing Here are the classification, address components, and address components status: ### Address Classification | Code | Description | | ------- | ------------------------------- | | `VALID` | Valid address | | `C` | Invalid correctable address | | `N` | Invalid Non-Correctable Address | | `I` | Invalid Address | | `O` | Optional (correctable) | | `Q` | Questionable | ### Address Components | Code | Component | | ---- | ------------------------------------------------ | | `00` | Complete Address | | `01` | Addressee and/or Additional Delivery Information | | `10` | Complete Street Information | | `11` | Civic number | | `12` | Civic number suffix | | `13` | Street name | | `14` | Street type | | `15` | Street direction | | `16` | Suite keyword | | `17` | Suite identifier | | `19` | Delivery Information | | `20` | Complete Route Service Information | | `22` | Route Service keyword | | `24` | Route Service identifier | | `30` | Complete PO Box/Bag Information | | `32` | PO Box/Bag keyword | | `34` | PO Box/Bag identifier | | `40` | Complete General Delivery Information | | `42` | General Delivery keyword | | `50` | Complete Delivery Installation Information | | `52` | Delivery Installation Area Name | | `54` | Delivery Installation Type | | `56` | Delivery Installation Qualifier | | `60` | Municipality | | `62` | Province | | `64` | Postal Code | | `81` | Typo | | `98` | Too Many Errors | | `99` | Correction does not fit | ### Component Status | Code | Description | | ------- | ---------------------- | | `M` | Missing | | `I` | Inconsistent/Incorrect | | `T` | Typo | | (blank) | No status | # serverStatus Source: https://docs.loqate.com/field-descriptions/serverStatus | Code | Status | Description | | ---- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | `0` | `ssOK` | The library has been successfully initialized and ready to accept requests. | | `1` | `ssUninitialized` | The library has not yet been successfully initialized. | | `2` | `ssInvalidDataDirectory` | The supplied data directory does not contain a Global Knowledge Repository. | | `3` | `ssInvalidUnicodeFileVersion` | The installed `unicode.lfs` file is mismatched with the installed software. | | `4` | `ssInvalidCountryFileVersion` | The installed `country.lfs` file is mismatched with the installed software. | | `5` | `ssInvalidContextFileVersion` | The installed `context.lfs` file is mismatched with the installed software. | | `6` | `ssInvalidFormatFileVersion` | The installed `format.lfs` file is mismatched with the installed software. | | `7` | `ssInvalidLexiconFileVersion` | The installed lexicon file attempting to be opened is mismatched with the installed software. | | `8` | `ssInvalidReferenceFileVersion` | The installed lexicon file attempting to be opened is mismatched with the installed software. | | `9` | `ssException` | An exception was thrown. | | `10` | `ssError` | An error has been reported by loqate server, use `getLastError()` function in `lqtServer` object to get error description. | # Unmatched Field Source: https://docs.loqate.com/field-descriptions/unmatched-field The Unmatched field is used to place all the input data that cannot be parsed as part of an address. Generally Loqate will tend to assume that unidentified words are either Building or Organization names, but if it has a large degree of confidence that a particular item is not part of the address data it will place it into the `Unmatched` field, as in the example below. Other examples of unmatched values: * Details unknown * DO NOT APPLY * DO NOT ENTER * DO NOT SHIP TO THIS LOCATION * DO NOT USE * Empty * VARIOUS * VARIOUS LOCATIONS * All Locations * N A * NA * Not Applicable * Not Assigned * NOT AVAILABLE * Not Provided # Country Data Improvements Source: https://docs.loqate.com/getting-started/country-improvement-program Loqate have a unique process that brings together and combines multiple expert data sources to create **one best record** in the address and location hierarchy. We call this process the** Persistent Data Hierarchy, or PDH.** A country dataset is improved by using the PDH process to enhance reliability, improve the speed and quality of the location data, creates consistency, adds normalization, and resolves data errors. ### How it works 1. Loqate will source and evaluate the best sources for address and location data 2. Using our home-grown, expert system, the data is scanned and mapped into a standardized hierarchy 3. The completed dataset is then exported for use across all Loqate products ### Benefits of a single hierarchy The PDH process benefits customers in two ways: completeness and coverage. By blending multiple sources, the improvement process will complete missing fields, resolve component-level conflicts, and bring consistency and alignment across the regional hierarchy. For example, one source may state a value as a city, whereas another will identify it as a Village or smaller regional boundary. The PDH software will resolve this, and also enrich or fill any gaps that may be unique to each source. Coverage is is measured by the number of delivery-point records, which is maximized by having more sources. This is dependent on the quality of data already available in the market for each country. ### Coverage status We have now updated the Data Coverage [page](/data-coverage/introduction/) to include if a country has been through our PDH process. Measuring improvement We internally measure the improvements made by the PDH process when we complete it for a particular country. You may see a record returning a level 2 (locality level) prior to PDH and a level 4 (premise level) after PDH; these types of changes demonstrate a positive improvement due to better alignment and cleaner structures in the reference data. In cases where a record does the opposite, the enhanced dataset may be resolving a previously incorrect or false result. These changes are dependent on the amount of sample data available. ### Coverage & Completeness For countries using existing data sources, these are unlikely to show any big changes to the total number of deliverable records. Many improvements in datasets will be based around field/value alignments and corrections to the geography hierarchy. # Verify On-Premise Documentation Source: https://docs.loqate.com/getting-started/introduction **Welcome to the Loqate Technical Support Site for On-Premise Customers** Please choose a topic below or use the main menu to browse the site. # Local API Install Options Source: https://docs.loqate.com/getting-started/local-api-install-options Loqate installers are available as multi-thread (`mt`) and single-thread (`st`) engines. ## Available Installers ### Windows x86 and x86\_64 ``` loqate_installer_mt_win_x86_vs2005.exe loqate_installer_mt_win_x64_vs2005.exe loqate_installer_mt_win_x86_vs2019.exe loqate_installer_mt_win_x64_vs2019.exe loqate_installer_mt_win_x64_vs2019_lfs64.exe ``` See [Dependencies](/getting-started/local-api-install-options#dependencies) section for details on installing dependencies from Microsoft. ### Linux x86 ``` loqate_installer_mt_linux_x86 loqate_installer_mt_linux_x86-cpp5 loqate_st_installer_x86 loqate_st_installer_x86-cpp5 ``` ### Linux x86\_64 ``` loqate_installer_mt_linux_x86_64 loqate_installer_mt_linux_x86_64-gcc7 loqate_st_installer_x86_64 loqate_st_installer_x86_64-gcc7l loqate_installer_mt_linux_x86_64-gcc7_lfs64 ``` ### AIX ``` loqate_installer_mt_aix61 loqate_installer_mt_aix71 loqate_installer_mt_aix72 loqate_st_installer_aix61 loqate_st_installer_aix71 loqate_st_installer_aix72 ``` ## Dependencies If using Windows without the correct library dependency installed, you may see the following error message: Install the Visual C++ Redistributable package from Microsoft: [Download from Microsoft](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022) ## Customized Installs Each installer can be customized during installation using a settings file (default: `setup.ini`). ### Settings File Options All options are optional. | Option Name | Description | Installation Mode | | ---------------- | ----------------------------------------------- | ------------------------- | | `ProductName` | Custom name of product | All modes | | `ProductVersion` | Custom version name | All modes | | `ProductLogo` | Full path to custom product logo | GUI mode | | `ProductIcon` | Full path to custom product icon | Windows install | | `ShowLicense` | `yes` or `no` | GUI and commandline modes | | `LicenseFile` | Full path to custom license agreement text file | GUI and commandline modes | | `InstallDir` | Full path to the installation folder | All modes | | `Modules` | Modules to install | Silent mode | | `Samples` | Samples to install | Silent mode | | `SampleData` | `yes` or `no` | Silent mode | **Default InstallDir values:** * Windows: `C:\Loqate\` * Linux/Unix: `/opt/loqate` ### Settings File Tips * **Custom License:** Add a license text file, set `LicenseFile` to its location, and set `ShowLicense` to `yes` for graphical and command line installations * **Custom Logo:** Set `ProductLogo` to add a customized logo to graphical installations * **Custom Icon:** Set `ProductIcon` in Windows installations to add an icon to start menu shortcuts * **Modules (silent mode):** Options are `Java`, `.Net`, `Batch`, `Demo`, `InstallManager`, `Node`, `Central`, and `All`. C++ is always installed * **Samples (silent mode):** Options are `C++`, `Java`, `.Net`, `Batch`, and `All` * **SampleData (silent mode):** Determines whether sample US data is installed ### Settings File Examples **Linux GUI/commandline install:** ```ini theme={null} ProductName=Loqate ProductVersion=2012Q1 ProductLogo=/home/user/logo.png ShowLicense=Yes LicenseFile=/home/user/license.txt InstallDir=/opt/loqate ``` **Windows GUI install:** ```ini theme={null} ProductName=Loqate ProductVersion=2012Q1 ProductLogo=C:\Users\user\logo.png ProductIcon=C:\Users\user\icon.ico ShowLicense=Yes LicenseFile=C:\Users\user\license.txt InstallDir=C:\Loqate ``` **Linux silent install:** ```ini theme={null} InstallDir=/opt/loqate Modules=Java, Batch, InstallManager Samples=C++, Java, Batch SampleData=Yes ``` **Windows silent install:** ```ini theme={null} InstallDir=C:\Loqate Modules=Java, Batch, InstallManager Samples=C++, Java, Batch SampleData=Yes ``` ## Installation Modes The Windows and Linux installers can be run in graphical, console, or silent mode. The settings file is optional in these modes. The settings file is specified by the `--setup-file` option. If no settings file is specified, the installer will look for a file named `setup.ini` in the same folder as the installer. If no such file exists, the installer will run with no settings file. ### Silent Mode Defaults Running in silent mode with no settings file will use these default options: ``` InstallDir=C:\Program Files\Loqate (Windows) InstallDir=/opt/loqate (Linux/Unix) Modules=all Samples=all SampleData=yes ``` ### Windows x86 Default mode is graphical. ```bash theme={null} # Basic graphical installation loqate_installer_mt_win_x86_vs2005.exe # With settings file loqate_installer_mt_win_x86_vs2005.exe --setup-file # Silent mode loqate_installer_mt_win_x86_vs2005.exe --mode silent # Silent mode with settings file loqate_installer_mt_win_x86_vs2005.exe --mode silent --setup-file ``` ### Windows x86\_64 Default mode is graphical. ```bash theme={null} # Basic graphical installation loqate_installer_mt_win_x64_vs2005.exe # With settings file loqate_installer_mt_win_x64_vs2005.exe --setup-file # Silent mode loqate_installer_mt_win_x64_vs2005.exe --mode silent # Silent mode with settings file loqate_installer_mt_win_x64_vs2005.exe --mode silent --setup-file ``` ### Linux x86 Default mode is console, standard mode is graphical. ```bash theme={null} # Basic console installation loqate_installer_mt_linux_x86 # With settings file loqate_installer_mt_linux_x86 --setup-file # Graphical mode loqate_installer_mt_linux_x86 --mode standard # Graphical mode with settings file loqate_installer_mt_linux_x86 --mode standard --setup-file # Silent mode loqate_installer_mt_linux_x86 --mode silent # Silent mode with settings file loqate_installer_mt_linux_x86 --mode silent --setup-file ``` ### Linux x86\_64 Default mode is console, standard mode is graphical. ```bash theme={null} # Basic console installation loqate_installer_mt_linux_x86_64 # With settings file loqate_installer_mt_linux_x86_64 --setup-file # Graphical mode loqate_installer_mt_linux_x86_64 --mode standard # Graphical mode with settings file loqate_installer_mt_linux_x86_64 --mode standard --setup-file # Silent mode loqate_installer_mt_linux_x86_64 --mode silent # Silent mode with settings file loqate_installer_mt_linux_x86_64 --mode silent --setup-file ``` ### AIX Default mode is console, standard mode is graphical. ```bash theme={null} # Basic console installation loqate_installer_ # With settings file loqate_installer_ --setup-file # Graphical mode loqate_installer_ --mode standard # Graphical mode with settings file loqate_installer_ --mode standard --setup-file # Silent mode loqate_installer_ --mode silent # Silent mode with settings file loqate_installer_ --mode silent --setup-file ``` # Loqate API Architecture Source: https://docs.loqate.com/getting-started/loqate-api-architecture # Getting Started Source: https://docs.loqate.com/getting-started/overview Use the sections and links below to guide you through how to install and run the Loqate Verify & Geocode engine and data on your own server. Documentation for all web services and the Cloud API, including our type-ahead address [Capture service](/our-services/address-capture/overview/), can be [found on the main Loqate website](https://www.loqate.com/en-gb/address-capture/). Available videos on getting started can be found [here](/tutorials/loqate-video-tutorials/). ## Useful Information Before You Start ## Understanding Your Results ## Installing & Integrating Loqate ## Additional Products & Datasets # Supported Platforms Source: https://docs.loqate.com/getting-started/platforms For the latest supported platforms, please see the [most recent release notes](/release-information/). ## Core Platforms Supported ## Retiring support for older platforms To ensure that Loqate can continue to provide timely support for the latest and most used platforms, we will begin to retire older or unsupported platform versions. Notifications regarding the retirement of any platform or platform version will be published at least one major release in advance. # AIX Source: https://docs.loqate.com/getting-started/system-requirements/aix The Loqate library is available as a shared object on the following AIX platforms: ### loqate\_installer\_aix | Platform | Version | Build Compiler | Library Dependencies | | -------- | ------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **AIX** | 5.3 and above | IBM XL C/C++ Enterprise Edition V8.0 for AIX | libC.a(shr\_64.o)
libC.a(shr2\_64.o)
libC.a(ansi\_64.o)
libc.a(shr\_64.o)
libC.a(ansicore\_64.o)
libc\_r.a(shr\_64.o)
libC.a(shrcore\_64.o)
libC.a(shr3\_64.o) | # System Requirements Source: https://docs.loqate.com/getting-started/system-requirements/introduction ## Minimum Specifications * 8GB RAM * 100GB RAIDed hard-disk space. (Note: post-installation size without installer or package files. During installation need around 30-50% more.) * 3GHz multi-core CPU * 64bit OS ## Recommended Specification * 16GB RAM or more * 100GB RAIDed/SSD space or more\* (Note: post-installation size without installer or package files. During installation need around 30-50% more.) * 3GHz multi-core CPU * 64bit OS # Linux 64-bit Source: https://docs.loqate.com/getting-started/system-requirements/linux64bit The Loqate library is available as a shared object on the following Linux platforms: | Platform | Version | Build Compiler | C/C++ Library | | -------------- | ------- | -------------- | ------------------------- | | **SUSE (x64)** | 10 | gcc 4.1.2 | libstdc++.so.6, libc.so.6 | | **SUSE (x64)** | 11 | gcc 4.1.2 | libstdc++.so.6, libc.so.6 | | RHEL x64 | gcc version | glibc | libstdc++.so | | --------- | ----------- | ----------------- | ------------ | | **RHEL6** | 4.4.7 | 2.14 | 6.0.19 | | **RHEL7** | 4.8.5 | 2.17-326.el7\_9 | 6.0.19 | | **RHEL8** | 8.5.0 | 2.28-189.5.el8\_6 | 6.0.25 | | **RHEL9** | 11.2.1 | 2.34-28.el9\_0.2 | 6.0.29 | | Ubuntu (x64) | gcc version | glibc | libstdc++.so | | --------------- | ----------- | ----- | ------------ | | **ubuntu14.04** | 4.8.4 | 2.19 | 6.0.19 | | **ubuntu16.04** | 5.4.0 | 2.23 | 6.0.21 | | **ubuntu18.04** | 7.5.0 | 2.27 | 6.0.25 | | **ubuntu20.04** | 9.4.0 | 2.31 | 6.0.28 | | **ubuntu22.04** | 11.2.0 | 2.35 | 6.0.30 | # Windows 32-bit Source: https://docs.loqate.com/getting-started/system-requirements/win32bit The Loqate library is available as a DLL on the following Windows platforms: | Platform | Version | Build Compiler | Service Pack | C/C++ Library | | -------------------------------- | ------------------ | ------------------ | ------------ | ------------------------ | | **Windows 10 (x86)** | All | Visual Studio 2005 | n/a | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x86)** | Standard Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x86)** | Web Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x86)** | Enterprise Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x86)** | Standard Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x86)** | Web Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x86)** | Enterprise Edition | Visual Studio 2005 | SP 1 | msvcp80.dll, msvcr80.dll | [Back to System Requirements](/getting-started/system-requirements/) # Windows 64-bit Source: https://docs.loqate.com/getting-started/system-requirements/win64bit The Loqate library is available as a DLL on the following Windows platforms: | Platform | Version | Build Compiler | Service Pack | C/C++ Library | | -------------------------------- | ------------------ | ------------------ | ------------ | ------------------------ | | **Windows 7 (x64)** | | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows 8.1 (x64)** | | Visual Studio 2019 | n/a | msvcp80.dll, msvcr80.dll | | **Windows 10 (x64)** | All Versions | Visual Studio 2019 | n/a | msvcp80.dll, msvcr80.dll | | **Windows 11 (x64)** | All Versions | Visual Studio 2019 | n/a | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x64)** | Standard Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x64)** | Web Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 (x64)** | Enterprise Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x64)** | Standard Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x64)** | Web Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2008 R2 (x64)** | Enterprise Edition | Visual Studio 2019 | SP 1 | msvcp80.dll, msvcr80.dll | | **Windows Server 2012 R2 (x64)** | Standard Edition | Visual Studio 2019 | SP2 | msvcp80.dll, msvcr80.dll | | **Windows Server 2012 R2 (x64)** | Web Edition | Visual Studio 2019 | SP2 | msvcp80.dll, msvcr80.dll | | **Windows Server 2012 R2 (x64)** | Enterprise Edition | Visual Studio 2019 | SP2 | msvcp80.dll, msvcr80.dll | | **Windows Server 2016 (x64)** | Standard | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2016 (x64)** | Datacenter | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2019 (x64)** | Standard | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2019 (x64)** | Datacenter | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2022 (x64)** | Standard | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2022 (x64)** | Datacenter | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | | **Windows Server 2022 (x64)** | Datacenter - Azure | Visual Studio 2019 | | msvcp80.dll, msvcr80.dll | # Verify Helm Configuration Source: https://docs.loqate.com/helm/configuration Configure country-specific deployments, certified datasets, and resource allocation ## Docker Image Versions Specify image tags for Verify components. **Helmfile (Unix/Linux):** ```bash theme={null} export LOQATE_INSTALLMANAGER_VERSION="image-tag" export LOQATE_QUERY_COORDINATOR_VERSION="image-tag" export LOQATE_SPATIAL_API_VERSION="image-tag" ``` **Helmfile (Windows):** ```powershell theme={null} $env:LOQATE_INSTALLMANAGER_VERSION="image-tag" $env:LOQATE_QUERY_COORDINATOR_VERSION="image-tag" $env:LOQATE_SPATIAL_API_VERSION="image-tag" ``` **Helm:** ```bash theme={null} helm install component loqate/component --set image.tag=image-tag ``` Contact your Loqate representative for available image tags. ## Country-Specific Deployments Deploy dedicated Spatial-API instances for high-traffic countries to optimize performance and enable independent scaling. ### Why Use Country-Specific Deployments * **Better performance:** Dedicated resources for frequently queried countries * **Flexible scaling:** Scale each country independently based on traffic * **Cost optimization:** Allocate resources where needed ### Configuration Set `verify.dataset` to the ISO 3166-2 country code. Keep a `row` (rest of world) deployment for other countries. **Example: United Kingdom deployment** ```bash theme={null} helm install -n loqate sa-gb loqate/spatial-api \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass \ --set app.memberlistService=memberlist.loqate.svc \ --set verify.dataset=gb ``` **Example with custom storage path:** ```bash theme={null} helm install -n loqate sa-gb loqate/spatial-api \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass \ --set storage.path=/custom/data/path \ --set app.memberlistService=memberlist.loqate.svc \ --set verify.dataset=gb ``` **Common Country Codes:** | Country | Code | | ------------------------- | ----- | | United States | `us` | | United Kingdom | `gb` | | Canada | `ca` | | Australia | `au` | | Germany | `de` | | France | `fr` | | Rest of World (catch-all) | `row` | ## Certified Datasets Verify supports postal authority-certified validation: * **CASS** - United States (Coding Accuracy Support System) * **SERP** - Canada (Software Evaluation and Recognition Program) * **AMAS** - Australia (Address Matching Approval System) ### Requirements * License key with certified features enabled * Certified libraries (downloaded automatically to `lib64` folder) * Spatial-API configured for the certified country **CASS Restriction:** CASS data cannot be downloaded from locations outside the United States due to legal requirements. ### Example: AMAS (Australia) ```bash theme={null} helm install -n loqate spatial-api-au loqate/spatial-api \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass \ --set app.memberlistService=memberlist.loqate.svc \ --set verify.dataset=au ``` The certified engine activates automatically when licensed libraries are present. ## Premium Datasets Premium datasets provide enhanced data quality for: * **France** * **Ireland** * **United States** ### Deployment Options **Option 1: Dedicated deployments (recommended for high volume)** ```bash theme={null} # France helm install -n loqate sa-fr loqate/spatial-api \ --set verify.dataset=fr \ # ... other settings # Ireland helm install -n loqate sa-ie loqate/spatial-api \ --set verify.dataset=ie \ # ... other settings ``` **Option 2: Single rest-of-world deployment** Set `verify.dataset=row` to handle all premium countries with one deployment. Simpler but less flexible scaling. ### Premium US Resources The premium US dataset requires more resources: ```yaml theme={null} resources: requests: memory: "8Gi" cpu: "2" limits: memory: "16Gi" cpu: "4" ``` Apply via Helm: ```bash theme={null} --set resources.requests.memory=8Gi \ --set resources.requests.cpu=2 \ --set resources.limits.memory=16Gi \ --set resources.limits.cpu=4 ``` ## Resource Allocation Configure CPU and memory based on expected traffic. ### Recommended Sizing | Traffic Level | Memory Request | CPU Request | Memory Limit | CPU Limit | | --------------------------- | -------------- | ----------- | ------------ | --------- | | Low (under 100 req/min) | 2Gi | 0.5 | 4Gi | 1 | | Medium (under 1000 req/min) | 4Gi | 1 | 8Gi | 2 | | High (under 5000 req/min) | 8Gi | 2 | 16Gi | 4 | | Premium US | 8Gi | 2 | 16Gi | 4 | ### Example Configuration **Via values file:** ```yaml theme={null} resources: requests: memory: "4Gi" cpu: "1" limits: memory: "8Gi" cpu: "2" ``` **Via Helm:** ```bash theme={null} --set resources.requests.memory=4Gi \ --set resources.requests.cpu=1 \ --set resources.limits.memory=8Gi \ --set resources.limits.cpu=2 ``` Start conservative and adjust based on Prometheus metrics. ## AI Parser (Optional) Enable AI-enhanced parsing for improved accuracy with unstructured addresses. ### Requirements * Separate persistent storage (at least 4Gi) * Additional resources for TensorFlow Serving and AI Parser components ### Enable AI Parser **In helmfile, add to QueryCoordinator values:** ```yaml theme={null} app: allow_aiparser: true ``` **Configure AI storage:** ```bash theme={null} # Unix export LOQATE_AIPARSER_STORAGE_PATH="/opt/loqate/ai-models" # Windows $env:LOQATE_AIPARSER_STORAGE_PATH="C:\loqate\ai-models" ``` **Uncomment AI Parser sections in helmfile and apply:** ```bash theme={null} helmfile apply # Unix helmfile sync # Windows ``` See the AI Parser section in helmfile.yaml for detailed configuration. ## Next Steps * [Usage](/helm/usage) - Learn management and monitoring commands * [Troubleshooting](/helm/troubleshooting) - Resolve common issues * [Quick Start](/helm/quick-start) - Installation guide # Verify Helm Charts Overview Source: https://docs.loqate.com/helm/overview Deploy Verify on Kubernetes using Helm charts for scalable, cloud-native address verification ## What's Included Deploy Verify with production-tested Helm charts that include: * **Container images:** All Verify components packaged for Kubernetes * **Helm charts:** Pre-configured deployment manifests * **Reference data:** Global Knowledge Repository with 245+ countries * **Observability:** OpenTelemetry traces, Prometheus metrics, and stdout logging ## Architecture Components Verify uses a microservices architecture optimized for Kubernetes: * **InstallManager:** Downloads reference data to persistent storage * **Memberlist:** Coordinates communication between components * **QueryCoordinator:** Routes requests to appropriate Spatial-API instances * **Spatial-API:** Processes verification requests using country-specific data Deploy Spatial-API instances for high-traffic countries and a catch-all instance for the rest of the world, enabling independent scaling per region. ## Verify Capabilities * **Global Knowledge Repository (GKR):** Proprietary address database covering 245+ countries and territories * **Parsing engine:** Context-aware parsing rules that structure unstructured address data * **High performance:** Process millions of records per hour * **Transliteration:** Convert between character sets across 8 scripts (Cyrillic, Hellenic, Hebrew, Kanji, Simplified Chinese, Arabic, Thai, Hangul) ## Deployment Benefits * **Control:** Run in your own cloud with your security policies * **Scalability:** Auto-scale components based on demand * **Cost optimization:** Deploy only what you need * **Visibility:** Built-in monitoring and observability tools ## Routing Options * **Kubernetes Ingress (default):** Standard ingress controller integration * **Istio:** Advanced service mesh for sophisticated traffic management ## Scaling Options * **HPA (default):** Kubernetes Horizontal Pod Autoscaler based on CPU/memory * **KEDA:** Event-driven autoscaling with custom metrics ## Security For vulnerability disclosure or security findings, contact [support@loqate.com](mailto:support@loqate.com). ## Next Steps * [Quick Start](/helm/quick-start) - Deploy Verify in minutes * [Configuration](/helm/configuration) - Customize your deployment * [Usage](/helm/usage) - Manage and monitor your installation # Verify Helm Quick Start Source: https://docs.loqate.com/helm/quick-start Deploy Verify to Kubernetes in minutes using Helmfile ## Prerequisites Before installing, ensure you have: * **Kubernetes** v1.23 or higher * **Helm** v3.7.0 or higher * **Helmfile** v0.144.0 or higher (recommended) * **Docker Hub account** with access granted by Loqate * **Loqate license key** (API key) * **Persistent storage** - At least 250Gi ReadWriteMany (RWX) volume **Recommended tools:** Istio v1.11.4+, KEDA v2.4+, Prometheus v2.34.0+ for advanced features ## Step 1: Prepare Your Environment Create a working directory and set environment variables. **Unix/Linux:** ```bash theme={null} # Create directory mkdir -p /opt/loqate/lqtcharts cd /opt/loqate/lqtcharts # Set credentials (required) export LICENSE_KEY="your-api-key" export DOCKER_USERNAME="your-docker-username" export DOCKER_PASSWORD="your-docker-password" # Set custom data path (optional) export LOQATE_NFS_SHARE="/opt/loqate/data" # Use existing PVC (optional) export CLAIM_OVERRIDE="your-pvc-name" ``` **Windows (PowerShell):** ```powershell theme={null} # Create directory New-Item -Path "\loqate\lqtcharts" -ItemType "Directory" Set-Location "\loqate\lqtcharts" # Set credentials (required) $env:LICENSE_KEY="your-api-key" $env:DOCKER_USERNAME="your-docker-username" $env:DOCKER_PASSWORD="your-docker-password" # Set custom data path (optional) $env:LOQATE_NFS_SHARE="/run/desktop/mnt/host/c/loqate/data" # Use existing PVC (optional) $env:CLAIM_OVERRIDE="your-pvc-name" ``` **Default behavior:** Creates a Persistent Volume (PV) and Persistent Volume Claim (PVC) using host filesystem at the path specified by `LOQATE_NFS_SHARE`. **Custom data path:** Set `LOQATE_NFS_SHARE` to your desired storage location. **Existing PVC:** Set `CLAIM_OVERRIDE` to use a pre-configured PVC for network storage. Skip `LOQATE_NFS_SHARE` if using this option. ## Step 2: Download Helmfile **Unix/Linux:** ```bash theme={null} wget https://charts.loqate.com/helmfile.yaml -O helmfile.yaml ``` **Windows (PowerShell):** ```powershell theme={null} Invoke-WebRequest https://charts.loqate.com/helmfile.yaml -OutFile helmfile.yaml ``` ## Step 3: Install Verify **Unix/Linux:** ```bash theme={null} helmfile apply ``` **Windows (PowerShell):** ```powershell theme={null} helmfile sync ``` The installation will: 1. Create the `loqate` namespace 2. Pull container images from Docker Hub 3. Deploy Memberlist, QueryCoordinator, and Spatial-API 4. Start InstallManager to download reference data Data download takes several hours and requires at least 250Gi storage for the full dataset. ## Step 4: Monitor Installation Progress Check pod status: ```bash theme={null} kubectl get pods -n loqate ``` Expected output during installation: ``` NAME READY STATUS RESTARTS AGE installmanager-xxxxx 0/1 Running 0 2m memberlist-xxxxx 1/1 Running 0 2m querycoordinator-xxxxx 0/1 Running 0 2m spatial-api-xxxxx 0/1 Running 0 2m ``` Monitor data download: ```bash theme={null} kubectl logs -f installmanager-xxxxx -n loqate ``` Installation is complete when you see `Edit complete` in the logs. ## Step 5: Test Your Installation Open a port forward: ```bash theme={null} kubectl port-forward -n loqate svc/querycoordinator 8900:8900 ``` **Test version endpoint (Unix/Linux):** ```bash theme={null} curl -X GET http://localhost:8900/api/version ``` Expected response: ```json theme={null} {"version":"2.xx.x.xxxxx-xxxxxxx"} ``` **Test verification (Unix/Linux):** ```bash theme={null} curl -X POST http://localhost:8900/verify \ -H "Content-Type: application/json" \ -d '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}' ``` Successful response includes validated address with AVC and AQI scores. **Test version:** ```powershell theme={null} Invoke-WebRequest -Method GET http://localhost:8900/api/version ``` **Test verification:** ```powershell theme={null} Invoke-WebRequest http://localhost:8900/verify -Method POST ` -ContentType "application/json" ` -Body '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}' ``` ## Download Subset of Datasets To reduce storage and download time, install only specific countries: 1. Create `silent.txt` file: ``` gbgkey=your-api-key datachoice=selectcountries countries=USA,GBR,CAN ``` 2. Create ConfigMap: ```bash theme={null} kubectl create configmap installmanager-config \ --from-file=silent.txt=silent.txt \ -n loqate ``` 3. Update InstallManager values to reference the ConfigMap 4. Rerun helmfile ## Troubleshooting Installation **Pods not starting:** Check logs: ```bash theme={null} kubectl logs pod-name -n loqate ``` Common issues: invalid license key, Docker Hub authentication failed, insufficient storage. **Data download slow:** Normal for full dataset. Monitor with: ```bash theme={null} kubectl logs -f installmanager-xxxxx -n loqate ``` **Connection refused on port forward:** Ensure port forward is running and QueryCoordinator pod shows `1/1` ready status. See [Troubleshooting](/helm/troubleshooting) for more solutions. ## Next Steps * [Configuration](/helm/configuration) - Add country-specific deployments and certified datasets * [Usage](/helm/usage) - Learn management commands and monitoring * [Troubleshooting](/helm/troubleshooting) - Resolve common issues # Troubleshooting Verify Source: https://docs.loqate.com/helm/troubleshooting Common errors and solutions for Verify Helm deployment issues ## Memberlist Errors ### Symptoms Pod logs show: * `No private IP address found, and explicit IP not provided` * `(*Memberlist).UpdateStatus(0x0, 0x0, 0x0, 0x1)` ### Solution Set `memberlist.useAddrRef` to `true` for QueryCoordinator and Spatial-API. **Via values file:** ```yaml theme={null} memberlist: useAddrRef: true ``` **Via Helm:** ```bash theme={null} --set memberlist.useAddrRef=true ``` ## Data Installation Errors ### Symptoms * Pod logs show: `...is not a valid Global Knowledge Repository path` * InstallManager pod never completes * Spatial-API pods fail to start ### Solutions **1. Verify installation completed** Check InstallManager logs for: ``` Completed installing the data packs. Datapack installation was successfull. Edit complete ``` If missing, data installation didn't finish. **2. Check storage space** ```bash theme={null} kubectl logs installmanager-xxxxx -n loqate | grep "Space available" ``` If insufficient: * Increase PV size * Install subset of datasets (see [Quick Start](/helm/quick-start)) **3. Retry installation** Delete and reinstall InstallManager: ```bash theme={null} helm delete installmanager -n loqate helm install installmanager loqate/installmanager \ --set licenseKey=your-key \ # ... other settings ``` **4. Install minimal dataset** Create `silent.txt` with fewer countries, test, then expand. ## Request Processing Errors ### Symptoms API requests fail with: * `No spatialapi available` * `Failed to process` ### Solution: Restart Pods **Check pod status:** ```bash theme={null} kubectl get pods -n loqate ``` **If pods show 0/1 (not ready):** Delete the pod - Kubernetes will recreate it: ```bash theme={null} kubectl delete pod pod-name -n loqate ``` Wait 3 minutes and test again. **If all pods show 1/1 but errors persist:** Restart in this order: 1. Delete Spatial-API pod 2. Wait 3 minutes, test 3. If still failing, delete QueryCoordinator pod 4. Wait 3 minutes, test 5. If still failing, delete Spatial-API pod again ```bash theme={null} kubectl delete pod spatial-api-xxxxx -n loqate # Wait 3 minutes, test kubectl delete pod querycoordinator-xxxxx -n loqate # Wait 3 minutes, test ``` ### Solution: Reinstall Charts If pod restarts don't work: **1. List releases:** ```bash theme={null} helm list -n loqate ``` **2. Delete failing release:** ```bash theme={null} helm delete release-name -n loqate ``` **3. Reinstall** (see [Configuration](/helm/configuration) for commands) **4. Verify pods are running:** ```bash theme={null} kubectl get pods -n loqate ``` Wait 3 minutes after pods show 1/1, then test. ## Connection Issues ### Port Forward Not Working **Symptoms:** * `Connection refused` on localhost:8900 * Timeout errors **Solutions:** 1. Verify port forward is running (command doesn't terminate) 2. Check QueryCoordinator pod is ready: ```bash theme={null} kubectl get pods -n loqate # querycoordinator should show 1/1 ``` 3. Try different local port: ```bash theme={null} kubectl port-forward -n loqate svc/querycoordinator 9000:8900 # Then test localhost:9000 ``` 4. Check firewall not blocking localhost ## Image Pull Errors ### Symptoms Pods show `ImagePullBackOff` or `ErrImagePull` ### Solutions **1. Verify Docker Hub credentials:** ```bash theme={null} kubectl get secret -n loqate # Should show registry credentials ``` **2. Test Docker Hub access:** ```bash theme={null} docker login # Use your Docker Hub credentials ``` **3. Recreate image pull secret:** ```bash theme={null} kubectl delete secret regcred -n loqate kubectl create secret docker-registry regcred \ --docker-server=https://index.docker.io/v1/ \ --docker-username=your-username \ --docker-password=your-password \ -n loqate ``` **4. Verify Loqate repository access** Contact your Loqate representative to confirm your Docker Hub ID has been granted access. ## Performance Issues ### Slow Response Times **Check resource limits:** ```bash theme={null} kubectl describe pod pod-name -n loqate | grep -A 5 "Limits" ``` If CPU/memory limits are being hit: * Increase resource limits in values file * See [Configuration](/helm/configuration) for sizing guidelines **Check storage performance:** Slow storage impacts response times. Consider: * Faster storage class (SSD over HDD) * Local storage over network storage ### High Memory Usage Normal for large datasets. Ensure appropriate limits: * Standard datasets: 4-8Gi * Premium US: 8-16Gi ## Collecting Diagnostic Information If issues persist, collect diagnostic data before contacting support: ```bash theme={null} # Pod logs kubectl logs pod-name -n loqate > pod-logs.txt # Pod description kubectl describe pod pod-name -n loqate > pod-describe.txt # Events kubectl get events -n loqate --sort-by='.lastTimestamp' > events.txt # Resource usage kubectl top pods -n loqate > resource-usage.txt ``` ## Contact Support If issues persist after trying these solutions, contact [support@loqate.com](mailto:support@loqate.com) with: * Description of the issue * Steps already attempted * Diagnostic logs * Kubernetes version and environment details ## Next Steps * [Usage](/helm/usage) - Learn management commands * [Configuration](/helm/configuration) - Optimize your deployment * [Quick Start](/helm/quick-start) - Review installation steps # Managing Verify Source: https://docs.loqate.com/helm/usage Helm and Helmfile commands for managing, monitoring, and testing your Verify deployment ## Helmfile Management Helmfile simplifies managing multiple Helm releases. ### Install or Update ```bash theme={null} helmfile apply # Unix/Linux helmfile sync # Windows ``` ### Uninstall All Releases ```bash theme={null} helmfile destroy ``` ### List Releases ```bash theme={null} helmfile list ``` ### Update Specific Release ```bash theme={null} helmfile -l name=release-name apply ``` ## Helm Management Direct control over individual releases. ### Add Loqate Repository ```bash theme={null} helm repo add loqate https://charts.loqate.com helm repo update ``` ### Install Components **InstallManager:** ```bash theme={null} helm install installmanager loqate/installmanager \ -n loqate \ --set licenseKey=your-key \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass ``` **Memberlist:** ```bash theme={null} helm install memberlist loqate/memberlist \ -n loqate \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass ``` **QueryCoordinator:** ```bash theme={null} helm install querycoordinator loqate/querycoordinator \ -n loqate \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass \ --set app.memberlistService=memberlist.loqate.svc ``` **Spatial-API:** ```bash theme={null} helm install spatial-api loqate/spatial-api \ -n loqate \ --set imageCredentials.username=docker-user \ --set imageCredentials.password=docker-pass \ --set app.memberlistService=memberlist.loqate.svc \ --set verify.dataset=row ``` ### Upgrade Release ```bash theme={null} helm upgrade release-name loqate/chart-name \ -n loqate \ --set key=value ``` ### Uninstall Release ```bash theme={null} helm uninstall release-name -n loqate ``` ### List Releases ```bash theme={null} helm list -n loqate ``` ## Testing Verify ### Port Forward to QueryCoordinator ```bash theme={null} kubectl port-forward -n loqate svc/querycoordinator 8900:8900 ``` ### Version Check **Unix/Linux:** ```bash theme={null} curl http://localhost:8900/api/version ``` **Windows:** ```powershell theme={null} Invoke-WebRequest -Method GET http://localhost:8900/api/version ``` Expected response: ```json theme={null} {"version":"2.xx.x.xxxxx-xxxxxxx"} ``` ### Verify Request **Unix/Linux:** ```bash theme={null} curl -X POST http://localhost:8900/verify \ -H "Content-Type: application/json" \ -d '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}' ``` **Windows:** ```powershell theme={null} Invoke-WebRequest http://localhost:8900/verify -Method POST ` -ContentType "application/json" ` -Body '{"input":[{"Address1":"The Foundation","Locality":"Chester","Country":"GB"}]}' ``` Successful response includes validated address with AVC and AQI scores. ## Monitoring ### Pod Status ```bash theme={null} kubectl get pods -n loqate ``` All pods should show `1/1` in the READY column (except InstallManager which shows `0/1` Completed). ### Pod Logs ```bash theme={null} kubectl logs pod-name -n loqate kubectl logs -f pod-name -n loqate # Follow logs ``` ### Resource Usage ```bash theme={null} kubectl top pods -n loqate ``` ### Recent Events ```bash theme={null} kubectl get events -n loqate --sort-by='.lastTimestamp' ``` ## Scaling ### Manual Scaling ```bash theme={null} kubectl scale deployment deployment-name --replicas=3 -n loqate ``` ### Horizontal Pod Autoscaler (HPA) Configure in your values file: ```yaml theme={null} autoscaling: enabled: true minReplicas: 2 maxReplicas: 10 targetCPUUtilizationPercentage: 80 ``` Apply via Helm: ```bash theme={null} --set autoscaling.enabled=true \ --set autoscaling.minReplicas=2 \ --set autoscaling.maxReplicas=10 ``` ### KEDA (Event-Driven Autoscaling) See [Configuration](/helm/configuration) for KEDA setup. ## Configuration Override ### Single Value ```bash theme={null} --set key=value ``` ### Multiple Values ```bash theme={null} --set key1=value1 --set key2=value2 ``` ### From Custom Values File ```bash theme={null} helm install release-name loqate/chart-name \ -n loqate \ -f custom-values.yaml ``` ## Complete Cleanup ### Remove All Resources **Using Helmfile:** ```bash theme={null} helmfile destroy kubectl delete namespace loqate ``` **Using Helm:** ```bash theme={null} helm uninstall installmanager -n loqate helm uninstall memberlist -n loqate helm uninstall querycoordinator -n loqate helm uninstall spatial-api -n loqate # Repeat for any other releases kubectl delete namespace loqate ``` ### Verify Cleanup ```bash theme={null} kubectl get all -n loqate ``` Should return: `No resources found` ## Common Values Key configuration options in `values.yaml`: ```yaml theme={null} image: repository: loqate/component-name tag: latest pullPolicy: IfNotPresent imageCredentials: username: "" password: "" resources: requests: memory: "4Gi" cpu: "1" limits: memory: "8Gi" cpu: "2" verify: dataset: "row" storage: path: "/data" size: "250Gi" ``` ## Next Steps * [Configuration](/helm/configuration) - Customize country deployments and resources * [Troubleshooting](/helm/troubleshooting) - Resolve common issues * [Quick Start](/helm/quick-start) - Installation guide # Data Installation And Update Process Source: https://docs.loqate.com/installers/data-installation-and-update-process The first step towards installation of data packs is to check the availability of Install Manager in the API installation folder. If the Install Manager is not available, the [Install Manager installer](/installers/installation-manager-install-process/) should be used to first install the Install Manager. Then the data packs can be downloaded and installed using the Install Manager. ## Recommended Installation Steps 1. Install the Install Manager, if not already installed in the Loqate API Installation Folder (You will need the Install Manager Installer from Loqate, to install the Install Manager) 2. Request a license key from Loqate Support at [support@loqate.com](mailto:support@loqate.com) or use local data packs if available 3. Execute the Install Manager and use it to install the data packs as needed **Important:** Please ensure Loqate is installed **outside** of Program Files. Even if you enable read/write permissions while inside Program Files, there may still be permissions issues. We recommend installing Loqate outside of Program Files. ## Install Manager Install Manager is a Java application that was introduced in 2013Q2.0 to handle the installation of the GKR. Install Manager can be run in graphical user interface (GUI) mode or in command line mode. Install Manager uses a web service running at `licensing.loqate.com` to provide the information on compatible data packs for a given Local API version. Install Manager requires either a license key or license pack that can be obtained by contacting [support@loqate.com](mailto:support@loqate.com). ### Change to Version of Java Used by Install Manager The Loqate Install Manager used to install or update Loqate LFS datafiles is provided with a bundled Java Runtime Environment (JRE) that it uses rather than relying on the version of Java on the target machine. From 2024Q4.1 release the bundled JRE will be changed, due to vulnerabilities in the version of JRE previously used by InstallManager. However, the more recent JRE bundled from 2024Q4.1 onwards has a dependency on a later version of `glibc`; it will need glibc **2.14** or later to be on the machine. Customers with machines using old operating systems may not have support for glibc 2.14, and the bundled Java JRE will therefore not be usable on their machine, causing an error, like below example: ``` ./java: /lib64/libc.so.6: version 'GLIBC_2.14' not found ``` Some older operating systems expected to be affected by this are: * SUSE Linux Enterprise Server (SLES) 11 SP3 * RedHat 6.9 If this should happen on your machine when trying to run `InstallManager.sh`, a potential workaround is to use the version of Java runtime already installed on the machine, rather than the bundled JRE. This can be achieved by commenting out or removing the two lines highlighted below in `InstallManager.sh` before running it. Alternatively you can delete the Install Manager `jre` folder/directory. If you do not have any JREs on your system, you are recommended to Install Java/JRE version 8 and above. Below is a list of links that contains downloadable Java/JDK, please choose the version that is compatible with your platform. **Reference download sites for Java (JDK/JRE):** * [Azul](https://www.azul.com/downloads/?package=jdk#zulu) * [Adoptium](https://adoptium.net/temurin/releases/) * [Openlogic](https://www.openlogic.com/openjdk-downloads) * [Corretto](https://github.com/corretto/corretto-8) ## Graphical User Interface Mode Install Manager can be started in GUI mode by providing the command line option: `mode=gui`. GUI mode is the default mode on Windows platforms. On Windows platforms, Install Manager can be launched by double clicking on `InstallManager.bat`. The first screen displays the version of the Local API currently installed, at the lower left corner. If a proxy server is used, the checkbox "Use Proxy Server" needs to be checked and the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the checkbox "Use authentication for proxy server" should also be checked and the user name and password need to be provided. The first step is to provide the installation folder. The next step is to either provide a license key or provide the full path to a license pack. The license pack is named `loqateLicense`. If a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. If the older format license pack `loqateLicense` is selected, it will be changed to the new format `license.lfs` Once the license pack is saved to disk, Install Manager will display the contents of the license for reference. There are 2 options available for downloading as shown below. One can either just download the data packs or install the data packs that are already downloaded to the local machine. After a valid option is selected, Install Manager will communicate with `licensing.loqate.com` and fetch details about the latest available licensed data packs that are compatible with the Local API version that is currently installed. The details of available data packs to install will be shown next. In the case a user selects an existing data folder for installation, it will show newer data packs available to download and install. The release date of the available data packs will also be displayed. The user can select the required data packs from this screen by checking the checkboxes next to each product. If the user selects the download option, Install Manager will download the data packs. The download can be paused and resumed at any point. If the "Pause Download" button is pressed the UI will change as follows: The next screen displays location where the downloaded data packs will be installed. The next screen will proceed to installing the selected data packs. Finally, Install Manager will complete the installation as shown. ## Command Line Interface Mode Install Manager can be started in command line mode by providing the command line option: `mode=commandline`. Command line mode is the default in Linux and UNIX platforms. On Linux/Unix platforms, Install Manager can be launched by running the script `InstallManager.sh`. The first screen displays the version of the Local API currently installed. If a proxy server is used, the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the user name and password need to be provided. The first step is to provide the installation folder. If the user selects an empty folder the installation will proceed as a fresh installation of the data packs. If the user selects an existing data folder, the installer will proceed as an update installation. The next step is to either provide a license key or provide the full path to a license pack. The license pack is named `loqateLicense`. From 2015Q1 release the license pack format is changed from `loqateLicense` to `license.lfs`. If a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. There are 3 options available for downloading and installing as shown below. One can either just download the data packs or install the data packs that are already downloaded to the local machine. When the list of available data packs is shown, enter `all` to select all data packs. Alternatively, if only certain products are desired for installation, enter the numbers next to those products, ending the selection by entering `done`. Depending on the choice made for download and installation, Install Manager may download data packs from `download.loqate.com` and install them. ## Installation Troubleshooting If you receive the error message "license expired" but your license key is still valid, we have listed the below recommendations. ### Insufficient Permissions Install Manager needs both read and write permissions to update the license pack. Make sure you have permission to create/overwrite `license.lfs`, otherwise the license pack will not update. **Linux:** Since the Linux install of `license.lfs` has default permissions of 644, only the owner of `license.lfs` has write permissions. If you are accessing `license.lfs` from a shared folder or someone else's folder, you will need to change the permissions to 664 or 666 first. **Windows:** If you are installing data anywhere inside Program Files, Program Files (x86), or Windows (for example `C:\Program Files\Loqate\data`), you will need to provide admin permissions, either by running InstallManager as administrator through Command Prompt, or installing outside of Program Files and copying the installed data into the desired location. ### Older Version of Install Manager If you are using an older version of the Install Manager from 2015, which had a bug, you will need to download the latest InstallManager from the Loqate FTP site. To retrieve the login info, please either ask your account manager or submit a ticket to [support@loqate.com](mailto:support@loqate.com). ### Proxy/Firewall Access Install Manager needs internet access and will connect to our licensing servers to validate the license key and to fetch the information about the latest compatible reference data for download. If there are any Proxy/Firewall settings in place that may block the access to our servers, please check that the following URLs are not blocked by your settings. If the following URLs are blocked, please update your firewall settings or use the proxy authentication specified during the Install Manager process (on the first screen). The following URLs are needed so that the Install Manager can connect to our server to verify the license key and get the reference datapacks: * `https://licensing.loqate.com` port 443 * `https://data.loqate.com` port 443 **Test the connections by using these curl commands:** Test licensing server: ```bash theme={null} $ curl https://licensing.loqate.com:443 ``` **Expected result:** An empty result. **Error result:** A result that contains "Could not resolve host" indicates you are not able to connect to the site and will not be able to download data. Please contact your IT department and ask them to allow access to that site. Test data server: ```bash theme={null} $ curl https://data.loqate.com:443 ``` **Expected result:** ```xml theme={null} AccessDenied Access Denied VY5YZNBETGF084CJ T5Xl6GNk9N4GsYcIpzgZChQabj/zoYcHrTmAKKpPjGysliqiLEX7BKVh0oRvCYnMdkYvZzAna0o= ``` Note that you will see this result because you were able to connect to the site and additional credentials (i.e., the license key) are needed. **Error result:** A result that contains "Could not resolve host" indicates you are not able to connect to the site and will not be able to download data. Please contact your IT department and ask them to allow access to that site. ### No Internet Connection If you do not have internet connection on your server or are unable to open up the firewall on the server, we recommend to follow the online + offline instructions available on our website. Basically, you have to download the datapacks on a machine that can connect to our licensing servers. Copy them over to your servers and install those datapacks. Online and Offline installation scenarios: [Example of Installation Scenarios](/installers/example/installation-scenarios/) ## Related Pages * [Local API](/local-apis/) * [Installers](/installers/) * [Local API install process](/installers/local-api-install-process/) * [Install Manager Installation Scenarios](/installers/example/installation-scenarios/) * [How to Obtain Version Information](/release-information/how-to-obtain-version-information/) # Install Manager Installation Scenarios Source: https://docs.loqate.com/installers/example/installation-scenarios # Offline Installation Source: https://docs.loqate.com/installers/example/offline-installation This section will describe offline installation scenario where the user is not able to connect to the internet and has a license pack file, and proceeds to download and install the data packs. In order to proceed with offline installation, the license pack and the data packs need be downloaded separately in a machine which has internet connectivity and then copied over to the install machine so that the Install Manager can access them at install time. ## Recommended Installation Steps 1. Download License pack on a machine with internet access using the License Key 2. Download datapacks (`*.lfz` files) on a machine with internet access 3. Copy the downloaded license pack and downloaded datapacks to the machine where they have to be installed (with no internet access) 4. Run the Install Manager on the install machine to install the datapacks The following sections demonstrate the steps in the data installation process. ## Graphical User Interface Mode ### Download Install Manager should be run on a machine which can access the internet. If a proxy server is used, the checkbox "Use Proxy Server" needs to be checked and the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the checkbox "Use authentication for proxy server" should also be checked and the user name and password need to be provided. The first step is to provide the installation folder. The Loqate License Pack will be written to this folder. Until 2015Q1 release, the Loqate license pack was named `loqateLicense`. From 2015Q1 release the license pack format is changed from `loqateLicense` to `license.lfs`. In the next step provide a license key. When a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. Once the license pack is saved to disk, Install Manager will display the contents of the license for reference. There are 2 options available for downloading as shown below. Select the "Download datapacks" option to download the required datapacks. After a valid option is selected, Install Manager will communicate with `licensing.loqate.com` and fetch details about the latest available licensed data packs that are compatible with the Local API version that is currently installed. The details of available data packs to install will be shown next. In the case a user selects an existing data folder for installation, it will show newer data packs available to download and install. The release date of the available data packs will also be displayed. The user can select the required data packs from this screen by checking the checkboxes next to each product. If the user selects the download option, Install Manager will download the data packs. The download can be paused and resumed at any point. If the "Pause Download" button is pressed the UI will change as follows: The next screen displays location where the downloaded data packs will be installed. Since the datapacks are to be installed on a different machine, the installation can be stopped at this stage by closing the window or by the 'Cancel' button. ### Installation Once the downloaded license pack and datapacks are copied to the Install machine, run the Install Manager on the install machine. Select the installation folder, the license pack can be placed in this folder. Choose the option "I have a license pack" and select the license pack file. From 2015Q1 release onwards, if the older format license pack `loqateLicense` is selected, it will be changed to the new format `license.lfs` Install Manager will display the contents of the license for reference. In the next screen choose the option "use local data packs" and select the folder where the downloaded datapacks were copied to. The available datapacks will be displayed for selection. Once the required datapacks are selected for installation, continue by clicking 'Next' button. The next screen displays location where the downloaded data packs will be installed. Next, the user is shown the data license agreement. Once the user accepts the license agreement, the next screen will proceed to installing the selected data packs. Finally, Install Manager will complete the installation as shown. The install folder will now have the `*.lfs` files along with `*_manifest.properties` for the datapacks which were selected for installation. ## Command Line Interface Mode Install Manager can be started in command line mode by providing the command line option: `mode=commandline`. Command line mode is the default in Linux and UNIX platforms. On Linux/Unix platforms, Install Manager can be launched by running the script `InstallManager.sh`. ### Download The first screen displays the version of the Local API currently installed. If a proxy server is used, the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the user name and password need to be provided. The first step is to provide the installation folder. If the user selects an empty folder the installation will proceed as a fresh installation of the data packs. If the user selects an existing data folder, the installer will proceed as an update installation. The next step is to provide a license key. When a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. Choose the option to download the datapacks. When the list of available data packs is shown, enter `all` to select all data packs. Alternatively, if only certain products are desired for installation, enter the numbers next to those products, ending the selection by entering `done`. Install Manager downloads data packs from `download.loqate.com`. ### Installation Once the downloaded license pack and datapacks are copied to the Install machine, run the Install Manager on the install machine. Select the installation folder, the license pack can be placed in this folder. Choose the option "I have a license pack" and select the license pack file. From 2015Q1 release onwards, if the older format license pack `loqateLicense` is selected, it will be changed to the new format `license.lfs`. Install Manager will display the contents of the license for reference. Choose the option "install using locally available data packs" and select the folder where the downloaded datapacks were copied to. The available datapacks will be displayed for selection. Next, the user is shown the data license agreement. Once the user accepts the license agreement, the Install Manager will proceed to installing the selected data packs. # Online Installation Source: https://docs.loqate.com/installers/example/online-installation This section will describe online installation scenario where the user is able to connect to the internet and has a license key, and proceeds to download and install the data packs. ## Installation Steps 1. Run Install Manager using License key 2. Download the required datapacks (`*.lfz` files) 3. Install the data packs The following sections demonstrate the steps in the data installation process. ## Graphical User Interface Mode Install Manager can be started in GUI mode by providing the command line option: `mode=gui`. GUI mode is the default mode on Windows platforms. On Windows platforms, Install Manager can be launched by double clicking on `InstallManager.bat`. The first screen displays the version of the Local API currently installed, at the lower left corner. If a proxy server is used, the checkbox "Use Proxy Server" needs to be checked and the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the checkbox "Use authentication for proxy server" should also be checked and the user name and password need to be provided. The first step is to provide the installation folder. The next step is to provide a license key. When a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. Once the license pack is saved to disk, Install Manager will display the contents of the license for reference. There are 2 options available for downloading as shown below. One can either just download the data packs or install the data packs that are already downloaded to the local machine. After a valid option is selected, Install Manager will communicate with `licensing.loqate.com` and fetch details about the latest available licensed data packs that are compatible with the Local API version that is currently installed. The details of available data packs to install will be shown next. In the case a user selects an existing data folder for installation, it will show newer data packs available to download and install. The release date of the available data packs will also be displayed. The user can select the required data packs from this screen by checking the checkboxes next to each product. If the user selects the download option, Install Manager will download the data packs. The download can be paused and resumed at any point. If the "Pause Download" button is pressed the UI will change as follows: The next screen displays location where the downloaded data packs will be installed. Next, the user is shown the Loqate data license agreement. Once the user accepts the license agreement, the next screen will proceed to installing the selected data packs. Finally, Install Manager will complete the installation as shown. ## Command Line Interface Mode Install Manager can be started in command line mode by providing the command line option: `mode=commandline`. Command line mode is the default in Linux and UNIX platforms. On Linux/Unix platforms, Install Manager can be launched by running the script `InstallManager.sh`. The first screen displays the version of the Local API currently installed. If a proxy server is used, the Proxy server name and port need to be entered as shown below. If the proxy server needs authentication, the user name and password need to be provided. The first step is to provide the installation folder. If the user selects an empty folder the installation will proceed as a fresh installation of the data packs. If the user selects an existing data folder, the installer will proceed as an update installation. The next step is to provide a license key. When a license key is entered, Install Manager will communicate with `licensing.loqate.com`. If the license key is valid, the server will return the corresponding license pack to Install Manager and then Install Manager will write the license pack to the installation folder. One can either just download the data packs or install the data packs that are already downloaded to the local machine. When the list of available data packs is shown, enter `all` to select all data packs. Alternatively, if only certain products are desired for installation, enter the numbers next to those products, ending the selection by entering `done`. The screen below shows the Loqate License agreement. Depending on the choice made for download and installation, Install Manager may download data packs from `download.loqate.com`. # Installation Manager Install Options Source: https://docs.loqate.com/installers/installation-manager Install Manager can be used to do a fresh install of data packs or update existing data packs. When you install the data packs using the Install Manager, you will need to enter a license key for the data files. Please email us at [support@loqate.com](mailto:support@loqate.com) for a license key. Install Manager is written using Java and requires a Java Runtime Environment 1.7 (JRE 1.7). In addition, if you have not installed the Loqate Java API Library as part of the Loqate Engine Installation, you also need to install those Java API libraries in order for the Install Manager to work. ## Windows Platform ```bash theme={null} set path=\bin;%path% cd java -jar InstallManager.jar mode=gui ``` ## Linux Platform ```bash theme={null} export LD_LIBRARY_PATH=/bin export PATH=$PATH;< path to JRE Folder > java -d64 -Djava.library.path=. -jar InstallManager.jar mode=commandline ``` ## Silent Mode Install Manager can be run in silent configuration using the available set of silent setting options. Using these options Install Manager can be set up to run such that there is no user interaction required. ### Silent Mode Settings File Options The full sets of options that are allowed to be defined are the following: * `LICENSE_KEY=` * `LICENSE_PACK_PATH=` * `INSTALL_FOLDER=` * `DOWNLOAD_FOLDER=` * `PRODUCTS=` * `MOVE_OLD_DATA_TO_SUBFOLDER=` * `DOWNLOAD_OPTION=` * `INSTALL_NEEDED=` * `PROXY_SERVER_NAME=` * `PROXY_PORT=` ### Tips for Using Silent Mode * Either `LICENSE_KEY` or `LICENSE_PACK_PATH` is needed. * `PRODUCTS` will equal the comma separated list of product names. Set `PRODUCTS` to `all` in order to install the full set of products allowed in the license. * If installation is done over an existing data folder, it is useful to move the old files to sub folder. This option can specified by setting `MOVE_OLD_DATA_TO_SUBFOLDER` to `yes`. * If data packs are to be downloaded, then the option `DOWNLOAD_OPTION` should be set to `yes`. If local data packs are to be used, the option `DOWNLOAD_OPTION` should be set to `no`. * If only data packs are to be downloaded and not installed, `INSTALL_NEEDED` should be set to `no`. If the downloaded or local data packs should be installed, `INSTALL_NEEDED` should be set to `yes`. * `PROXY_SERVER_NAME` and `PROXY_PORT` should both be set if proxy server settings are needed. ### Example 1: Download Data Packs This example specifies the license pack path and requires download of the data packs: ```properties theme={null} LICENSE_PACK_PATH=c:\loqate\loqateLicense INSTALL_FOLDER=C:\loqate\data DOWNLOAD_FOLDER=C:\tmp\DL PRODUCTS=all MOVE_OLD_DATA_TO_SUBFOLDER=yes DOWNLOAD_OPTION=yes INSTALL_NEEDED=yes ``` ### Example 2: Use Local Data Packs This example specifies license key and requires installation by using local data packs available at `c:\DL`: ```properties theme={null} LICENSE_KEY=1111111-523d-4ff2-8558-222222222 INSTALL_FOLDER=C:\loqate\data DOWNLOAD_FOLDER=C:\DL PRODUCTS=all MOVE_OLD_DATA_TO_SUBFOLDER=yes DOWNLOAD_OPTION=no INSTALL_NEEDED=yes ``` A **log file** is written to the folder containing the Install Manager with the date and time stamp corresponding to the execution of the silent mode. The log file will have output indicating success or failure of the execution. ### Preparing Silent Settings File Silent mode settings file can be any text file with a set of the options defined above. ### Running Install Manager in Silent Mode Install Manager can be run in silent mode by providing the command line options: ```bash theme={null} mode=silent silentInstallSettingsPath= ``` On Linux/Unix platforms, Install Manager can be launched by running the script `InstallManager.sh`. On Windows silent mode can be launched by executing the `InstallManager.bat` with the above command line option. ## Config Mode Install Manager can be run in custom configuration using the available set of config options. Using these config options Install Manager can be set up to run such that certain UI options are not presented to the user and certain fields are pre-populated. ### Config File Options The full sets of options that are allowed to be defined are the following: **`OPTION_BRAND_TITLE=`** Customize the company name displayed in Install Manager. **`OPTION_SKIP_DOWNLOAD=`** When set to `yes`, local data packs will be used for installation. **`OPTION_DOWNLOAD_FOLDER=`** Specify the download folder location. **`OPTION_INSTALL_FOLDER=`** Specify the installation folder location. **`OPTION_LOCAL_LICENSE_PATH=`** Specify the path to the license pack file. **`OPTION_LICENSE_AGREEMENT_PATH=`** You can specify the path to your custom license agreement file. **`OPTION_DOWNLOAD_BASE_URL=`** Specify the base download URL. **`OPTION_SKIP_LICENSE_REVIEW=`** When set to `yes`, the License Review screen will be skipped. #### GUI Screen #### Command Line **`OPTION_SELECT_FOLDER_DISABLE=`** When set to `yes`, the folder selection option will be disabled. #### GUI Screen (Disabled) #### Command Line (Disabled) When set to `no`, folder selection option will be enabled. #### GUI Screen (Enabled) #### Command Line (Enabled) **`OPTION_MANDATORY_PRODUCTS=`** Datapacks that need to be installed mandatory can be mentioned in this list enabling the user installs all the required files. For example, `KBCOMMON` is a must in the Loqate data directory along with other country files. ### Config File Example ```properties theme={null} OPTION_SKIP_LICENSE_REVIEW=yes OPTION_SKIP_DOWNLOAD=yes OPTION_INSTALL_FOLDER=C:\\Loqate\\data OPTION_DOWNLOAD_FOLDER= C:\\Loqate\\data OPTION_LICENSE_AGREEMENT_PATH=C:\\Documents\ License_Agreement.txt OPTION_LOCAL_LICENSE_PATH=C:\\Loqate\\data\\loqateLicense OPTION_BRAND_TITLE=Loqate OPTION_MANDATORY_PRODUCTS=KBCOMMON ``` ### Preparing Config File Config mode settings file needs to be an encrypted file for use at Install Manager run time. The text file containing the config options (similar to above example) can be encrypted by running Install Manager with the `-encrypt` command line parameter. Command for encrypting config file: ```bash theme={null} PATH=.\jre6;.\jre6\bin;.;%PATH% start /MIN java -D64 -classpath ".;loqate.jar;InstallManager.jar;.\lib\*" com.loqate.licensemanager.integration.LicenseApplication –encrypt ``` The above will output an encrypted config file `.enc` in the same folder as the input config file. This encrypted file should be bundled with the Installers for executing Install Manager in config mode at the time of Installation. ### Running Install Manager in Config Mode Install Manager can be run in config mode by providing the command line options: ```bash theme={null} mode= configPath= ``` On Linux/Unix platforms, Install Manager can be launched by running the script `InstallManager.sh`. On Windows config mode can be launched by executing the `InstallManager.bat` with the above command line option. ## Important Notes **File and Folder Paths in Windows** While specifying the file or folder path in Windows, please use double backslash `\\` in the path. **Customizing Company Name** All default error messages refer to Loqate. If you wish to have your company name to be shown, please specify the Brand title option. For example: "There was an error during the installation. Please contact Loqate technical support". When `OPTION_BRAND_TITLE=XXX`, the message will be: "There was an error during the installation. Please contact XXX technical support". **License Agreement** By default Loqate license agreement will be shown if the required license agreement file and path are not provided in the config file. **Default Base URL** By default the base URL is [https://download.loqate.com](https://download.loqate.com) # Installation Manager Install Process Source: https://docs.loqate.com/installers/installation-manager-install-process The following sections demonstrate the steps of the installation process for Install Manager installation. The installer to be used depends on the platform and the flavor of the API already installed. On Windows and Linux, if the API installed is of 64-bit flavor, we need to use the 64-bit Install Manager Installer from the corresponding platform. See [installer options](/installers/installation-manager/) for more details. ## Installation Using GUI For Install Manager to work, the Loqate Java API is required. If not found in the installation directory, the following error will be shown. After the welcome screen the next screen requires selection of the installation folder. This folder needs to be the folder where the Loqate API is currently installed. The next screen is the review screen. The next screen will install the Install Manager and complete the installation. Installation of the Install Manager will install the `InstallManager.jar` file, a `lib` folder containing the dependent libraries and a local copy of the Java Runtime Environment (JRE) as well. The JRE is needed to run the Install Manager. This local copy of JRE will not affect any system settings on the target machine. ## Installation Using the Command Line Interface On Linux/Unix platforms, the preferred method of installation is using the command line interface. Installation of the Install Manager will install the `InstallManager.jar` file, a `lib` folder containing the dependent libraries and a local copy of the Java Runtime Environment (JRE) as well. The JRE is needed to run the Install Manager. This local copy of JRE will not affect any system settings on the target machine. # Installers Source: https://docs.loqate.com/installers/introduction Loqate software installation involves installation of the API and the GKR (Global Knowledge Repository) data packs. In the next sections we will walk through the steps of the installation process for the Local API and then the installation of the GKR using the Installation Manager. We will discuss the steps for installation using Graphical User Interface mode for Windows as well as the command line interface for Linux/Unix platforms. ## Recommended Installation Steps 1. [Install the Local API](/installers/local-api-install-process/) 2. Request a license key from Loqate Support at [support@loqate.com](mailto:support@loqate.com) 3. [Install the data packs](/installers/data-installation-and-update-process/) as needed, using Install Manager 4. [Example of installation scenarios](/installers/example/installation-scenarios/) 5. [Learn how to obtain version information](/release-information/how-to-obtain-version-information/) # Local API install process Source: https://docs.loqate.com/installers/local-api-install-process The following sections demonstrate the steps of the installation process for Local API installation. ## Installation Using GUI After seeing the welcome screen and accepting the license agreement, the next screen shows the components to install. For Install Manager to work, the Loqate Java API is required. The next step is to select a folder to install the Local API. If Install Manager was selected as a component to install, then a local copy of Java Run time Environment will be installed in addition to `InstallManager.jar` and a script or a batch file (`InstallManager.bat` for Windows and `InstallManager.sh` for Linux/Unix platforms) for running Install Manager. The Java Runtime Environment will be installed locally so there will be no effect on the system settings in the target machine. ## Installation Using the Command Line Interface On Linux/Unix platforms, the preferred method of installation is using the command line interface. When selecting components, if Install Manager is selected, then the Java API is also installed. If Install Manager is selected as a component to install, the installer will install a local copy of the Java Runtime Environment (JRE) as well. This is needed to run Install Manager. This local copy of JRE will not affect any system settings on the target machine. # Adobe Commerce Integration Guide for Magento Address Validation Source: https://docs.loqate.com/integrations/adobe-commerce Install Address Capture, Address Verify, Email and Phone Validation in Adobe Commerce. Improve checkout experience and customer data accuracy. [Get the Adobe Commerce integration](https://commercemarketplace.adobe.com/gbg-loqate-loqate-integration.html) This guide will help you install, configure and utilise the Loqate Adobe Commerce Integration from the Adobe Commerce Marketplace.
Throughout the guide, we will be referencing Adobe Commerce as the formerly named ‘Magento’.
The Loqate Adobe Commerce integration is a simple package that contains our market leading services designed to allow you to improve your end user experience, reduce failed deliveries and improve data quality for you and your Adobe Commerce customers. We have added best-in-class customer experience optimisations for you to customise your business requirements that best serve your operations. The integration we have designed includes the following services in one simple package: * **Address Capture:** our real-time address validation speeds up address entry, eliminates errors and ensures that your customer database stays up to date and accurate. Our single-line type ahead search uses location biasing to return the address closest to the customer based on their physical location, within just a few keystrokes * **Address Verify:** Our address verification product allows you to parse, cleanse and select the most accurate addresses from our comprehensive data sources. * **Email Validation:** quickly validate email addresses at the point of capture and deliver efficient communications with customers whilst maintaining an up-to-date customer database * **Phone Validation: **quickly validate mobile and landline numbers at the point of capture and deliver efficient communications with customers whilst maintaining an up-to-date customer database The integration allows you to install the above services for a number of use cases, in the most important places within your Adobe Commerce environment, including: * Store checkout pages * Registration pages * Customer account - Creation of customers (admin panel) - Order creation (admin panel) - Customer address importation ## Who is this guide for? There are two primary sections within this guide, listed below: * **Installation:** this is aimed at your technical users with Adobe Commerce knowledge who will be installing the integration into your environment * **Using the Integration:** this is aimed at any user (no high level technical knowledge required) who wishes to use this integration or make configurations for your business to your Adobe Commerce store ### **Prerequisites** For the Loqate integration to work on your Adobe Commerce store there are two prerequisites: * An active Loqate account (available at [account.loqate.com](https://account.loqate.com/)) * A valid API key Please follow the instructions in our [Getting Started guide](/loqate-basics/), paying particular attention to the following: * If you don’t already have an account, follow the instructions in the section titled **1. Create a Loqate account** * Then follow the instructions in the section titled **3. Create an API key** (we recommend you create a generic API key, and make sure you include ‘Adobe Commerce’ in the name you choose) * You can skip the remaining steps, although you may want to return to the section titled **5. Check your usage** once you’ve completed the Adobe Commerce integration **Please note** Your new API key will need to be fully enabled for use with a specific set of features in order to work with this integration. If you created an account specifically for this integration, your API key will automatically be fully enabled and you can move on to the next section of this guide: If not, please follow these instructions: * Once you have created a new API key, or if you want to use an existing key, in your Account Section go to the [Your Services page](https://account.loqate.com/account#/Dashboard/) * Select the key you want to use and look for the **Advanced** menu option API Key Headings * If you **can** see the Advanced option, your key is fully enabled and you can proceed with your integration * If you **cannot** see the Advanced option, please contact our Support team ([on this page](https://www.loqate.com/en-us/contact/), or via [LoqateSupport@gbgplc.com](mailto:%20LoqateSupport@gbgplc.com)) or your Account Manager and ask them to enable your API key for use with Adobe Commerce. Once this is enabled, you can proceed with your integration ## Integration Management This section will include instructions on how to install, upgrade and uninstall the [Loqate Adobe Commerce Integration](https://commercemarketplace.adobe.com/gbg-loqate-loqate-integration.html). As stated in the introduction of this document, this part of the guide is primarily aimed at technical users with knowledge of Adobe Commerce who manage your environment. ### Supported Versions The Loqate integration for Adobe Commerce will support versions of Magento 2.4. It has been built with PHP8. New versions should be backwards compatible and require no extra development on your side after you upgrade. ### Module name Depending on how you’re installing the app you might install from different namespaces. When installing directly via Composer, without going via the Adobe Commerce store, you should use the package name "**lqt/loqate-integration**" (this supersedes "\*\*loqate-integration/adobe"\*\*from version 1.1.8 onwards). When installing from the Adobe Commerce app store you will need to have your Composer credentials in place for **[repo.magento.com](http://repo.magento.com),** and you should install from the package name provided by the app store (as of November 2024 this is "**gbg-loqate/loqate-integration**"). For the examples in this guide, we’ll use the non-store version "**lqt/loqate-integration**". ## Installing the module To begin, open a terminal and run the following command in your Adobe Commerce directory: **composer require lqt/loqate-integration** Next, set up the module by running the following commands: **php bin/magento module:enable Loqate\_ApiIntegration ** **php bin/magento setup:upgrade ** **php bin/magento setup:di:compile ** ## Upgrading the module Before you upgrade: * Back up your files and database. * Start with your test environment. * Keep a copy of any customisation you made to the module’s original code. * Check out the changelog. If you have customised the integrations code, you’ll need to port these customisations after upgrading and resolve any potential conflict. Run the following commands: **composer remove lqt/loqate-integration** **composer lqt/loqate-integration** **php bin/magento setup:upgrade ** **php bin/magento setup:di:compile ** **php bin/magento setup:static-content:deploy ** **php bin/magento cache:clean ** ## Uninstalling the module Before you uninstall: * Back up your files and database. * Keep a copy of any customisation you made to the module’s original code in case you need to reinstall it later. Run the following commands: **composer remove lqt/loqate-integration** **php bin/magento setup:upgrade ** **php bin/magento setup:di:compile ** **php bin/magento setup:static-content:deploy ** **php bin/magento cache:clean ** ## Using the Integration ## Before you start There are configurations that Loqate offer within your account section on a key. The configurations you will see in this guide are solely related to the performance and capabilities of the integration for Adobe commerce. ## Integration Configuration Once the installation process has completed, you can then configure the module in the admin panel of the store. The configuration section for the integration can be found by navigating to **Stores -> Configuration -> Loqate -> Main Settings.** For this integration to work, you need to provide a valid API key to the **API Key** input field found in the configuration section of the module. This is a required field and can be found in the “Your services” section of your account on [https://www.loqate.com/](https://www.loqate.com/). Under the Loqate configuration you will find the below sections which we have within the integration. ## Main Settings **API Key** - Navigate to the **Your Services** section of your Loqate account and copy your API key. Next, navigate back to the Adobe Loqate configuration page and paste it in this field for your integration to work. ## Address Capture Our market leading address capture product allows you to search for and select global accurate premise level addresses from our comprehensive data sources. This service is available to be added in below sections of your Adobe commerce store: * **Enable on Customer Account:** by enabling this, a drop-down list will be displayed in the customer account page, based on the input text - **Enable on Checkout:** by enabling this, a drop-down list will be displayed in the checkout page, based on the input text * **Enable on Customer Account (Admin):** by enabling this, a drop-down list will be displayed in the customer account page in the Admin, based on the input text - **Enable on Create Order (Admin):** by enabling this, a drop-down list will be displayed in the create order page in the Admin, based on the input text The below features and customisations can be found within the config menu for Address Capture. ### **Restrict searchable countries** Merchants can restrict the address results to search only within specific countries. By default, no country is selected and the integration doesn’t apply any country restrictions. Multiple consecutive countries can be selected by clicking on the first country, scrolling towards the end country, holding down SHIFT and clicking on that end country. **Multiple countries can be selected by holding down CTRL and clicking on them**. All the countries can be selected by clicking once within the field and pressing CTRL+A. Guide 1 ## Address Verify Our address verification product allows you to parse, cleanse and select the most accurate addresses from our comprehensive data sources. You are able to determine the level of quality according to your preferences, more information below: As of version 2.0 of the integration **AQI thresholds have been replaced by AVC thresholds**. This brings the app in line with Loqate's recommended Verify usage, and gives users much greater control over how verification decisions are made in checkout and elsewhere. **Address Quality Index**: this is used to indicate the quality of an address. Two factors decide the address quality post-processed verification and match level and Matchscore. Based on the Address Quality chosen, the address will be validated or not. All the settings from Address Verify will be based on the address quality set. Address Quality and index: * Excellent - A - Verifiable to at last premise level without changes * Good - B - Verifiable to at least thoroughfare level with minor changes * Average - C - Verifiable to at least locality level with moderate changes * Poor - D - Only verifiable to at least locality level with more than moderate changes * Bad - E (or empty) - If an address is unable to be parsed, the AQI can be empty **AVC Threshold** is the quality threshold that will trigger a validation message to the user in the event the address they have provided does not exceed the threshold set. By default we use a best practice threshold for AVC. This requires a **verification status** of `Partially Verified` or better, a **verification match level** of `4 (premise)` or better, and a **matchscore** above `95`. If you want to alter the standard threshold, you can enable `Override default AVC threshold?` and then change the thresholds. More information can be found in the [AVC documentation](/report-codes/address-verification-code/). This service is available to be added in below sections of your Adobe commerce store: 1. **Enable on Customer Account:** the quality of the address will be verified in the Customer Account based on the address quality index set 2. **Enable on Checkout:** the quality of the address will be verified in the Checkout page based on the address quality index set 3. **Enable on Customer Account (Admin):** the quality of the address will be verified in the Customer Account (Admin) based on the address quality index set 4. **Enable on Create Order (Admin):** the quality of the address will be verified in the Create Order page based on the address quality index set 5. **Enable on Customer Import (Admin):** the quality of the address will be verified at the import, based on the address quality index set ## Email Validation Validate the accuracy of the emails captured in your Adobe Commerce environment with our simple but effective email validation product. In the config menu for this service you will first see the option below: * **Prevent Submit on Invalid Email Address: **this is used to prevent the user from adding invalid email in the email fields. If set to NO then a warning will be displayed at the save address in which the customer is told that the email address is unable to be validated. This may be useful if you do not depend too much on the accuracy of the email address and wish to proceed with the entered information. If the end user selects ‘Save’ a second time, the entered email address will be accepted and the user can proceed. If set to YES then your end user will be unable to proceed until a validated email address has been entered. This service is available to be added in below sections of your Adobe commerce store: * **Enable on Customer Account** - if this is set to YES then the validation will be displayed on the customer account page - **Enable on Checkout** - if this is set to YES then the validation will be displayed on the checkout page * **Enable on Register** - if this is set to YES then the validation will be displayed on the registration page - **Enable on Customer Account (Admin)**- if this is set to YES then the validation will be displayed on the customer account page in the Admin * **Enable on Create Order (Admin)** - if this is set to YES then the validation will be displayed on the create order page in the Admin For email validation the Loqate Integration returns Valid, Invalid and Valid\_CatchAll responses. In the config you will see an option entitled ‘Accept Valid\_CatchAll response code’. This means that a domain has been validated but the account could not be validated (particularly for employment email addresses). You have the option to allow all responses, by selecting Yes in this option, or NO only allows fully validated emails to be accepted. Email Validation * **Validation timeout: **the request timeout can also be customised, the default value and maximum is 15000 ms.(15 seconds). If you wish to reduce this, you can enter the value in milliseconds here ## Phone Validation Validate the accuracy of the phone numbers captured in your Adobe Commerce environment with our simple but effective phone validation product. In the config menu for this service you will first see the option below: * **Prevent Submit on Invalid Phone Number: **this is used in order to prevent the user from adding invalid phone numbers in the phone fields If set to NO then a warning will be displayed at the save address in which the customer is told that the phone number is unable to be validated. This may be useful if you do not depend too much on the accuracy of the phone number and wish to proceed with the entered information. If the end user selects ‘Save’ a second time, the entered phone number will be accepted and the user can proceed. If set to YES then your end user will be unable to proceed until a validated email address has been entered. This service is available to be added in below sections of your Adobe commerce store: * **Enable on Customer Account:** if this is set to YES then the validation will be displayed on the customer account page - **Enable on Checkout:** if this is set to YES then the validation will be displayed on the checkout page * **Enable on Customer Account (Admin):** if this is set to YES then the validation will be displayed on the customer account page in the Admin - **Enable on Create Order (Admin):** if this is set to YES then the validation will be displayed on the create order page in the Admin ## Additional config ### IP2Country This optimisation can pre-determine the country of the end user’s IP to populate the country selection field within parts of the integration. The user’s IP (if redeemable) is gathered by Loqate and the API returns the country ISO2 code, that is then mapped within Magento’s country form. The form will be set by default to that country and addresses will be searched from that country unless the customer changes it. Upon accessing a page with an address form creation (new customer address, new address at checkout), an Ip2Country request is done if configured for the integration:\\ Ip2Country ### Loqate API results can be customised via the enhanced fields functionality. Before the address is auto-completed by the end user, values can be enhanced by specifying the fields within this section of the integration config. Trailing characters can be added in admin config page, for example ! for capitalisation and \$ to remove diacritics. The fields are mapped as following: | Frontend Form Field | Backend Text Input | | ------------------- | ------------------ | | Street Address1 | Line1 | | Street Address2 | Line2 | | State/Province | ProvinceName | | City | City | Note: State/Province will be changed only in the case of a text field, as Adobe Commerce displays a dropdown for certain countries. Enabled Fields In the screenshot above, all values will be enhanced – replaced from the enhanced fields call, capitalised and without diacritics. Enabled Fields 1 This is an example where diacritics were removed from the city name, as it would have been the same as the value in the State/Province field. Additional data can be returned within other fields(ex: Latitude, Longitude), but that data is not mapped to form fields and the values will not be replaced. These values can be found in the API response call. ### Multiple storefront support The Loqate integration supports multiple store(s) configuration. If you had an operation that needed to interact differently for the UK, and another for a Spanish storefront, then this capability has been introduced to allow management of this. The priority for configuration values is defaulted to the standard Magento site:**Store->Website->Default** Multiple Store In this store, the API key is inherited from the parent website, which inherits it from the Default config: Multiple Store 1 Different stores can use different API keys for the Loqate service, and even different settings (e.g.: restrict one store to specific countries and another to other countries). Multiple Store 2 ## Troubleshooting The development of this integration has been concluded in isolation from other third-party Adobe Commerce integrations, and therefore may not be compatible with these. # Loqate Integrations for Commerce and CRM Platforms Source: https://docs.loqate.com/integrations/all-integrations Pre-built Loqate integrations for Shopify Plus, Adobe Commerce, BigCommerce, Salesforce, Microsoft Dynamics 365, commercetools, and more.
Shopify Plus Shopify Plus

Shopify Plus

Native integration for Shopify Plus stores

Adobe Commerce

Adobe Commerce

Magento and Adobe Commerce integration

BigCommerce BigCommerce

BigCommerce

BigCommerce platform integration

Microsoft Dynamics 365 Microsoft Dynamics 365

Microsoft Dynamics 365

Dynamics 365 CRM integration

Salesforce

Salesforce Commerce Cloud

Salesforce Commerce Cloud integration

commercetools commercetools

commercetools

commercetools headless commerce platform

Salesforce

Salesforce CRM

Salesforce CRM integration

Shopware

Shopware

Shopware e-commerce platform

Reapit

Reapit

Reapit property software integration

Oracle Cloud

Oracle Cloud

Run Loqate Verify in your OCI tenancy

# BigCommerce Integration Guide for Address Validation Setup Source: https://docs.loqate.com/integrations/bigcommerce Add Loqate address lookup to BigCommerce checkout. Install via Script Manager with generated mappings for standard BigCommerce fields. Before you start, make sure you have a Loqate account. If you don’t already have one, you will need to [sign up](https://account.loqate.com/Register/). ## Setup In order to set up Loqate for BigCommerce, please follow these steps: * In your Loqate account select **+ Add a service**: AddService * Then select **Start setup**. StartSetup * You will be presented with two options: Website or App. Select **App**, tick **BigCommerce** from the suggested options below, and hit **Next**. SelectApp * Here you will be presented with a code snippet. Copy this, as you'll need to use it later. * Click the "Generate my mappings" button at the bottom of the page. This will generate mappings that match the standard BigCommerce field layout. * Next, log in to BigCommerce and go to **Script Manager**. You can access this by clicking Sidebar > Storefront > Script Manager. BigCommerceScriptManager * Once in this section you want to add Script Library, then fill out the checkboxes as follows: Checkboxes1 Checkboxes2 * In the **Script Contents** area, paste the code snippet you generated earlier. * Once this has been done the Loqate functionality will work as follows: LoqateAddressLookup ## Troubleshooting If you require any help, please do not hesitate to get in touch with our [support teams](https://www.loqate.com/resources/support/). # commercetools Integration Guide Source: https://docs.loqate.com/integrations/commercetools Integrate Address Capture, Address Verify, Email and Phone Validation with commercetools composable commerce. Reference implementation guide. The Loqate commercetools plugin (`loqate-commercetools-b2c-frontend`) provides integration between [the commercetools platform](https://commercetools.com/) and the Loqate API. ## Overview The loqate-commercetools repository contains a commercetools plugin that integrates with the Loqate API to provide access to Address Capture, Address Verify, Email Validation, and Phone Validation. The plugin makes modifications in the following areas: * Checkout * My Account * Registration The modifications are applied in two areas: * **Backend-for-frontend (BFF):** commercetools extensions - used to make the Loqate API calls and handle the responses * **Frontend:** React components - used to display the address capture, address verification, email validation, and phone validation features ## Feature overview The following Loqate products are supported: * **Address Capture:** suggests addresses based on user input * **Address Verify:** verifies address validity * **Email Validation:** validates email addresses * **Phone Validation:** validates phone numbers These features can be toggled on or off through project settings. Please refer to the Feature Overview page for more information on the supported features. ## Setup The Setup Guide provides instructions on how to set up and configure the Loqate commercetools Composable Commerce Plugin. The Studio Settings page provides instructions on how to configure the Loqate commercetools Composable Commerce Plugin in the Studio. ## Disclaimers The loqate-commercetools repository demonstrates the integration of Loqate Address Capture, Address Verify, Email Validation and Phone Validation features with commercetools. It is to be used as a reference implementation for your own integration - it is not intended to be used as is in a production environment. Please refer to the Setup Guide for instructions on the changes required to carry over the Loqate commercetools integration into your own project. It uses the [commercetools Frontend B2C template](https://docs.commercetools.com/frontend-development/b2c-store-launchpad-overview) as a base, specifically the latest as of 3 June 2024. This plugin: * Does not aim to keep up with the latest changes in the commercetools frontend template, but rather to provide a reference implementation * Should not be cloned and used as is in a production environment. It is recommended to use it as a reference and adapt it to your own needs by copying the relevant parts of the code and applying them to the merchant’s implementation * Does not aim to fix any bugs or issues in the commercetools frontend template. If you encounter any issues related with the B2C Frontend Template, please refer to the commercetools documentation * Is not responsible for any bugs or issues coming from the commercetools B2C Frontend Template, nor any customizations made to it and does not aim to fix them. You should refer to the commercetools documentation for support for any issues related to the specific version of the commercetools B2C Frontend Template that you are using * Does not take an opinion of the flow you should support in your store - it applies changes to the out of the box checkout, my account and registration flows ## Navigation Review the Loqate products available in the integration. Follow these steps to get started. Configure the Loqate plugin in the commercetools Studio. # commercetools Integration Features for Address and Contact Validation Source: https://docs.loqate.com/integrations/commercetools-feature-overview Address Capture, Address Verify, Email and Phone Validation features for commercetools. Configure validation on checkout and My Account. The following Loqate products are available in the Loqate commercetools integration: * [Address Capture](#address-capture) * [Address Verify](#address-verify) * [Email Validation](#email-validation) * [Phone Validation](#phone-validation) For each product we've listed out relevant documentation, broken down the integration flow, and provided supported configuration options. ## Address Capture | Link | URL | | :----------- | :-------------------------------------------------------------------------------------------- | | API Docs | [Loqate Address Capture API Documentation](/api-reference/address-capture/apis) | | Product Docs | [Loqate Address Capture Product Documentation](https://www.loqate.com/en-gb/address-capture/) | Address Capture suggests possible addresses based on user input. The integration works as follows: * Calls to the [Find](/api-reference/address-capture/find) endpoint are made continuously until an address of type `Address` is found * If the type is `Container`, the system continues making calls to the Find endpoint * Once an address of type `Address` is found, the [Retrieve](/api-reference/address-capture/retrieve) endpoint is called to capture the full address details ### IP to Country The IP to Country feature determines the user’s country based on their IP address. The country field is auto-populated with the result. Supported configuration options: * `LOQATE_IP_TO_COUNTRY_ENABLED` - toggle for IP to country functionality on or off * `LOQATE_ADDRESS_LOOKUP_CHECKOUT` - toggle for address lookup during checkout * `LOQATE_ADDRESS_LOOKUP_MY_ACCOUNT` - toggle for address lookup on the “My Account” page * `CHECKOUT_ADDRESS_REQUEST_LIMIT` - debounce time for address capture requests * `RESTRICTED_COUNTRIES` - list of restricted country ISO2 codes to exclude from address capture suggestions **Integration areas:** * Checkout * My Account ## Address Verify | Link | URL | | :----------- | :--------------------------------------------------------------------------------------------------- | | API Docs | [Loqate Address Verify API Documentation](/api-reference/address-verify/international-batch-cleanse) | | Product Docs | [Loqate Address Verify Product Documentation](https://www.loqate.com/en-gb/address-validation/) | | AVC | [Loqate Address Verify Codes Documentation](/report-codes/address-verification-code/) | Address Verifiy evaluates the validity of the user-inputted address upon form submission. The system validates the address using fields like country, city, postal code, and street address. Based on Address Verify's response, the address is scored as either `Good`, `Questionable`, or `Invalid` using the provided `Address Verification Code`. 1. **Good Address:** no issues detected 2. **Questionable Address:** the user is prompted to accept a corrected address suggested by Address Verify. The user can either edit the address manually or proceed with the initial input 3. **Invalid Address:** a suggestion is provided to update the address. The user can either update or proceed with the original input **Supported configuration options:** * `LOQATE_ADDRESS_VERIFICATION_CHECKOUT` - toggle for address verification during checkout * `LOQATE_ADDRESS_VERIFICATION_MY_ACCOUNT` - toggle for address verification on the “My Account” page * `LOQATE_AVC` - minimum matchscore threshold for an address to be considered `Good` **Integration areas:** * Checkout * My Account ## Email Validation | Link | URL | | :----------- | :------------------------------------------------------------------------------------------------------- | | API Docs | [Loqate Email Validation API Documentation](/api-reference/email-validation/apis) | | Product Docs | [Loqate Email Validation Product Documentation](https://www.loqate.com/en-gb/email-validation-software/) | Email Validation verifies the user’s email address during input, ensuring the format is correct and that the address is valid. **Supported configuration options:** * `LOQATE_EMAIL_VALIDATION_CHECKOUT` - toggle for email validation during checkout * `LOQATE_EMAIL_VALIDATION_MY_ACCOUNT` - toggle for email validation on the “My Account” page * `LOQATE_EMAIL_VALIDATION_REGISTRATION` - toggle for email validation during registration * `LOQATE_EMAIL_VALIDATION_TIMEOUT_MILLISECONDS` - timeout duration for email validation requests * `LOQATE_INCLUDE_VALID_CATCHALL_EMAILS` - determines whether `Valid_CatchAll` email validation responses are considered valid. See the [Email Validation API documentation](/api-reference/email-validation/apis) for more information on `Valid_CatchAll` behaviour (specifically the ResponseCode response field) **Integration areas:** * Checkout * My Account * Registration ## Phone Validation | Link | URL | | :----------- | :----------------------------------------------------------------------------------------------- | | API Docs | [Loqate Phone Validation API Documentation](/api-reference/phone-validation/individual-validate) | | Product Docs | [Loqate Phone Validation Product Documentation](https://www.loqate.com/en-gb/phone-validation/) | Phone Validation checks the correctness of the user-inputted phone number, ensuring the number is properly formatted and valid. **Supported configuration options:** * `LOQATE_PHONE_VALIDATION_CHECKOUT` - toggle for phone validation during checkout * `LOQATE_PHONE_VALIDATION_MY_ACCOUNT` - toggle for phone validation on the “My Account” page * `LOQATE_PHONE_VALIDATION_REGISTRATION` - toggle for phone validation during registration * `LOQATE_INCLUDE_MAYBE_PHONE_NUMBERS` - determines whether the `Maybe` phone number validation state is treated as valid. See the [Phone Validation API documentation](/api-reference/phone-validation/individual-validate) for more information on `Maybe` behaviour (specifically the IsValid response field) **Integration areas:** * Checkout * My Account * Registration ## Navigation Learn the basics of the integration. Follow these steps to get started. Configure the Loqate plugin in the commercetools Studio. # commercetools Integration Setup with Backend and Frontend Changes Source: https://docs.loqate.com/integrations/commercetools-setup-guide Install Loqate validation in commercetools B2C Frontend. Backend-for-frontend controller setup and React component integration instructions. ## Prerequisites * Node.js 18.16.0 or higher * Yarn 1.22.19 or higher * A commercetools project * commercetools Frontend Studio * [A Loqate API key](/loqate-basics/create-an-api-key) ## Disclaimers * The loqate-commercetools repository is meant to be used as a reference to integrate Loqate services into a commercetools B2C Frontend project * In order to do so, you will need to get the latest version of the commercetools B2C Frontend template and apply the changes described in the [Backend-for-Frontend Changes](#backend-for-frontend-changes) and [Frontend Changes](#frontend-changes) sections on top of your existing implementation * On the frontend, the visual appearance of this Loqate integration is meant to be relatively simple and independent so that it can be carried over to your own project with minimal effort * On the backend-for-frontend, the Loqate integration is implemented so that it can be carried over to your own project with minimal effort ## Installation * Clone [the repository](https://github.com/loqate/loqate-commercetools) * Run the standard commercetools Frontend setup process as described in the [commercetools Frontend development docs](https://docs.commercetools.com/frontend-development/cli) ## Project configuration - Studio settings Please refer to the [Studio Settings](/integrations/commercetools-studio-settings) documentation for instructions on how to configure the project. ## Backend-for-frontend changes ### LoqateController The `LoqateController` is a key component that interacts with the Loqate API to handle address capture, address verification, and validation for email and phone numbers. It serves as the gateway for these services, ensuring they are integrated within the commercetools environment. **Key features:** * **Loqate API Client:** the controller initializes the `LoqateApi` client, configured with project settings like API key, address quality threshold, and validation timeouts * **Address Management:** it provides methods for capturing, verifying, and validating addresses based on user input * **Email & Phone Validation:** the controller includes email and phone validation methods that ensure the correctness of these fields as per the rules defined in the Loqate API * **IP-based Country Detection:** it also enables the retrieval of the user’s country based on their IP address for better geolocation-based address suggestions ### Controller functions overview **1. `createLoqateApi(actionContext: ActionContext): LoqateApi`** * **Description:** this function creates a `LoqateApi` client instance using the project configuration. The API key, address verification threshold, and other settings are passed to the client. This ensures that each API call is correctly authenticated and configured according to the commercetools project * **Use case:** called internally by the controller before making requests to the Loqate API **2.** `getAddresses(request: Request, actionContext: ActionContext): Promise` * **Description:** this function handles address lookup requests. It takes user-provided details (like text, city, country) and returns address suggestions from the Loqate API. The result is a list of possible address matches based on the input * **Use case:** used during My Account adding of new address or checkout forms to provide real-time address suggestions as the user types * **Parameters:** * `request`: contains query parameters such as `id`, `address`, `countryIsoCode`, and `city` * `actionContext`: provides access to the current commercetools project configuration * **Response:** returns a list of matching addresses in JSON format **3.** `verifyAddress(request: Request, actionContext: ActionContext): Promise` * **Description:** verifies the accuracy of a provided address by checking against Loqate’s address verification system. It validates fields such as country, postal code, and city * **Use case:** called when the user submits a form that requires verified address data, such as during checkout * **Parameters:** * `request`: contains the address details (`country`, `postalCode`, `city`, and `address`) to be verified * `actionContext`: accesses the commercetools project configuration * **Response:** returns whether the address is valid, questionable, or invalid **4.** `getCountryByIp(request: Request, actionContext: ActionContext): Promise` * **Description:** retrieves the country of the user based on their IP address, leveraging Loqate’s IP-to-country service. If the request does not directly provide the client IP, it attempts to extract it from the `x-forwarded-for headers` * **Use case:** used to pre-fill the country field in checkout or registration forms for a better user experience * **Parameters:** * `request`: contains the client IP address or retrieves it from headers * `actionContext`: provides the commercetools project configuration * **Response:** returns the country detected from the user’s IP address **5.** `validateEmail(request: Request, actionContext: ActionContext): Promise` * **Description:** validates an email address using Loqate’s Email Validation service, ensuring that the email is correctly formatted and that it meets the required validation criteria * **Use case:** used to validate email addresses during registration, checkout, or other form submissions where email accuracy is essential * **Parameters:** * `request`: contains the email address to be validated * `actionContext`: accesses project configuration for Email Validation settings * **Response:** returns the validation status of the email (e.g., valid, invalid, or catch-all) **6.** `validatePhone(request: Request, actionContext: ActionContext): Promise` * **Description:** validates a phone number provided by the user using Loqate’s Phone Validation service, ensuring the phone number format is correct and valid for the given country * **Use case:** typically used during checkout or registration to ensure that users provide valid contact numbers * **Parameters:** * `request`: contains the phone number and the country code for validation * `actionContext`: provides project-specific settings for phone validation * **Response:** returns the validation status of the phone number **7.** `getSettings(request: Request, actionContext: ActionContext): Promise` * **Description:** retrieves and returns the project settings related to the Loqate integration. These settings determine the behaviour of Address Capture, Address Verify, Email Validation and Phone Validation features * **Use case:** this function is used to get the current Loqate-related settings for specific use cases, such as checkout or account management * **Response:** returns a JSON object containing the current configuration for Loqate in the project **8.** `getRestrictedListedCountries(request: Request, actionContext: ActionContext): Promise` * **Description:** fetches a list of countries that are restricted from using Loqate services in the current project. This can be used to prevent address capture or validation in specific regions * **Use case:** used in form validations to check if a user’s country is restricted before allowing further actions * **Response:** returns a JSON object containing restricted countries ### LoqateApi class overview **Key Methods in** `LoqateApi` * `getAddresses()`: fetches address suggestions based on user input * `verifyAddress()`: verifies the accuracy of a provided address * `getCountryByIp()`: retrieves the user’s country based on their IP address * `validateEmail()`: validates the format and deliverability of an email address * `validatePhone()`: validates the format and correctness of a phone number ### Utility functions `isValidAddress(matchScore, addressVerificationLevel, goodAddressMinimumMatchscore)` * Description: checks if an address is valid based on its matchscore and verification level * Use Case: used to determine if an address should be accepted as valid, questionable, or invalid `extractDescription(description)` * **Description:** extracts the postal code and city from an address description string * **Use Case:** used internally to parse and normalise address data `extractCountryIsoCode(id)` * **Description:** extracts the country ISO code from an address ID string * **Use Case:** helps to normalise address data ## Frontend changes ### Loqate Context The `LoqateContext` provides a centralized state management system for Loqate-related features such as address capture, address verification, email validation, and phone validation. It encapsulates multiple Loqate API integrations and makes them accessible to components throughout the application via React’s context API. **Key Responsibilities:** * **Address Lookup:** Listens to user input and fetches address suggestions from the Loqate API, debouncing the requests to reduce unnecessary API calls. The context updates the suggested addresses list and allows the user to select an address. * **Address Verification:** Verifies the address provided by the user using the Loqate API. It triggers validation when an address is manually entered or submitted. The context validates the address based on the Loqate response, ensuring its accuracy. * **Email and Phone Validation:** Integrates email and phone number validation, with the ability to validate inputs using the corresponding Loqate APIs. Results are stored in the context for use across components like checkout or user account management. * **IP-to-Country Mapping:** Automatically fills in the country based on the user’s IP address, improving user experience and preventing invalid country selections. Here’s a detailed description of the exposed functions in the `LoqateContext`: **Exposed functions** **1.** `setLoqateAddress(value: LoqateAddress)` * **Description:** updates the current address stored in the context based on the user’s input or address selection. It triggers address suggestions when the input changes and resets the address verification state if the address changes * **Use case:** called whenever the user updates their address input, whether through manual input or selecting an address from the suggestions dropdown * **Parameters:** * `value`: the updated address object containing fields like `text`, `city`, `countryIsoCode`, etc. **2.** `verifyAddress(loqateAddress: LoqateAddress): Promise` * **Description:** verifies the provided address using the Loqate API to ensure it’s valid. It returns a `LoqateIsValidAddress` object, indicating whether the address is valid or not * **Use case:** used to validate addresses during adding of new address in My Account or checkout processes where accurate address entry is critical * **Parameters:** * `loqateAddress`: the address object that needs to be verified * **Returns:** a promise resolving to an object with `isValid: true` or `false` depending on whether the address is valid **3.** `validateEmail(): Promise` * **Description:** validates the email address associated with the current Loqate address. If Email Validation is enabled in the Loqate settings, it sends the email to Loqate’s validation API and updates the context with the result * **Use case:** triggered to validate an email when users input their email address in a form, commonly during registration or checkout * **Returns:** a promise resolving to a boolean indicating whether the email is valid (`true`/false`), or `undefined\`\`\` if validation is not enabled **4.** `validatePhone(): Promise` * **Description:** validates the phone number provided in the `LoqateAddress` object using the Loqate API. If Phone Validation is enabled, it checks the number’s format and correctness based on the country * **Use case:** used to validate phone numbers during form submission (e.g., in checkout forms) to ensure that the provided number is valid * **Returns:** a promise resolving to a boolean indicating whether the phone number is valid (`true`/`false`), or `undefined` if validation is not enabled **5.** `setBypassAddressVerification(bypass: boolean)` * **Description:** sets a flag to bypass Address Verify. This is useful in scenarios where the user wants to skip the verification process or manually override an invalid address * **Use case:** typically used when users manually input invalid or questionable addresses and opt to bypass automatic verification for any reason by * **Parameters:** * `bypass`: a boolean value that, when set to `true`, bypasses Address Verify **6.** `setLoqateSettings(loqateSettings: LoqateSettings)` * **Description:** updates the Loqate settings used for address lookup and validation, including enabling or disabling email, phone, and address validation features * **Use case:** used to configure or reconfigure Loqate settings dynamically (e.g., different pages might require different settings) * **Parameters:** * `loqateSettings`: the settings object that dictates how Loqate functionality is used (e.g., enabling/disabling email or phone validation) The context handles API calls using RxJS operators like `debounceTime`, `distinctUntilChanged`, and `switchMap` to manage user input efficiently and ensure smooth address verification and lookup processes. ## Address Capture The `AddressCapture` component is responsible for capturing and suggesting addresses based on user input. It integrates seamlessly with the Loqate Context and allows for dynamic address suggestions and selection. **Key features:** * **Input field:** the component displays an input field where users can begin typing their address. As they type, the component fetches address suggestions from Loqate based on the user’s input * **Address suggestions dropdown:** while the input field is focused, the component shows a dropdown of suggested addresses. These suggestions come from the Loqate API, and users can click on any suggestion to populate the address fields automatically * **Manual and auto address handling:** the component supports both manual entry and auto-selection of addresses. If a user selects an address from the dropdown, the address is treated as an auto-populated value, while manual entries bypass the suggestion feature * **Debouncing and API efficiency:** to minimize API calls, user input is debounced, ensuring that requests are only sent after a specified delay in typing * **Handling nested addresses (address containers):** in cases where the address suggestion is a container (e.g., a boulevard that contains many addresses), the component displays an icon, allowing the user to recognize such cases and continue refining their search ## Restricted Countries This code defines a React custom hook called `useRestrictedCountries` that retrieves and manages the list of countries that are not restricted, filtering out any countries that are restricted based on an external API call to the `loqate/getRestrictedCountries` action via the `commercetools` SDK. ### Key elements **1.** **State management:** * `countries`: this state holds the list of available countries, which is initialized with a static list of all countries (`allCountries`) * `fetchingInProgress`: a boolean state to track if the fetching process is currently ongoing * `successfullyFetched`: a boolean state indicating whether the fetching was successfully completed **2.** **API integration:** * The `fetchRestrictedCountries` function asynchronously calls the `loqate/getRestrictedCountries` API action using the `commercetools SDK`. It expects a response containing restricted country codes **3.** **Logic for filtering restricted countries:** * The API response provides a list of restricted countries * The list of restricted countries is mapped and filtered to remove any invalid entries (i.e., missing or empty country codes) * The hook filters out the restricted countries from the full list (`allCountries`) **4.** **Side effects (useEffect):** * On component mount, the hook triggers the API call to fetch restricted countries * During this process, `fetchingInProgress` is set to `true` and `successfullyFetched` is updated based on whether the call succeeds or fails * In case of an error, the hook logs the error and falls back to the default list of all countries **5.** **Observable and RxJS integration:** * The code uses RxJS operators (`map`, `tap`, `catchError`) to handle the API call, map the response, and manage error handling * The `subscribe` function applies the country filtering logic and updates the `countries` state accordingly ## Navigation Learn the basics of the integration. Review the Loqate products available in the integration. Configure the Loqate plugin in the sommercetools Studio. # commercetools Studio Settings for Loqate Validation Services Source: https://docs.loqate.com/integrations/commercetools-studio-settings Configure Loqate Address Capture, Address Verify, Email and Phone Validation in commercetools Studio. Set API keys and validation thresholds. Refer to the [commercetools Frontend Studio documentation](https://docs.commercetools.com/frontend-studio/accessing-the-studio) for instructions on how to access the studio. StudioSettings ## Settings The following settings are configurable in the `Project settings`, found in the `projectConfiguration.json` file: | Name | Env Variable | Description | | :------------------------------------------------ | :----------------------------------------------- | :---------------------------------------------------------------------------------- | | `Project Key` | LOQATE\_API\_KEY | The API key used to authorize requests against Loqate | | `IP to Country` | LOQATE\_IP\_TO\_COUNTRY\_ENABLED | Toggles IP to country functionality on or off | | `Restricted Countries` | RESTRICTED\_COUNTRIES | A list of restricted country ISO2 codes | | `Checkout Address Request Limit` | CHECKOUT\_ADDRESS\_REQUEST\_LIMIT | Debounce time for address capture requests | | `Checkout Address Lookup` | LOQATE\_ADDRESS\_LOOKUP\_CHECKOUT | Toggle for address lookup during checkout | | `My Account Address Lookup` | LOQATE\_ADDRESS\_LOOKUP\_MY\_ACCOUNT | Toggle for address lookup on the My Account page | | `Checkout - Address Verify` | LOQATE\_ADDRESS\_VERIFICATION\_CHECKOUT | Toggle for address verification during checkout | | `My Account - Address Verify` | LOQATE\_ADDRESS\_VERIFICATION\_MY\_ACCOUNT | Toggle for address verification on the My Account page | | `Checkout Email Validation` | LOQATE\_EMAIL\_VALIDATION\_CHECKOUT | Toggle for email validation during checkout | | `My Account Email Validation` | LOQATE\_EMAIL\_VALIDATION\_MY\_ACCOUNT | Toggle for email validation on the My Account page | | `Checkout Phone Validation` | LOQATE\_PHONE\_VALIDATION\_CHECKOUT | Toggle for phone validation during checkout | | `My Account Phone Validation` | LOQATE\_PHONE\_VALIDATION\_MY\_ACCOUNT | Toggle for phone validation on the My Account page | | `Registration Phone Validation` | LOQATE\_PHONE\_VALIDATION\_REGISTRATION | Toggle for phone validation during registration | | `Maybe' Phone Number Validation State is Valid` | LOQATE\_INCLUDE\_MAYBE\_PHONE\_NUMBERS | Determines whether the `Maybe` phone number validation state is treated as valid | | `Valid_CatchAll' Email Validation State is Valid` | LOQATE\_INCLUDE\_VALID\_CATCHALL\_EMAILS | Determines whether `Valid_CatchAll` email validation responses are considered valid | | `Email Validation Timeout (milliseconds)` | LOQATE\_EMAIL\_VALIDATION\_TIMEOUT\_MILLISECONDS | Timeout duration for email validation requests | | `AVC - Good Address Matchscore` | LOQATE\_AVC | The minimum matchscore threshold for an address to be considered `Good` | ## Navigation Learn the basics of the integration. Review the Loqate products available in the integration. Follow these steps to get started. # Microsoft Dynamics 365 Integration Guide Source: https://docs.loqate.com/integrations/microsoft-dynamics-365 Install Loqate Address Search, Email and Phone Verification in Dynamics 365. Add validation controls to contact forms and custom objects. This guide will take you through the steps require to install and configure the Loqate Dynamics 365 integration in your Dynamics 365 instance. ## Prerequisites In order to install and configure the Loqate Dynamics 365 integration you will need the following: * The Loqate solution zip file * A Loqate API key (for more information see our [Creating API Keys page](/loqate-basics/create-an-api-key)) * Administrative access to your Dynamics 365 environment ## Installation Installing the Loqate Dynamics 365 integration involves the following steps: 1. [Import the solution](#importing-the-solution) 2. [Configure your forms to use Loqate controls](#configuring-your-forms) (for each form you can add controls for Email Verification, Phone Verification and Address Search) We will talk you through how to complete each step, using a standard contact form as an example (you can then apply the same process to each of your forms as required). ## Importing the solution * From your Dynamics 365 environment select Settings > **Advanced Settings**. This will open your Business Settings in a new tab * From the Customisation section of the menu, select **Solutions** * Select **Import Solution** D365 Install 1 * A menu will appear allowing you to browse for the Loqate solution zip file - select this and click **Next** * The version of the solution you're importing will display, and you will see a warning if you're updating an existing installation to a new version, or installing a version you’ve already installed previously D365 Install 2 * Select **Import** * A bar will appear at the top of the page reading 'Currently importing solution “loqate\_dynamics”.' D365 Install 3 * If you need to navigate away while this is importing, you can - the process will run in the background * Once the import is complete, the progress bar will turn green and read 'Solution “loqate\_dynamics” imported successfully' D365 Install 4 At this point you can move on to the next step, and start configuring your forms. ## Configuring your forms With the solution imported into your environment, the next step is to configure your forms to use Loqate controls. There is a control for each of the services available in the solution (you can click the links below to go to the relevant section of this document): * [Email Verification](#email) * [Phone Verification](#phone) * [Address Search](#address) The configuration method is similar for each control, although the specific configuration options are different depending on which control you're using. For this example we’re going to add the controls to the standard Customer Contact form, which looks like this: Dynamics Contact List Your forms may well be different and contain different fields or configurations, but you can apply the same principles. We’re going to add Loqate controls to the Email, the Mobile Phone and Address 1 fields. All control configurations happen on the form editor. ### Email Here are the steps to take to add Loqate controls to the Email field. * From your Dynamics 365 environment select Settings > **Advanced Settings**. This will open your Business Settings in a new tab * From the Customisation section of the menu, select Customizations > **Customise the system** * Select the form you want to update (for this example we're editing “AI for sales”) to open the form editor Dynamics Form List The form editor is where you will be configuring the Loqate controls for your fields. If you’re following the guides for Phone and Email and the steps say “Go to the form editor for your form”, this is where you want to be. * Select the Email field in your form to open its Properties menu on the right-hand side of the screen * Expand the Components section, and select the **+ Component** button Dynamics Add Component * If you’ve installed or used Loqate before, the Email control may already be in the quick selection menu. If this is the first time you’re installing Loqate, however, you’ll likely need to look the component up * To do this, select **Get more components** Dynamics Component List * Use the search bar to search for “Loqate”. The control is called **Loqate - Email Verification** * Once you have selected the control you will be prompted for some configuration information Dynamics Email Configuring * The options available for Email Verification are: * **API Key:** your API key for accessing Loqate services (this is a **required field**) * **Prevent saving invalid emails:** with this set to True, when an email is verified and found to be invalid a user will not be able to save the form until they have entered and validated a correct email address * With those settings entered, select Done to set the component * You should now see the component update in the preview Dynamics Email Field Updated * Select **Save and Publish** to update your form and publish the control. Depending on your form setup, this can take a little time. Once the form is published, the Email field will be using the Loqate control. By clicking the button you will now be able to validate an entered email address. ### Phone Installing the phone control is a similar process to the Email control, just with a couple of extra options. * Go to the Form editor for your form * Select the **Phone** field to open its Properties menu * Expand the Components section, and select the **+ Component** button * Find the **Loqate - Phone Verification** control and select it * Here are the options for this control: * **API Key:** your API key for accessing Loqate services (this is a required field) * **Prevent saving invalid numbers:** with this set to True, when a number is verified and found to be invalid a user will not be able to save the form until they have entered and validated a correct number * **Pass if Maybe:** it's possible for the Phone Validation service to respond with a status of “Maybe”. This option will allow you to select how you want the control to behave in this scenario: setting this to **True** will mean the control returns a positive result for a maybe, while **False** will result in a negative response * **Use client IP to set initial country:** sets whether the plugin should use the client's IP address to automatically detect and set the initial country for phone validation. If enabled, the country will be set based on the client's IP address; if disabled, the initial country specified below will be used. * **Initial Country (ISO2):** the initial country to use for the phone number validation (e.g., 'US', 'GB'). This will be used if the client IP is not available, or if the option above is set to False * When you have set your options, select **Done** * You should see the control update in the preview window Dynamics Phone Control Updated * Select **Save and Publish** to update your form and publish the control. Depending on your form setup, this can take a little time Once the form is published, the Phone field will be using the Loqate control. By selecting a country and clicking the button you will be able to validate an entered phone number. ### Address Installing the address control is a similar process to the Email and Phone controls, but might require an extra step or two. NOTE: in the Form editor for your form, you might notice that the address fields are included as a set, and you're not able to select them individually: Dynamics Address Fields This is because the Compound field is often used to add addresses to forms. There are a couple of options for how you manage this: * You could remove this part of the form and add the other parts individually * Or you could add another separate field to handle the address lookup For this example we’ll do the second option. Here are the steps to take to do this: * Drag the **Address 1: Street 1** field from the column list on the left, and drop it above the existing address fields * Select the new field to open its Properties menu, and set its Label to "Address Finder" (or another description of your choice) * Expand the Components section, and select the **+ Component** button * Find and select the **Loqate - Address Search** control * Here are the available options for this control: * **API Key:** your API key for accessing Loqate services (this is a **required** field) * **Input fields:** the set of options from 'Origin' down to 'Field20Format' all relate to Loqate input fields, and how you want to use them. You can find more information on what these options do in the **Request parameters** section of our [Capture Find API page](#api-reference/address-capture/interactive-find) * **Address:** the set of options from 'Address Line 1' onwards allow you to set where each different address item is inputted into your form when an address is returned. For each option in this section that you want to return, make sure you select the relevant field from your form that you want the address item to map to (note that if you don't want to return a particular field, you don't need to map to it) Dynamics Field Mappings * When you have set your options, select **Done** * Select **Save and Publish** to update your form and publish the control. Depending on your form setup, this can take a little time. Once the form is published you will be able to perform address lookups using the new control. Here's an example of how that might look: Dynamics Using Address Finder # Run Loqate Verify on Oracle Cloud Infrastructure Source: https://docs.loqate.com/integrations/oracle-cloud-marketplace Deploy Loqate Verify services in your own Oracle Cloud tenancy via the Oracle Cloud Marketplace. Process address validation at scale with full control of data residency.

Works with:

Oracle Cloud Infrastructure (OCI)

Supported Loqate Services:

  • Address Verify
Integrate in 3 steps ``` As you can see the controls are included like this: ```apex theme={null} ``` You may need one, or as in this case multiple instances of the control for your page. The attributes for this component are as follows: | Attribute name | Description | Example | | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------- | | label | This is the label for the control, and will appear alongside the control input box on pages. | Mailing Address | | namespace | Optional. This attribute is important when you have multiple controls on a single page, as this allows the controls to operate independently of each other. It must be unique across rendered controls. | mailing | | onAddressSelectedFunction | This should be set to the name of the callback function that selected addresses will be returned to. | handleMailingAddressSelected | | Mapping | Optional. If a mapping group name is provided, the second argument passed to the callback function will be an object whose keys and values are those of the mapped fields. | Contact Mailing | Let's look in more detail at some of the aspects of the callback function and how the data gets into a record. The page itself (as well as using Lightning stylesheets to give a Lightning look and feel) uses the standard Contact controller: ```apex theme={null} ``` This allows it to act as a creation form for the standard Contact object. This in turn means that you can set values against the Contact records properties within the page. For the first and last name fields, this is achieved by binding the field to the FirstName and LastName fields of the controller: ```apex theme={null} ``` However, for the address lookups controls this is a little more involved. You can’t map directly from JS to the values, so instead you expose the properties you want to set via a selection of hidden inputs: ```apex theme={null} ``` You can then declare a callback function for each of the address lookups on the page. These fill take the address output of the lookup, and push it into the record fields defined above: ```apex theme={null} ``` Finally, you can add a command button that will call the Save function on the standard controller: ```apex theme={null} ``` The response to this button press off a standard controller is to redirect to the record, so that flow is taken care of. ### Using the page in place of the standard New view With a Visualforce page in place that uses the Address Capture components, you now need to override the default behaviour of the New button on the contact listing page. This is achieved through the Object Manager, so navigate to Setup and search for Object Manager. Once there, select **Contact** from the list. Object manager Next select **Button, Links and Actions** from the left-hand menu, then edit the **New** action – you should be able to select the new page from the **Visualforce** page dropdown field: New action Click **Save**, and from now on the New action on the contact listing page will open your new page, and you can create contacts with verified addresses. # Custom Field Mappings Source: https://docs.loqate.com/integrations/shopify-custom-field-mappings Configure how Loqate address data maps to Shopify checkout fields, with support for templates, conditional logic, and country-specific overrides. Custom field mappings give you full control over how address data from Loqate is mapped into Shopify's checkout fields. By default, the Loqate app uses built-in logic to populate fields such as Address Line 1, Address Line 2, City, and so on. Custom field mappings allow you to override this behaviour when the default mapping doesn't suit your needs. Custom field mappings are optional. If you don't configure any, the app continues to use its built-in mapping logic. You only need this feature if you want to change how address components are assigned to Shopify fields. ## When to use custom field mappings Common scenarios where custom field mappings are useful: * **Combining address components** — for example, merging a building name and street into a single Address Line 1 field * **Country-specific formatting** — some countries have address structures that don't map neatly to Shopify's standard fields * **Conditional logic** — including or excluding address components based on whether they have values, to avoid empty separators or trailing commas * **Field transforms** — converting field values to uppercase or truncating long values ## Accessing custom field mappings 1. Open the Loqate app in your Shopify Admin 2. Go to the **Advanced Settings** page 3. Click the **Custom Field Mappings** link This opens the field mappings editor, where you can configure default mappings and country-specific overrides. *** ## How it works The field mappings editor has two main sections: ### Default mapping The default mapping applies to all countries unless overridden by a country-specific mapping. For each Shopify target field, you choose how to populate it — either by selecting a single source field from a dropdown, or by writing a custom template for more complex formatting. You can configure separate mappings for **Capture** (type-ahead address lookup) and **Verify** (post-checkout address verification), because these two services return different sets of address fields. ### Country overrides Country overrides let you define mappings that apply only to addresses in a specific country. When a country override exists, it is used instead of the default mapping for that country. This is useful when certain countries have unique address formats that require different field assignments. To add a country override, select the country from the dropdown and click **Add**. You can then configure Capture and Verify mappings for that country independently. *** ## Shopify target fields These are the Shopify checkout fields you can map to: | Field | Description | | -------------- | --------------------------- | | `address1` | Address Line 1 | | `address2` | Address Line 2 | | `company` | Company name | | `city` | City / Town | | `zip` | Postal / ZIP code | | `countryCode` | Country code (ISO 2-letter) | | `provinceCode` | Province / State code | *** ## Simple field mapping For straightforward one-to-one mappings, select the source field from the **Source Field** dropdown. This maps a single Loqate field directly to the Shopify target field. For example, mapping `line1` to `address1` will populate Shopify's Address Line 1 with the value of the Loqate `line1` field. *** ## Custom templates For more complex mappings, select **Custom template** from the Source Field dropdown to enter a template string. Templates use a Handlebars-style syntax that lets you combine fields, add conditional logic, and apply transforms. ### Basic syntax Insert a field value using double curly braces: ``` {{line1}} ``` Combine multiple fields with literal text between them: ``` {{buildingName}}, {{street}} ``` ### Conditional blocks Use `{{#if}}` to include content only when a field has a value. This prevents empty separators or trailing commas when optional fields are absent: ``` {{line1}}{{#if line3}}, {{line3}}{{/if}} ``` In this example, if `line3` has a value the output is `123 Main St, Apt 4B`. If `line3` is empty, the output is simply `123 Main St` — without the trailing comma. You can also use `{{else}}` for fallback content: ``` {{#if buildingName}}{{buildingName}}{{else}}{{line1}}{{/if}} ``` ### Transforms Apply transforms using the pipe (`|`) character: | Transform | Description | Example | | ------------- | ------------------------ | ------------------------------------ | | `upper` | Convert to uppercase | `{{city \| upper}}` | | `lower` | Convert to lowercase | `{{city \| lower}}` | | `truncate N` | Truncate to N characters | `{{line1 \| truncate 30}}` | | `replace A B` | Replace A with B | `{{line1 \| replace "St" "Street"}}` | *** ## Source fields The available source fields differ depending on whether you are configuring a **Capture** or **Verify** mapping, because the two services return different address data structures. Capture source fields come from the Loqate Address Capture (Retrieve) API response. **Address lines:** `line1`, `line2`, `line3`, `line4`, `line5` **Organisation:** `company`, `department` **Building / premise:** `subBuilding`, `buildingName`, `buildingNumber` **Street:** `street`, `secondaryStreet`, `block`, `neighbourhood` **Geographic hierarchy:** `district`, `city`, `adminAreaName`, `adminAreaCode`, `province`, `provinceName`, `provinceCode` **Postal:** `postalCode`, `pOBoxNumber` **Country:** `countryName`, `countryIso2`, `countryIso3` **Other:** `domesticId`, `language`, `languageAlternatives`, `sortingNumber1`, `sortingNumber2`, `barcode`, `field1` through `field20` Verify source fields come from the Loqate Address Verify API response. **Delivery address lines:** `deliveryAddress`, `deliveryAddress1` through `deliveryAddress8` **Address lines:** `address`, `address1` through `address8` **Organisation:** `organization`, `organizationName`, `organizationType` **Geographic hierarchy:** `superAdministrativeArea`, `administrativeArea`, `administrativeAreaIso2`, `administrativeAreaName`, `administrativeAreaType`, `subAdministrativeArea`, `locality`, `localityName`, `localityType`, `dependentLocality`, `dependentLocalityName`, `doubleDependentLocality` **Thoroughfare:** `thoroughfare`, `thoroughfareName`, `thoroughfareType`, `thoroughfarePreDirection`, `thoroughfarePostDirection`, `dependentThoroughfare`, `dependentThoroughfareName` **Building / premise:** `building`, `buildingName`, `buildingType`, `premise`, `premiseNumber`, `premiseType`, `premiseExtra`, `subBuilding`, `subBuildingName`, `subBuildingNumber`, `subBuildingType`, `subBuildingFloor` **Postal:** `postalCode`, `postalCodePrimary`, `postalCodeSecondary`, `postBox`, `postBoxNumber`, `postBoxType` **Country:** `country`, `countryName`, `iSO3166-2`, `iso3166_3`, `iso3166_n` **Other:** `sequence`, `contact`, `department`, `floorNumber`, `floorType`, `lotNumber`, `route`, `routeNumber`, `routeType` *** ## Examples ### Combine building name and street into Address Line 1 **Capture mapping for `address1`:** ``` {{buildingName}}{{#if street}}, {{street}}{{/if}} ``` **Result:** `Chester Business Park, Wrexham Road` or just `Wrexham Road` if there is no building name. ### Country-specific formatting for Japan Create a country override for **JP** and set the Verify mapping for `address1`: ``` {{thoroughfare}} {{subBuilding}} ``` ### Uppercase city names **Capture mapping for `city`:** ``` {{city | upper}} ``` **Result:** `LONDON` instead of `London` ### Fallback when a field might be empty **Capture mapping for `address2`:** ``` {{#if line2}}{{line2}}{{else}}{{#if line3}}{{line3}}{{/if}}{{/if}} ``` Uses `line2` if available, otherwise falls back to `line3`. *** ## Validation The app validates your templates when you save. Common validation errors include: * **Invalid field names** — only recognised source fields (listed above) can be referenced in templates * **Malformed template syntax** — unclosed `{{#if}}` blocks or mismatched braces * **Template too long** — templates have a maximum length to prevent unexpected behaviour If validation fails, you'll see an error message describing the issue. Fix the template and save again. *** ## Tips * Start simple. Use one-to-one field mappings where possible and only use custom templates when you need conditional logic or field combination. * Test with real addresses. After saving your mappings, run through the checkout with addresses from the countries you've configured to verify the output looks correct. * Country overrides take precedence. If both a default mapping and a country override exist for a given country, the country override is used and the default is ignored entirely for that country. * Capture and Verify are independent. You can configure custom mappings for Capture only, Verify only, or both. Whichever service doesn't have a custom mapping will continue using the built-in logic. *** Return to the Shopify Plus Integration Guide for full setup instructions. # Verify Shopify Customer Data in Seconds Source: https://docs.loqate.com/integrations/shopify-overview Native Shopify Plus integration with Address Capture, Address Verify, and Email Validation. Improve checkout data quality.

Works with:

Shopify Plus Checkout

Supported Loqate Services:

  • Address Capture
  • Address Verify
  • Email Verification
Integrate in 3 steps ``` **NOTE:** minified versions of these files are available. To use them, update the above snippets with .min before the file type (i.e. .../address-4.05.min.css and .../address-4.05.min.js). ## Mapping your fields The address capture control needs to know which elements of the address should be put into each of your fields. It also needs to know which fields should be used for searching and which field (if any) contains the country. This information is provided in a standard format, which is an array of objects that have an **element**, **field** and optional **mode** property. ```javascript theme={null} var fields = [ // Search field - triggers autocomplete when user types { element: "search", field: "" }, // Company - preserves existing value if already populated by user { element: "company", field: "Company", mode: pca.fieldMode.DEFAULT | pca.fieldMode.PRESERVE }, // Address lines - Line1 uses default behavior (SEARCH + POPULATE) { element: "line1", field: "Line1" }, // Line2 and subsequent fields only populate, don't trigger search { element: "line2", field: "Line2", mode: pca.fieldMode.POPULATE }, { element: "city", field: "City", mode: pca.fieldMode.POPULATE }, { element: "state", field: "Province", mode: pca.fieldMode.POPULATE }, // Postal code field { element: "postcode", field: "PostalCode" }, // Country field - displays country list on focus and sets search context { element: "country", field: "CountryName", mode: pca.fieldMode.COUNTRY } ]; ``` ### Field Configuration Properties * **element**: The id or name attribute of your field. Accepts partial id match (e.g., "\_line1" matches "frm1\_line1") or JavaScript regex for complex matching. * **field**: The name of the address element for this field. See [Capture Interactive Retrieve](#security) for available fields. Also accepts format strings (detailed in next section). * **mode**: Controls field behavior. Default is **SEARCH** and **POPULATE**. Modes are declared in **pca.fieldMode** and can be combined using bitwise OR (|): * **SEARCH**: Enables autocomplete searching from the field * **POPULATE**: Sets the field value based on selected address * **COUNTRY**: Displays country list on field select and reads field value to set search country * **PRESERVE**: Prevents overwriting fields already populated by user (useful for company name) ## Formatting fields To define complex or custom field values, the control makes use of template strings. The template strings work by replacing field values from the selected address, based on field names which are enclosed in curly brackets, for example `{PostalCode}`. Any regular text or HTML can be included in the template strings around the field values, such as `{Line1}, {Line2}`. Conditional formatting can be added by enclosing the field, and any additional text which is conditional on the field having a value, in a second set of curly brackets. If the template string was `{Line1}{, {Line2}}` then the comma would not appear unless the selected address had a second address line. Finally, field values will always appear in title case, but can easily be capitalised by adding an exclamation mark (!) at the end of the field name, like this `{City!}`. ## Setting options The second parameter that is required by the address control is a configuration object. This is used to set options and customise how the control behaves. The only required option is the API key that you will be using to access the web services, and is defined by creating an object literal in JavaScript. ```json theme={null} { key: "AA11-AA11-AA11-AA11" } ``` Further options can be set by adding more information to the configuration object. To create a control that was limited to the United States and Canada, but set the country based upon the users IP address, you would define the following object: ```json theme={null} {key: "AA11-AA11-AA11-AA11", countries: { codesList:"USA,CAN"}, setCountryByIP: false} ``` ## Countries Capture+ is designed to be a truly international address verification and standardisation solution, and will by default allow you to search through all of the [countries that are covered](https://www.loqate.com/en-gb/address-verification/). However, you can limit the countries that Capture+ will search by adding search settings into your options object. For example, to create a control that was limited to the United States and Canada, but set the country based upon the users IP address, you would define the following object: ```json theme={null} {key: "AA11-AA11-AA11-AA11", countries: { codesList:"USA,CAN"}, setCountryByIP: false} ``` ## Geolocation options (Available only for UK addresses) Loqate's address capture also supports address lookup based on your end user's current location. In order to access this additional functionality, you will have to add the following to your options object: `GeoLocationEnabled`: true, `GeoLocationRadius`: 50, `GeoLocationMaxItems`: 10 These attributes are defined as follows: * `GeoLocationEnabled`: Boolean to determine if the Geolocation functionality is active * `GeoLocationRadius`: Integer to determine the radius of the requested search in metres * `GeoLocationMaxItems`: The number of results to display in the dropdown You also need your site to run under https to enable this functionality. This will add an additional item to the address capture bar, allowing your user to search for their address based on their current location. An example of the complete options object is as follows: ```json theme={null} { key: "AA11-AA11-AA11-AA11", search: { countries: "GBR" }, setCountryByIP: true, GeoLocationEnabled : true, GeoLocationRadius : 50, GeoLocationMaxItems : 10} ``` Note: "GBR" is the ISO 3166-1 alpha-3 country code for the United Kingdom. Geolocation is currently available only for UK addresses, so when using `GeoLocationEnabled` you must include "GBR" in the `countries` setting. ## Language Both the control and web service API support a variety of language cultures. The language is automatically detected from the user's web browser but a **culture** option and **setCulture** method are also provided. The culture is based on 2-character code (e.g. "en", "fr") or culture name (e.g. "en\_GB", "en\_US", "fr\_FR", "fr\_CA"). ## The control object When you instantiate a new **pca.Address** object you will get a reference to an object commonly referred to as the **control** object. ```javascript theme={null} var control = new pca.Address(fields, options); ``` This is the main object for address capture on your address form and provides all methods and properties to customise the address capture experience. You will typically have one of the these objects for each of your address forms, so it is important to give them individual references or store them in a list. ```javascript theme={null} var billingControl = new pca.Address(billingFields, billingOptions); var shippingControl = new pca.Address(shippingFields, shippingOptions); ``` The control object will automatically wait for the page DOM to be loaded before it initialises, so it is important to listen for the **load** event before calling methods on the control object. ```javascript theme={null} var control = new pca.Address(fields, options); control.listen("load", function() { control.setCountry("CAN"); }); ``` ## Events and listeners The address capture library implements a simple events model which will allow you to listen out for when certain things happen. To listen for an event use the **listen** method with the event name and a function to run when that event occurs. Events can sometimes pass additional details through parameters. ```javascript theme={null} control.listen("populate", function(address, variations) { document.getElementById("myCustomField").value = address.PostalCode; }); ``` The key events to listen for are: | Event | What it means | | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | load | The control is now ready. It has finished adding elements to the page and is now listening to page events. | | show | The control is now visible on the page. | | hide | The control has been hidden. | | search | The user is searching. You can modify the **searchTerm** and **lastId** of the search object (parameter 1) at this stage. | | results | Results have been returned from the find service. You can modify the list of suggestions returned (parameter 1) and access the extended attributes object (parameter 2) including properties such as **ContainerCount**. | | noresults | No matching results were returned from the find service. | | display | The suggestions have been shown to the user. | | select | The user has selected a suggestion. The chosen suggestion can be accessed (parameter 1). | | prepopulate | The full address has been returned from the retrieve service. The address object (parameter 1) can be accessed and modified before fields are populated, as well as full list of language variations (parameter 2) for the address. | | populate | The address fields have been populated. This is the most common event to listen for, and will allow you to populate your own fields with your own logic using the address object (parameter 1) and the list of address variations (parameter 2). | | country | The country has been changed. The selected country object (parameter 1) with **iso2**, **iso3** and **name** properties is passed through. | | manual | When the **manualEntry** option is passed through and the user selects the option to enter their address manually this event will fire. | | error | An error has occured. The error message (parameter 1) is passed through. Typically errors are not shown to the user, but can be handled manually here if needed. | ## Dynamic pages When the control loads it will need to be able to find your address fields in order to bind to the page events and listen for the user typing into the field. This becomes more tricky when working with dynamic pages and asynchronous postbacks. If the control is not loading at the correct time when your address form is rendered onto the page, you can call the **load** method on the control manually. If you are loading dynamic HTML, you can include a call to reload your previously defined control object, or include your full initialisation script as part of the HTML being rendered. ```html theme={null}