Skip to Content
Mithnusa
  • Home
  • Google Maps
  • Mapbox
  • Services
  • Shop
  • About
  • 0
  • Sign in
  • Request a Demo Contact
Mithnusa
  • 0
    • Home
    • Google Maps
    • Mapbox
    • Services
    • Shop
    • About
  • Sign in
  • Request a Demo Contact
Odoo 19.0 · Address Validation · Contacts · 3 Modules

Contact Address Validation Smarty

Verify every contact address is real and deliverable — one click sends it to Smarty's address verification APIs, confirms US addresses down to the delivery point (including apartment and suite numbers), and writes the standardized address and geocoded coordinates back to the record. US and International coverage on a provider-agnostic framework.

Contact Shop
US Street API International Street API USPS DPV Provider Framework
Verify Address button on the Odoo Contact form

A Verify Address button appears below the address block on every Contact form — one click submits the address to Smarty via a secure server-side request.

Verification dialog showing severity banner, DPV badge, and parsed components

The review dialog shows a severity banner with Smarty's verdict explained in plain language, the USPS DPV confirmation, residential/commercial and vacancy indicators, and the standardized address broken down into its parsed components.

Verification dialog showing severity banner, international, and parsed components

The review dialog shows a severity banner with Smarty's verdict explained in plain language, international (not supported DPV), residential/commercial and vacancy indicators, and the standardized address broken down into its parsed components.

Verification status badge on the Contact form

After verification, the severity-colored badge shows Smarty's verbatim status — including secondary-unit precision like "confirmed, unit missing". Editing any address field resets the status automatically.

Contacts list filtered by verification outcome

Built-in search filters on the Contacts list let you find all contacts whose addresses are unverified, need review, or failed verification — no custom domain needed.

  • Overview
  • Who It's For
  • The Problem It Solves
  • Modules
  • Workflow
  • Key Features
  • Benefits
  • Bundle Contents
  • Related

Product Overview

Contact Validation Smarty brings Smarty (formerly SmartyStreets) to the Odoo Contact form. It checks whether an entered address refers to a real, deliverable place, standardizes it, and geocodes it — directly from the Contact form, without leaving Odoo. US addresses use Smarty's US Street Address API; every other country is routed automatically to the International Street Address API.

The product is built on a provider-agnostic address validation framework. The button, the review dialog, the stored verdict, and the search filters are shared framework components; Smarty plugs in as a provider adapter. If your requirements ever change, you can switch to the Google or PostGrid adapter from Settings, and your users' workflow stays exactly the same.

Clicking Verify Address sends the contact's address to Smarty via a secure server-side request — the secret key pair never reaches the browser. A dialog opens with Smarty's verdict kept verbatim and translated into a clear severity color. US addresses are validated to the delivery point with USPS DPV — including secondary-unit precision that distinguishes "confirmed" from "confirmed, but the apartment number is missing or wrong". International addresses return Smarty's verification status: Verified, Partial, Ambiguous, or unverified.

Smarty's terms permit permanent storage of standardized addresses, so the standardized result is kept on the contact for reference. Delivery details — the residential/commercial indicator, vacancy flag, and county — are shown in the dialog, and the standardized address is broken down into its parsed components for easy comparison.

Who It's For

Logistics & Delivery Teams Verify delivery addresses before dispatch — down to the apartment or suite number for US addresses. Catch incomplete secondary units at data-entry time, before a package sits in a mailroom with no unit number.
Marketing & Direct Mail Teams Standardize and validate mailing lists to reduce returned mail and improve postage efficiency — with USPS DPV confirmation for US campaigns and stored standardized addresses ready for label printing.
Teams With International Data One provider for domestic and worldwide contacts: US addresses go to the US Street API, all other countries to the International Street API — automatically, with no configuration per country.
Operations & Data Quality Teams Use the built-in search filters to audit the contact database — find unverified, problematic, or invalid addresses in bulk and prioritize clean-up without writing a custom domain or running an export.

The Problem It Solves

No Feedback at Entry Time

Odoo's address fields are free-text. Typos, incomplete streets, and non-existent postcodes are saved without warning and propagate to every downstream process that reads the contact's address — from shipping labels to invoice footers.

The Missing Apartment Number

An address can look perfectly valid and still be undeliverable because the unit number is missing or wrong. Smarty's DPV-level statuses make that difference visible — "confirmed" vs. "confirmed, unit missing" — before anything ships.

Locked Into One Validation Vendor

Most address validation connectors hardwire one provider into fields, views, and code. Changing vendors later means migrating data and retraining users. Here the provider is a plug-in choice — the workflow, fields, and filters are shared.

No Visibility Into Data Quality

Without a stored verification status, there is no way to filter or report on which contacts have verified addresses and which need attention — until something breaks downstream and the damage is already done.

What's Inside

Three modules — a shared validation framework, the Smarty provider adapter, and the Contacts application module — bringing verified, standardized, geocoded addresses to every Odoo Contact record.

Module 01 · Foundation

Base Address Validation

The provider-agnostic framework. It defines the provider registry, the reusable verification mixin (status fields, automatic reset, verify and apply actions), and the generic Verify Address widget and review dialog shared by every provider. Provider statuses are stored verbatim, while a shared severity (success / warning / danger) drives badges, filters, and the Apply guard.

Provider registry Validation mixin Generic OWL widget + dialog Severity model Depends on: base_setup, web

Why It Exists

Centralising the workflow in one framework means the button, dialog, stored fields, and filters are identical no matter which provider is active — and switching providers is a Settings change, not a data migration.

Module 02 · Provider Adapter

Address Validation: Smarty

Registers Smarty as a provider. All API logic lives in a server-side service model — country-based routing between the US Street and International Street APIs, request building, response parsing, and friendly error handling. Smarty's verdict is stored verbatim: USPS DPV statuses for US addresses (confirmed, unit dropped, unit missing, not confirmed, no match) and the International verification statuses (Verified, Partial, Ambiguous, unverified).

US Street Address API International Street API USPS DPV Depends on: base_address_validation

Delivery-Point Precision

Smarty's DPV statuses go beyond street-level validation: they distinguish a fully confirmed delivery point from one where the apartment or suite number is missing or unrecognized — the difference between a delivered package and a returned one.

Secret Key Pair, Server-Side Only

Authentication uses a Smarty secret key pair (Auth ID / Auth Token) configured in Settings, with optional license values for accounts holding multiple subscriptions. Credentials are used server-side only and never sent to the browser.

Module 03 · Application · Contacts

Contacts Address Validation

Applies the framework to Contacts. The Contact form gains the Verify Address button and the severity-colored status badge; the Contacts list gains verification filters. Every verification is logged in the chatter — including old → new coordinates when they change — and editing any address field resets the status automatically.

Verify button on Contact form Severity search filters Chatter audit trail Depends on: base_address_validation, base_geolocalize, contacts

How It Works

The entire flow — from button click to stored verdict — stays inside Odoo. The secret key pair never leaves the server.

  1. Open a Contact and enter an address. The Verify Address button appears below the address block on the Contact form as soon as the modules are installed and Smarty is selected as the provider in Settings.
  2. Click Verify Address. Any pending form edits are saved automatically before the request is sent, ensuring the stored verdict always matches the address that was actually verified.
  3. Odoo sends a server-side API request. US addresses are routed to Smarty's US Street Address API; every other country goes to the International Street Address API — automatically, based on the contact's country.
  4. Review the verification dialog. The dialog opens with a severity banner explaining Smarty's verbatim status in plain language, a side-by-side comparison of entered vs. standardized address, the USPS DPV confirmation for US addresses, delivery details — residential/commercial, vacancy, county — and the parsed address components.
  5. Choose an action. Apply Standardized Address — writes the standardized address and geocoordinates to the contact and stores the verdict. Keep Current Address — stores only the verdict without changing the address. Discard — closes the dialog without writing anything.
  6. The status badge reflects the stored verdict. Smarty's own status is shown next to the button with its severity color, and the verification is logged in the chatter. If any address field is later edited, the status resets automatically — stale verdicts never linger after an address change.

Key Features

Delivery-point address verification for the US and street-level verification worldwide, with a stored, searchable audit trail — on a framework that lets you change providers without changing the workflow.

Verification & Dialog

  • Verify Address button — One-click verification from the Contact form; pending edits are saved automatically before the request.
  • Verbatim Smarty statuses — USPS DPV statuses for US addresses and the International verification statuses are stored exactly as Smarty returns them, with a severity color and plain-language explanation on top.
  • Side-by-side address comparison — Entered address vs. Smarty's standardized address, with the parsed components listed so the user sees exactly what would change.
  • Delivery details — Residential/commercial indicator, vacancy flag, and county shown in the dialog for supported addresses.
  • Three dialog actions — Apply Standardized Address, Keep Current Address (verdict only), or Discard (no write).

Coverage & Precision

  • US + International — Automatic routing by country between Smarty's US Street and International Street APIs; one provider for the whole contact database.
  • Secondary-unit precision — DPV statuses distinguish confirmed delivery points from addresses with a missing or unrecognized apartment/suite number — visible before anything ships.
  • Standardized address storage — Smarty's terms permit permanent storage, so the standardized address is kept on the record for reference and label printing.
  • Geocoding included — Latitude and longitude with their precision are written to the contact, with old coordinates logged in the chatter.

Framework & Data Quality

  • Provider-agnostic framework — Switch to Google or PostGrid from Settings later; fields, filters, and the user workflow stay identical.
  • Automatic status reset — Editing street, street2, city, zip, state, or country resets the status — stale verdicts never persist.
  • Search filters by outcome — Built-in Contacts filters for verified, needs-review, failed, and not-verified addresses — no custom domain required.
  • Secure credentials — The Smarty secret key pair is stored in Odoo system parameters and used server-side only; it is never sent to the browser.

Use Cases & Benefits

Deliverable Down to the Unit

US addresses are confirmed to the delivery point, including the apartment or suite — the difference between a delivered package and a returned one is visible before dispatch.

One Provider, Worldwide

US Street and International Street APIs behind a single button — the routing happens automatically by country, so global contact databases are covered without per-country setup.

Standardized Addresses You Can Keep

Smarty permits permanent storage of its standardized addresses — they stay on the record, ready for mailing labels, exports, and downstream systems.

Accurate Geocoordinates in One Step

Latitude and longitude with precision come back with the verification — no separate geocoding call needed. Map views and territory assignments work immediately on verified contacts.

No Vendor Lock-In

The verification workflow, stored fields, and filters belong to the framework, not to Smarty. If pricing, coverage, or compliance needs change, switch the provider in Settings — users won't notice a difference.

Audit-Ready Verification Trail

A stored, searchable status on every contact plus a chatter entry for every verification — including coordinate changes — makes data quality auditable without exports or custom reports.

What's in the Bundle

Three modules — the shared framework, the Smarty provider adapter, and the Contacts application module.

Foundation

  1. base_address_validation — Provider registry, verification mixin, generic Verify Address widget and review dialog, provider selection in Settings

Provider Adapter

  1. address_validation_smarty — Smarty US Street and International Street API integration with automatic country routing, USPS DPV delivery-point confirmation, delivery details, and parsed address components

Application · Contacts

  1. contacts_address_validation — Verify Address button on the Contact form, severity badge, search filters by verification outcome, automatic status reset, chatter audit trail

Related Products

The same validation workflow, backed by a different provider — install the adapter that fits your coverage and compliance needs.

Same Framework

Contact Validation Google

3 modules · Contacts

The identical verification workflow backed by the Google Address Validation API — USPS CASS™ processing and component-level confirmation for every address part.

View Contact Validation Google →
Same Framework

Contact Validation PostGrid

3 modules · Contacts

The identical verification workflow backed by PostGrid — US/CA and International APIs and a sandbox mode for risk-free testing.

View Contact Validation PostGrid →
Pairs Well

Google Place Autocomplete for Contacts

3 modules · Contacts

Autocomplete helps users enter addresses quickly by suggesting real places as they type. Address Validation then verifies the stored result is deliverable. Use both for fast entry and verified output.

View Google Place Autocomplete for Contacts →

Contact Validation Smarty · US and International address verification, standardization, and geocoding — directly from the Odoo Contact form, on a provider-agnostic framework.

×

Request a Demo


Submit


©2026 Mithnusa
Powered by Odoo - The #1 Open Source eCommerce

We use cookies to provide you a better user experience on this website. Cookie Policy

Only essentials I agree