Automation library

Validate shipping addresses before the label is bought, not after the parcel comes back

Updated · By Ecomsellertool editorial team

Short answer

To validate shipping addresses before shipping, check every new order's address against a carrier or postal validation service before the label is bought or the order goes to the 3PL. Clean addresses pass. Problem addresses go on hold with a reason, the customer is asked to confirm, and the order is released when they reply. On Amazon and Walmart you cannot edit the address yourself, so a person decides.

  • Shopify checks order addresses in the admin on every plan and can suggest fixes at checkout for US, Canadian and 18 other countries' addresses (checked October 26, 2026).
  • Shopify's fulfillment hold reasons include INCORRECT_ADDRESS, and an order on hold cannot start fulfillment until the hold is released.
  • FedEx's Address Validation API checks up to 100 addresses per request but cannot add a missing apartment or suite number, and FedEx does not deliver to P.O. boxes except via FedEx Ground Economy.
  • Amazon's current Orders API, v2026-01-01, has two operations, searchOrders and getOrder; neither changes the buyer's delivery address.
  • Walmart's cancel reasons include SELLER_CANCEL_ADDRESS_NOT_SERVICEABLE; Walmart says cancellations cannot be reversed and asks sellers to keep a cancel rate under 2%.

The step map: who runs each step

Trigger: A new order from Shopify, Amazon (seller-fulfilled) or Walmart (seller-fulfilled), before any label is bought or any fulfillment request goes to the 3PL.

Each step of the workflow in order, and whether a fixed rule, an AI model or a person runs it
StepWhat happensWho runs it
1The new order's shipping address is sent to a validation service, such as the USPS Addresses API or a carrier's address validation API, and the answer is saved on the order with the time of the check.Rule
2The decision table runs top to bottom: the first row that matches decides whether the order passes, is corrected by a formatting-only change, is rerouted to another carrier service or is held.Rule
3For held Shopify orders, the workflow places a fulfillment hold with the incorrect address reason and a note naming the failed field, so nothing reaches the 3PL. Amazon and Walmart orders are held in your own system before the label is bought.Rule
4An AI model reads the customer's reply, or a note on the order, and pulls out the corrected address fields for the next check. It never edits the order or releases a hold on its own.AI model
5The corrected address is validated again. If it passes and the change is on a Shopify order, the order is updated and the hold released; anything else goes to the address queue.Rule
6A person decides the queued cases: ship as entered, accept a correction the customer did not confirm, cancel a marketplace order, or call the customer before the ship-by date.Person
7A morning report lists held orders by age and ship-by date, orders released without a reply, and parcels that still came back with an address problem.Rule

5 rule steps · 1 AI model step · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.

Person

What stays with a person

  • Any Amazon or Walmart order whose address cannot ship as it stands, including every seller cancellation
  • Shopify orders held past your reply deadline: ship as entered, cancel and refund, or call the customer
  • Corrections that change the street, the house number or the city, unless the customer confirmed them
  • Express orders and orders above your value limit, before any hold delays them
  • Changes to the decision table, the reply deadlines and the customer message templates
Tools

Which tools can run it

  • Shopify's built-in address validation and Shopify Flow's Hold fulfillment order action, for a Shopify-only store
  • Zapier, Make or n8n calling a postal or carrier validation API, with the customer email from your email tool
  • Custom code on your accounts, for Amazon and Walmart orders, per-carrier rules and the hold before the 3PL handoff

Systems it connects

  • Shopify orders and fulfillment orders
  • Shopify Flow
  • Amazon Selling Partner API (Orders)
  • Walmart Marketplace Orders API
  • USPS Addresses API or a carrier's address validation API
  • Email or SMS tool for customer messages
  • 3PL or label software
  • Slack or a helpdesk view for the address queue

Build size: Medium

The checks are simple; the work is holding orders in three channels before the label or the 3PL, and keeping the reply, the second check and the release in step.

A customer types "12 Oak St" and forgets the apartment number. The order goes to the 3PL, the label is bought, the parcel ships, and a week later it comes back marked undeliverable. You paid for the label twice, the customer waited two weeks, and support spent three emails finding out what one question at checkout would have caught. This recipe moves the check to the one moment it is cheap: after the order is placed and before anything is bought or picked. It is one page of our automation library, and it sits between the order handoff and the tracking alerts.

Which address problems should hold an order, and who decides?

Write this table before you build anything. Each row is a problem the workflow can detect, what it does, the hold and its release, and who decides. The rows run top to bottom and the first match wins. The carrier facts come from FedEx's Address Validation API documentation and USPS's military mail page (both checked October 26, 2026); check your own carriers' rules for every service you use. Reply deadlines are illustrative.

#Address problemHow the workflow sees itWhat the workflow doesHold and releaseWho decides
1Formatting only: lower case, "Street" instead of "St", a missing ZIP+4The validation service returns the same address in standard formSaves the standard form for the label; no customer contactNo holdThe rule
2Missing apartment, suite or unit numberThe service flags a building with several units and no unit on the order. FedEx's API cannot add a missing unit itselfAsks the customer for the unit numberHold; released when a unit is added and passes a second checkThe customer supplies it; a person after the deadline
3ZIP Code does not match the city or stateThe postal check returns a different city or ZIP for the streetAsks the customer to confirm which part is right, showing bothHold; released on a confirmed address that passesThe customer; a person after the deadline
4Address not found, or a house number outside the street's rangeThe service returns no matchAsks the customer to re-enter the addressHold; released on a confirmed address that passesThe customer; a person after the deadline
5A suggested correction that changes the street, house number or cityThe service returns a different address with high confidenceShows the customer the suggestion and asks for a yesHold; never released on the suggestion aloneThe customer; a person after the deadline
6P.O. box on a service that does not deliver thereThe address line is a P.O. box and the assigned service cannot deliver to it. FedEx delivers to P.O. boxes only via FedEx Ground EconomySwitches to an eligible service, such as a USPS one; no customer contactNo hold, unless the customer paid for a service that cannot deliver thereThe rule; a person for paid express
7APO, FPO or DPO addressCity is APO, FPO or DPO and state is AA, AE or APChecks USPS's format (no city or country name), assigns a USPS service and flags the customs formHold until the customs form is readyOperations
8Valid address you do not ship toThe address passes but is outside your shipping zones or a carrier's coverageDrafts the cancellation with the reasonHoldA person; always on Amazon and Walmart
9Any problem on an Amazon or Walmart orderRows 2 to 5 or 8, on a marketplace orderHolds it in your own system and queues it for a person to contact the buyerHold before the label or the 3PL; released by a personA person, before the ship-by date
10Any row on an express order, or above your value limit (for example $500)Same as the matching rowMoves it to the top of the queueAs the matching row, with a shorter deadlineSupport lead

Three choices make the table work. Formatting fixes and carrier swaps never bother the customer, because they change nothing the customer cares about. Anything that changes where the parcel goes needs the customer's yes, because a "high confidence" suggestion can still be the wrong building. And marketplace orders always end with a person, because the address belongs to the marketplace's order, not to you. The $500 limit and the deadlines are examples for your brand to set, not advice for your store.

How do the hold and the release work in each channel?

The hold must sit in front of the label and the 3PL, wherever the order comes from. Shopify gives you a real hold; Amazon and Walmart do not, so the hold lives in your own system.

ChannelWhere the hold livesWhat releases itWhen a person takes overWhat you cannot do
ShopifyA fulfillment hold with the INCORRECT_ADDRESS reason and a note naming the failed fieldA corrected address that passes a second check; the workflow updates the order and releases that holdAt the reply deadline, for example one business day for standard shippingRelease a system hold another app placed without checking its terms
Amazon, seller-fulfilledYour order system or 3PL connector: no label bought, no order sent to the warehouseOnly a person, after the buyer replies and the address can shipAt once; the clock is the order's ship-by dateChange the buyer's delivery address through the Orders API
Walmart, seller-fulfilledYour order system, before the label is bought and the lines are shippedOnly a person, after the buyer replies and the address can shipAt once; the clock is the order's ship-by dateEdit the address through the Orders API; reverse a cancellation

On Shopify, the hold reasons in the FulfillmentHoldReason list include INCORRECT_ADDRESS, described as a hold "because of an incorrect address" (checked October 26, 2026). Shopify's FulfillmentOrderStatus reference says a fulfillment order on hold cannot start fulfillment until the hold is released. In Shopify Flow, the Hold fulfillment order action places the hold with a reason, notes and an optional merchant notification. A custom integration uses the fulfillmentOrderHold mutation, where each app can keep up to 10 active holds on one fulfillment order (both checked October 26, 2026).

Release the hold you placed, not every hold on the order. Shopify's holding fulfillments page says a fulfillment can carry manual and system holds at once, and that overriding a system hold placed by an app may breach your agreement with that app (checked October 26, 2026). That is why the note on every hold names the failed field: the person in the queue sees at a glance which hold is the address one.

What do Shopify, USPS and the carriers check for you?

More than most stores use. In the admin, Shopify's order address validation runs on every plan and is always active; it shows warnings and errors with suggested fixes, and an error cannot be marked as valid (checked October 26, 2026). At checkout, the Validate shipping address setting offers suggestions to the customer before they pay. Both cover 20 countries for specific suggestions, including the United States and Canada. Shopify advises using its setting or a third-party validation app at checkout, not both, because they can show conflicting suggestions.

Checkout catches the most problems for the least effort, because the customer is still on the page. Shopify's address format validation rule can block checkout when an address does not match a format you require, for example a P.O. box when you need a physical address. It is part of Checkout Blocks, and Shopify's Checkout Blocks page says everything beyond content blocks on the Thank you and Order status pages is for Shopify Plus (both checked October 26, 2026). Every store still needs the check after checkout, for orders placed in the admin, through marketplaces and from customers who ignore a suggestion.

For the check after checkout, USPS's API catalog lists Addresses 3.0, which standardizes domestic addresses, city and state names and ZIP Codes to USPS addressing standards, with a City/State lookup by ZIP Code and a ZIP Code lookup by city and state (checked October 26, 2026). FedEx's Address Validation API checks up to 100 addresses per request and classifies each as business, residential, mixed or unknown. FedEx also says not to use it to decide whether FedEx will deliver to an address, because it does not serve every valid address. For military mail, USPS Publication 28 sets the APO or FPO designation with a two-character state code (checked October 26, 2026).

Why do Amazon and Walmart orders always go to a person?

Because you cannot fix the address yourself. Amazon's Orders API page names v2026-01-01 as the current version and says v0 is deprecated (checked October 26, 2026). Amazon's own model for v2026-01-01 has two operations, searchOrders and getOrder, both reads; the delivery address comes back with a type of residential, commercial or pickup point (checked October 26, 2026). There is no call to change it. So the workflow detects and holds; a person contacts the buyer in the way Amazon allows and decides.

Walmart is the same in a different shape. Its Orders overview tracks order lines through Created, Acknowledged, Shipped and Canceled, and its cancel orders guide says only unshipped lines can be canceled, with a reason that includes SELLER_CANCEL_ADDRESS_NOT_SERVICEABLE (both checked October 26, 2026). Walmart's Seller Center cancel guide adds that cancellations are not recommended, cannot be reversed, and that sellers should keep a cancel rate under 2% (checked October 26, 2026). A cancel is a decision with an account cost, so the workflow drafts it with the reason and a person sends it.

The hold itself is the same idea as in our Amazon and Walmart orders to a 3PL recipe, which checks every order before it reaches the warehouse. This recipe adds the address rows to that check. On Shopify, the address hold is one row of the hold table in our Shopify-to-3PL recipe; this page is that row written out in full.

What should the customer message say?

One question, one link, one deadline. "We are about to ship your order and the carrier cannot find apartment or unit details for 12 Oak St. Reply with your unit number, or tap here to confirm the address is complete. We will hold your order until tomorrow at noon so it ships to the right door." The customer hears why you are asking, what to send and what happens if they say nothing. Never tell them the address is wrong when the service only could not confirm it.

Send it from the email or SMS tool you already use for order messages, in your brand's voice, and put the reply where the workflow can read it. The model step pulls the corrected fields out of a free-text reply, and the rule step checks them again before anything is released. If the reply asks for something else, such as a different address or a cancellation, it goes to the queue with the order, where our support-ticket triage recipe already sorts tickets by order.

Where does a custom build earn its cost?

When orders come from more than Shopify. A store that sells only on Shopify can get far with checkout validation, the admin warnings and a Flow workflow that holds on a tag. A brand that also ships Amazon and Walmart orders from the same warehouse needs one address check for all three, holds that live before the label in every channel, and ship-by clocks per marketplace. A custom integration keeps the table, the holds and the log in one place, on Ecomsellertool Growth OS beside your other order flows. Choosing the carrier service for each order is order routing; after the parcel ships, our shipping exception alerts watch for the address problems a carrier still finds.

Who builds address validation into the order flow?

Ecomsellertool builds workflow automation on your own Shopify, Amazon, Walmart and carrier accounts. We have built software on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. For addresses we write your decision table with you first, then connect the check, the holds, the customer message and the queue, in Flow where it fits and in code where it does not. Send a project brief or read how our workflow automation service works.

The building blocks are work we have shipped:

  • Carriers and routing rules in one layer. For Ecom Global, a global listing and shipping platform built for 100M+ products, 20+ marketplaces and 13+ carriers, including USPS, UPS and FedEx, we built a shipping master where carriers, rate cards, warehouses and routing rules live in one place, so an order flows to the cheapest eligible carrier.
  • Orders from every marketplace in one table. For Seller7 we built one order table across Amazon, Walmart, Target Plus, Shopify and Mirakl, with a single Process Order button in place of the back-and-forth between seller centrals.

Get your address checks built

Send us your channels and your address problems

Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.

A few sentences is enough: what happens today, who does it and how often.

Starts when you fill in the form

A quick private check that runs in your browser. No tracking, no puzzles.

A person reads every brief. You get a written plan within 2 business days; no obligation.

Frequently asked questions

Does Shopify validate shipping addresses automatically?

Yes, in two places. In the admin, Shopify checks order addresses on every plan and shows a warning or an error with suggested fixes. At checkout, you can turn on Validate shipping address under Settings, Checkout, so customers see suggestions before they pay. Both give the most specific suggestions for addresses in the United States, Canada and 18 other countries. Neither holds an order on its own, so a workflow adds the hold.

How do I stop an order with a bad address from going to my 3PL?

Put a fulfillment hold on it before the fulfillment request is sent. In Shopify, the hold reason incorrect address exists for this, and Shopify says a fulfillment order on hold cannot start fulfillment until the hold is released. Shopify Flow's Hold fulfillment order action can place it from a condition on the address. Release the hold once the corrected address passes a second check.

Can I change the shipping address on an Amazon or Walmart order?

Not through the order APIs. Amazon's current Orders API only searches and reads orders, and Walmart's Orders API lets you acknowledge, ship, cancel and refund lines but not edit the address. If the address cannot ship as it stands, a person decides with the buyer, and on Walmart a seller cancellation can use the reason SELLER_CANCEL_ADDRESS_NOT_SERVICEABLE. Cancellations count against your account metrics, so they are never automatic.

Can every carrier deliver to a P.O. box?

FedEx says it does not deliver to P.O. boxes except via FedEx Ground Economy. Check your own carrier's rules for every service you use. A workflow that sees a P.O. box on an order assigned to a service that cannot deliver there should switch it to an eligible service, such as a USPS one, before the label is bought, rather than ask the customer for a new address.

How do I ship to an APO, FPO or DPO address?

With a USPS service. USPS says to put APO, FPO or DPO in the city position with the state code AA, AE or AP, to leave out any city or country name, and that a customs form is often needed. A workflow checks that format, assigns a USPS service and flags the order for the customs form before the label is bought.

What should the workflow do if the customer never replies?

Hand it to a person before the ship-by date, never ship or cancel on its own. Set a reply deadline per channel, such as one business day for standard shipping, and send one reminder. When it passes, a person decides: ship as entered when the carrier accepts the address, call the customer, or cancel and refund. Shopify warns that fulfilling an order with an unresolved address issue can delay or fail delivery.

Jaimin Dholakia, founder of Ecomsellertool
Jaimin Dholakia · Founder
Schedule a call

Get this workflow built on your own systems.

Prefer to talk the workflow through first? Schedule a free call with the engineers who would build it. Selling on Amazon? The free 24-hour diagnostic finds the operations gaps in your account: connect it with Login with Amazon, on Amazon’s own consent screen (we only read data; we never change listings, prices, stock or ads), and get a report within 24 hours of connecting, on business days.

Free · 30 minutes · Pick any open slot