Skip to content

ShipStation Validate Address

ShipStation address validation for basic normalization and deliverability checking via the ShipStation API. The extension calls the ShipStation v1 address validation endpoint (POST /addresses/validate) to normalize street, city, state, postal code, and country, and to flag whether ShipStation could verify the address. It is a lightweight option for merchants who already hold ShipStation credentials; it does not provide RDI, address type, or address imagery — the address type is always reported as unknown.

At a glance

Extension id shipstation_address
Category Address verification
Version 0.1.0
Provides Address validation strategy (shipstation_address)
External account ShipStation v1 API Key and Secret (from ShipStation's Settings > API Settings)

What It Provides

  • Address validation strategy — registers an AddressValidationStrategy named shipstation_address. On validation it posts the structured address to https://ssapi.shipstation.com/addresses/validate with Basic Auth, takes the first result, and returns:
    • a normalized address (street1/street2, city, state, postal code, country),
    • is_valid from ShipStation's verified flag, with deliverability deliverable when verified and unknown otherwise,
    • any ShipStation messages as validation warnings,
    • the raw provider response in the result metadata.

Setup

  1. In ShipStation, generate a v1 API Key and Secret under Settings > API Settings.
  2. Enter them in the extension's configuration (the two fields below; both are secret fields, stored encrypted and masked in the admin). Note that in the current code the strategy reads its credentials from environment variables, not the stored config — see Operational Notes.
  3. Select shipstation_address as a channel's address validation provider — the provider name is configured per channel (Settings > Geocoding channel configuration, or the address validation provider field in Settings > Channels).

Configuration Reference

Key Type Required Secret Description
api_key string Yes Yes ShipStation v1 API Key (from Settings > API Settings)
api_secret string Yes Yes ShipStation v1 API Secret

Permissions

This extension declares no permissions.

Operational Notes

  • Missing credentials pass addresses through — when the API key or secret is unavailable, validate() returns the input address unchanged with is_valid: true. Nothing is rejected, but nothing is actually validated either.
  • Environment fallback — the strategy is built per call and falls back to the SHIPSTATION_API_KEY and SHIPSTATION_API_SECRET environment variables when no config is supplied; in the current code the registered strategy proxy builds the client without passing stored configuration, so the environment variables are the effective credential source.
  • No result means invalid — an empty response from ShipStation returns is_valid: false with a no_result error issue.
  • Timeout — validation requests use a 10-second HTTP timeout.
  • Limited signal — unverified addresses come back with deliverability unknown (not undeliverable); this provider cannot distinguish residential from commercial addresses.