Skip to content
Drop-in widget · One script tag

Catch the address while
the customer can still fix it.

Checkout Guard waits until the customer pauses, checks the address, and renders a correction or review state beside the form. The badge is advisory and fails open; your storefront keeps control of whether checkout continues.

Sandbox proof on Free · Live widget on Growth ($79/mo) and above · No SDK or build step.

your-store.com / checkout
S
Shipping address
order #10482
Protected by RevAddress Checkout Guard

Tap a scenario above. This is the actual widget UI — the one your customers see.

InstallWorks with theme-owned Shopify forms, WooCommerce, Magento, and custom HTML address forms.

Install

Paste this above </body>. The widget finds your address fields automatically.

<script
  src="https://revaddress.com/sdk/revaddress-guard.js"
  data-api-key="rv_live_pub_YOUR_KEY"
  defer
></script>
3 KB gzipped — no jQuery, no dependencies
Auto-detects common field names & layouts
Secret keys are refused — the endpoint accepts publishable keys only
Respects prefers-reduced-motion & screen readers
Customize — target and field selectors
<script
  src="https://revaddress.com/sdk/revaddress-guard.js"
  data-api-key="rv_live_pub_YOUR_KEY"
  data-target="#shipping-address-form"
  data-field-street="[name='shipping_address[address1]']"
  data-field-city="[name='shipping_address[city]']"
  data-field-state="[name='shipping_address[province]']"
  data-field-zip="[name='shipping_address[zip]']"
  defer
></script>

Three decisions behind the badge

The widget waits 600 milliseconds after typing stops, calls the restricted browser endpoint, and keeps its badge isolated from merchant CSS.

Did they typo it?

A correction is returned only when the standardized street or city differs from the input. The customer can accept it without leaving the form.

Can USPS deliver there?

With the merchant's USPS license connected, DPV confirmation can produce valid, missing-unit, undeliverable, or risky states. Without that license, do not describe the result as USPS-verified.

What happens when the check fails?

The endpoint degrades to a neutral valid response with no message, and the badge hides. Checkout continues; a transient upstream failure does not block the order.

Plan access

Free sandbox proof

A test publishable key returns deterministic badge states without a live upstream call

Test only

Growth

Live widget · 25,000 shared requests/mo · connected USPS license for verified states

$79/mo

Pro + Enterprise

The same widget with higher plan allowances, usage analytics, and multi-merchant isolation where applicable

$199+/mo
Compare all plans →

What Checkout Guard deliberately does not do

A browser badge is one signal inside checkout. The limits below are part of the contract, not fine print discovered after install.

Submit behavior

It does not block checkout

The shipped widget renders a badge. If an order must be gated, call the endpoint from checkout code and implement the merchant's own review rule.

Failure behavior

It fails open

When the upstream check errors, the response carries no warning and the badge hides. Monitor the integration separately if the business needs proof that every check ran.

Verification claim

USPS states require a connected license

DPV, ZIP+4, missing-unit, CMRA, vacancy, and USPS-derived risk signals run on the merchant's connected USPS license. A sandbox state is demonstration data.

Platform boundary

It needs a form you control

Use the script on custom HTML, WooCommerce, Magento, or a theme-owned form. Shopify's hosted checkout needs a Checkout UI Extension rather than an arbitrary script tag.

Test the states before choosing the plan

Run the four deterministic sandbox streets in the demo contract, then compare the Growth allowance and connected-license requirements.

Already on Growth or above? Generate the publishable key from the dashboard. Free accounts receive a sandbox key for proof only.