U.S.P.S. Address Validation


The United States Postal Services provides address validation for non-bulk uses via their web service.

Be aware that it has a few quirks, the biggest being that Address1 is actually what most people call Address2 (suite/apartment number). Weird, eh?

Sample PHP

<?php

include_once('class_http.php');

function validateAddress(){
	$xmlstr = <<<XML
<AddressValidateRequest USERID="XXXXXXXX">
	<Address ID="0">
		<Address1></Address1>
		<Address2></Address2>
		<City></City>
		<State></State>
		<Zip5></Zip5>
		<Zip4></Zip4>
	</Address>
</AddressValidateRequest>
XML;

	$xml = new SimpleXMLElement($xmlstr);
	$h = new http();

	// Populate Address
	$xml->Address->Address2 = '8060 south 615 east';
	$xml->Address->City = 'sandy';
	$xml->Address->State = 'ut';
	$xml->Address->Zip5 = '84047';

	// Prepare for XML call
	$h->xmlrequest = $xml->asXML();

	$output = str_replace(array("\n",'<?xml version="1.0"?>',"\t",),array('','',''),$xml->asXML());
	$url = 'http://Production.ShippingAPIs.com/ShippingAPI.dll?API=Verify&XML='.urlencode($output);

	// Submit data and get results
	$h->fetch($url,0,'','','','GET');

	print_r($h->body);die();

	// Put results into XML object
	$xml = new SimpleXMLElement($h->body);

	return $xml;
}

$xml = validateAddress();
print_r($xml);

?>

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>