Every bad address costs you $23.
Catch them before they ship.
Roughly 1 in 9 shipping addresses has a typo or unit error. Checkout Guard validates against USPS while the customer is still typing — corrections inline, undeliverables blocked.
Free on Starter · Full widget on Growth ($79/mo) · No SDK, no build step.
Tap a scenario above. This is the actual widget UI — the one your customers see.
Install
Paste this above </body>. The widget finds your address fields automatically.
<script
src="https://revaddress.com/sdk/revaddress-guard.js"
data-key="rv_live_pub_YOUR_KEY"
defer
></script> Customize — fields, theme, callbacks
<script
src="https://revaddress.com/sdk/revaddress-guard.js"
data-key="rv_live_pub_YOUR_KEY"
data-selector="#shipping-address-form"
data-theme="dark"
data-block-undeliverable="true"
defer
></script>
<script>
window.revaddressGuard = {
onValid: (address) => { console.log('ship to', address); },
onBlocked: (reason) => { analytics.track('address_blocked', reason); },
};
</script> Three checks the widget runs on every keystroke
It debounces, it batches, it talks to api.revaddress.com. You get the green check or the red block — that's it.
Did they typo it?
Fuzzy match against USPS. We suggest the corrected form and let the customer one-tap accept. Zero false positives on valid addresses.
Can USPS deliver there?
DPV (Delivery Point Validation) against USPS's own database. Vacant, non-existent, and PO boxes you don't accept — all flagged with reasons.
Is this the best form of the address?
ZIP+4 added, street name standardized, unit normalized. The version that saves your carrier a lookup and gets the best rate.
Plan access
Free + Starter
Validate & suggest via widget (rate-limited)
Growth
Full widget · block undeliverables · 50k validations/mo
Pro + Enterprise
BYOK credentials · usage analytics · custom theme
The math behind $23
Every bad address triggers the same chain of costs. Checkout Guard interrupts it at step one.
What goes wrong
1 in 9 orders ships to a bad address
Industry data from USPS and major carriers: ~11% of DTC shipping addresses contain an error that causes delay or return. Your number is likely higher.
What it costs
$15–30 per failed delivery
Return shipping, reship, support ticket, refund processing, inventory reshuffle. One blocked bad address pays for a month of Growth.
Why USPS data
Official database, not a scrape
We query the same USPS Address Matching System that routes 150B+ mailpieces a year. Not a third-party mirror. Not a stale CSV.
Why drop-in
One tag in, one tag out
No SDK, no build pipeline change, no ripping out your checkout. If it doesn't earn its $79 in month one, pull the script.
Ready to stop shipping to bad addresses?
Get a publishable key from your dashboard and paste one line into your checkout. Under five minutes, no build step.
Already using the API? Your existing account works — generate a publishable key from the dashboard.