| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Discuss (mail) |
| Lines of code | 929 |
| Technical Name |
gb_address_verification_postcode_lookup |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Discuss (mail) |
| Lines of code | 929 |
| Technical Name |
gb_address_verification_postcode_lookup |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Address Verification & Po
Validate & standardise addresses via your own Loqate/postcode key (BYOK)
Bad addresses quietly drain UK businesses: every malformed postcode is a failed delivery, a returned parcel, wasted postage and a frustrated customer — and the dirty data lingers in the CRM forever. This module validates and standardises contact addresses, scores their quality, and suggests a corrected, normalised version you apply to the contact in one click. A built-in Royal Mail / BS 7666 postcode validator works fully offline with zero external calls, while pluggable adapters add live lookups via postcodes.io, Loqate or a generic REST endpoint. Crucially it is bring-your-own-key: you configure your own provider credentials, so the relationship and per-call spend stay yours, with no keys shipped and no liability on the publisher. eCommerce, delivery, sales and data teams get verified postcodes, standardised addresses and a clear quality flag for data-cleansing campaigns.
Key Features
Offline Royal Mail Postcode Validator
postcode_util implements the full BS 7666 / Royal Mail regex (including the GIR 0AA special case). is_valid_postcode and normalise_postcode validate, re-space and upper-case any UK postcode with zero external calls, so basic validation always works out of the box.
BYOK Provider Configuration
res.company carries address_provider_type, endpoint, key and country bias. Your own credentials are stored on the company and never shipped with the module, so the provider relationship and per-call billing stay entirely yours.
Pluggable Provider Adapters
The ADAPTERS registry dispatches to postcodes.io (free, keyless UK lookup), Loqate/Addressy (BYOK), or a generic JSON REST endpoint. Each adapter degrades gracefully to the offline check on error, using only stdlib urllib — no extra dependency.
Verification Records with Applyable Suggestions
Every check creates a gb.address.verification storing the submitted snapshot, raw response, match score and a standardised suggestion. action_apply_to_partner writes the suggested zip, city, street and country back to res.partner in one click.
Computed Address Quality Scoring
The _compute_quality method grades each result verified, corrected, unverified or unmatched from the match flag, score and correction status, and stamps address_quality plus address_last_checked on the partner for needs-review filtering and cleansing campaigns.
Batch Verification Wizard
gb.batch.verify.wizard runs run_for_partner across a selection or up to 500 contacts, with options to skip already-checked records and auto-apply corrections. It returns counts of processed, verified, corrected and unmatched contacts plus the result list.
UK Postcode Area Reference & Coverage
gb.postcode.area seeds 120+ UK areas (e.g. SW -> London SW) with post town and nation. coverage_report aggregates how many contacts fall in each region, and partners derive postcode_area_code and post town automatically from their zip.
Provider Self-Test
action_test_address_provider pushes a known-good sample address (10 Downing Street, SW1A 2AA) through the configured adapter and shows the match result and score as a notification — a one-click way to confirm your BYOK key and endpoint work before going live.
Use Cases
Screenshots
Verifications
Batch Verify Addresses
Postcode Areas
Why Choose This Module
Bad addresses mean failed deliveries, returned goods and wasted postage. This module verifies and standardises contact addresses, scores their quality, and suggests a corrected version you apply in one click. Bring Your Own Key: configure your own Loqate, Postcodes.io or generic REST endpoint — no keys are shipped and no per-call cost falls on the publisher.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: base, contacts
- Support: odoo@gencbaris.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module