Suppose it is 3:40 p.m. in Denver and checkout lead Maya has twenty minutes to clear a recognition campaign’s last shipping batch. One order has a tidy street, city and ZIP Code. The shipping form shows a green indicator, but the apartment box is empty. The box contains a jacket chosen by the employee, and the next replacement batch is two weeks out. Maya has to decide whether to send the address to the label queue or ask one more question.

If a check supports only the building, hold a building that needs an apartment for confirmation. For US gift checkouts, Google Address Validation and Smarty US Street can provide different signals for making that call. USPS ZIP Code Lookup and a recipient check give an operator a separate way to resolve uncertain orders. Choose a workflow by how it handles incomplete and conflicting inputs and whether the accepted address reaches the label intact.
Compare what each option can actually tell you
The useful unit of comparison is a checkout decision. An API can normalize street abbreviations, supply a ZIP+4 or return a component it cannot confirm. Your operation still has to decide whether the recipient should see a suggestion, supply a missing field, or wait while support checks a conflict. A clean result is useful only if the checkout can explain which of those actions follows and why.
Google's coverage page lists the US and documents where data quality and features can differ. Its validation logic guide explains how to interpret the verdict, component completeness and changes. A missing subpremise in the US is a concrete reason to ask about a unit. Confirm when a meaningful component is inferred or replaced. Check the request configuration separately. Google's request documentation describes optional CASS processing for the US and Puerto Rico. A setting you can enable in that market does not prove it was enabled in your checkout.
Smarty's US Street reference describes the delivery lines, candidates, component fields and delivery point analysis available from that endpoint. The company's international reference directs US users to the US service for more useful metadata. In the US response, distinguish a match with sufficient secondary information from a primary address match where a required secondary is missing or fails to match. Read the delivery point code alongside the relevant footnotes and input fields. Confirm which match modes and metadata your subscription and request actually return.
USPS ZIP Code Lookup is a practical way for an operator to check postal formatting and ZIP Code information. USPS explicitly says a result does not confirm that an individual or business occupies that address. Treat the lookup as evidence about the postal address. A recipient can supply the apartment, confirm a chosen location or tell you which mailroom will take the parcel. The manual route is useful precisely when that personal knowledge is the missing input.
| US checkout route | Useful evidence | What still needs checking | Typical next action |
|---|---|---|---|
| Google Address Validation | Verdict, missing or changed components, and postal signals available in your request configuration | Whether a material suggestion is correct for this recipient and whether the supported label retains their unit | Allow a policy-approved formatting change, prompt for a missing unit, or show a material correction for confirmation |
| Smarty US Street | Candidate delivery lines, component data and delivery point analysis for the configured match mode | Whether the input has the right secondary and whether a match represents the intended destination | Proceed for a sufficiently supported unchanged destination, or ask for the missing or conflicting secondary |
| USPS lookup plus recipient review | Postal lookup and explicit recipient confirmation or corrected input | Carrier acceptance, current delivery instructions and whether the reviewed address survives label rendering | Route exceptions to an operator, then record the confirmation or keep the order on hold |
Treat the three rows as complementary choices. If your team is comparing two integrations, test each with the same scenario labels, decision policy and carrier export. For a small campaign, the manual route might be sufficient. For a large campaign, an automated first pass can reserve human attention for ambiguous addresses. In either case, confirm unit handling with the label generated by the actual fulfillment flow.
Separate normalization from a destination change
Start with a short field policy. Changing capitalization, folding extra spaces or using a postal abbreviation can be safe when the original and the candidate preserve the same components. Changing a house number, directional, street name, city, postal code or secondary identifier can change the destination. Define which of those changes require confirmation, who can confirm and which evidence the system records. Avoid converting every changed string into a support ticket. Distinguish harmless presentation from an edit that moves the parcel.
A checkout can store three address records with different roles. The recipient entry captures what they submitted. The suggested candidate captures a particular provider response for that submission. The accepted record captures the address version approved for the label. Keep a link between the three, the decision reason and the checkout attempt so staff can trace an unexpected result. Set retention and access deliberately with your privacy team. Test evidence can use fixture IDs, field change types and redacted values. Full recipient addresses do not belong in broad operational channels or a shared test sheet.
Preserve the form state when asking for a correction. A recipient who typed their street, city and ZIP Code should return to a filled form focused on the missing apartment. Give them a choice to enter the unit or explain that their address has no unit. If a suggestion changes a significant field, show enough of the original and suggested address for the recipient to tell them apart. Use clear buttons such as “Use this address” and “Edit address.” An ambiguous “Continue” makes it hard to know whether they actually accepted a change.
Separate display text from the fields required by the carrier. A form can show a single line for convenience while still storing an apartment separately. Conversely, a properly stored unit can disappear if your label renderer pulls only the first street line. Test both representations. Keep punctuation in the original record if it matters to a recipient's entry, then test how your carrier integration formats and wraps it. An address candidate can look perfect in the checkout preview while the label, warehouse export or batch reprint drops the last line.
Worked decision one: a building match with the apartment missing
Return to Maya's queue. The address has a primary number and street, and the postal lookup returns a ZIP Code for the building. The fixture represents a multiunit building. In one automated path, assume a Google response reports a missing subpremise. In the other, assume Smarty reports a primary match and missing required secondary information. These are illustrative response patterns to reproduce with documented sample inputs or a controlled test double. They are not measurements from a live Denver recipient address.
Both paths should land in the same checkout state: needs unit. Save the original submission and keep the order out of the label batch. Open the form with the street fields retained and ask Maya's recipient for their apartment. The fact that the system returned a postal code or a formatted building line does not answer that question. If the recipient provides the unit, recheck the complete address and inspect the final exported label. If the recipient confirms there is no unit but the building evidence still indicates one, route the disagreement to a reviewer. Support can ask whether a staffed reception point or other eligible delivery location was intended.
Suppose the employee replies before cutoff and enters an apartment that passes the secondary check. The checkout now has a new recipient submission, the resulting candidate and a recorded accepted address. The batch preview should show the apartment on a readable line, and a reprint should draw from the same accepted version. If it does, Maya can release that order before the batch cutoff. If the response comes later, she should put it in the next authorized batch and tell the recipient what changed. An arbitrary apartment guess risks a failed delivery and loses the evidence needed to explain it.
Test the same case with a single-family fixture that legitimately has no apartment. The correct flow should not force everybody to enter a secondary number. Record the difference between “unit not applicable,” “unit expected and missing,” and “unit supplied but conflicting.” A test that only looks at whether the field is blank will make unnecessary prompts on the first fixture and may accept a wrong unit on the third. Track these as different outcomes.
Worked decision two: a harmless abbreviation and a competing candidate
In another test batch, a team is deciding whether to pay for an automated integration or rely on postal and recipient review. They create a small set of synthetic fixtures with known expected outcomes. One has a complete unit and a street suffix written out. Another includes a directional that could identify a different street. A third has an accepted unit but produces two plausible candidate strings after a spelling correction. The warehouse prints labels in batches, so they test all three through the same label template.
The complete unit with only a known equivalent street suffix can take the fast path if the policy allows that formatting change. Log that no delivery component was materially changed. The fixture with a directional change should show a confirmation step or enter the review queue, even if the other fields and ZIP Code match. For multiple candidates, show or review the actual conflicting fields. Never automatically select the first response because it happens to be listed first. If neither choice is clear to the recipient, offer an edit or support route rather than forcing a guess.
Consider a twenty-order acceptance exercise with twelve unchanged complete addresses, three formatting-only changes, three missing units and two material conflicts. The expected automated flow clears fifteen orders and surfaces five. That ratio is a fixture design, not a predicted production rate. If a candidate flow clears seventeen by silently accepting two material conflicts, the two extra completions count as safety failures. If a flow clears twelve and sends three harmless formatting cases to review, quantify the extra handling before changing your policy. For example, at four minutes per review, three such cases consume twelve minutes in this exercise. That is a scenario for comparing queue design, not a vendor performance claim.
When the same fixture is sent through USPS lookup and recipient review, record whether the reviewer can identify what to ask without seeing a provider code. The reviewer might confirm a ZIP+4 or recognize two credible forms of a street line. They still need the recipient for facts like which entrance, apartment or business suite is intended. Compare the quality of the eventual decision and the completeness of its evidence, alongside the time it takes. The alternative with the most candidates or the shortest response time does not automatically make the best checkout.
Make the exception route executable
Give unresolved orders a clear state with an owner and a next contact time. Common exceptions include provider timeouts, a new building with partial data, a supported postal address that your carrier does not accept for the selected service, or a recipient who cannot use the suggested label address. An automated result may be unavailable because of a temporary service problem. Keep the original fields, prevent an unapproved label, and let the recipient continue editing. Apply a retry limit so a timed-out call does not trap them in a spinner or repeatedly submit a sensitive address.
If staff confirm an alternate address, save it as a new accepted version rather than editing a label in isolation. Check if the order is still unprinted, already printed but not manifested, or handed to the carrier. Before handoff, the warehouse should follow its void and reprint procedure and record the superseded version. After handoff, follow the carrier's supported exception process and tell the recipient what you can verify. A form correction does not by itself redirect a parcel already in transit. Giftpack's delivery failure recovery guide walks through what to check before and after handoff.
Set a clear policy for orders that miss the campaign cutoff. A replacement run, alternate pickup, digital substitution or cancellation may be appropriate depending on the gift policy and recipient choice. Give support a decision tree with the options it is authorized to offer. Do not require the recipient to share a home address if the program supports an eligible alternative. For a workplace delivery, confirm whether a mailroom can accept the item and which recipient information belongs on the label. A postal lookup cannot decide those local routing questions.
For outages, define what conditions allow manual processing. A small queue of recipient-confirmed, unchanged addresses may proceed if a reviewer checks the carrier form and all required fields. An order with an unresolved building or unit conflict stays in review. Keep a short audit trail: timestamp, reviewer, applicable fixture or order ID, the reason for the exception, and the accepted record version if there is one. Once service recovers, avoid silently replacing a manually approved address with a new candidate. Compare the new evidence and ask for confirmation if the destination would change.
Run a buyer test before choosing a default
Write down the inputs, acceptable outcomes and failure conditions before a vendor demonstration. Start with a complete address with a unit, an expected unit omitted, an incorrect unit, a harmless abbreviation, a directional change, two candidates, an empty response and a timeout. Include a long recipient field and accented or non-ASCII input where your program permits it. Use synthetic fixtures or vendor-published samples. Check Unicode handling at capture, candidate display, storage, batch export and label rendering, rather than assuming a system that accepts a character will carry it through every downstream layer.
Compare each route against the same tests. Capture the request mode, relevant documented fields and the expected policy decision. Keep snapshots of the confirmation prompt and test labels with personal data removed. Observe whether a provider result was lost in an integration adapter, whether a support override was attached to the right order version, and whether the final label followed that version. If you change the match mode, carrier integration or regional product, run the affected fixtures again. Record when you checked the provider documentation so a future owner knows when to revisit coverage and behavior.
Use a short scorecard with a few denominators. Count how many cases had the correct outcome for missing units, how many material changes were explicitly confirmed, and how many accepted labels preserved every required component. Measure the fraction that needed review and the time spent resolving them. Track how often the recipient could correct a problem without support, and which errors showed up only after label creation. Keep fixture results separate from production outcomes. Once live, track returned parcels and exception reasons on comparable batches, and avoid attributing every delivery problem to address validation.
Review the operating cost as well as the integration effort. A more expressive response can be valuable if the checkout can act on it. If a team plans to treat every successful response as final, extra metadata will not prevent an address overwrite. If a workflow already collects a reliable unit and asks before significant changes, the incremental benefit may be faster handling or cleaner label exports. Confirm subscription features, intended geography and data terms directly before contracting. For campaigns outside the US, repeat the verification market by market using local postal guidance and actual provider coverage. An American ZIP Code test provides no evidence about a foreign unit, postal format or character set.
Include one test for a second invitation to the same recipient. If they explicitly change their delivery address, the new confirmation should apply to that shipment only unless the program has told them otherwise. An old recommendation must not repopulate the checkout after a refresh. Use a test with two tabs open to make sure the later address cannot be overwritten by a response to an earlier submission.
Document the decision in a form a second person can execute. Specify which provider or manual route handles the first pass, when the checkout may normalize, when a recipient must confirm, and what a reviewer must check before releasing an exception. Give the warehouse a test for the exact accepted address on the label. Finally, assign ownership of the queue after the cutoff. These are inexpensive controls compared with retrieving a parcel or explaining why a colleague's chosen gift was sent to the wrong unit.
Maya's order is resolved when the recipient supplies the apartment, the recheck supports the accepted address, and the label retains the unit. For programs that need to coordinate invitation, recipient choice, address collection and fulfillment in one workflow, Giftpack's recipient experience guide describes the handoffs and exception visibility to look for. Confirm which checkout decisions and fulfillment services your program will actually use, then test those handoffs with the same missing-unit and competing-candidate cases before releasing the next batch.

