Dependent Media Live Rates for USPS

Deskripzioa

Dependent Media Live Rates for USPS calculates real-time USPS shipping rates at checkout using your own USPS Developer Portal credentials, by talking directly to the USPS REST API (the current API — not the retired Web Tools API).

This plugin is not affiliated with or endorsed by the United States Postal Service. “USPS” is a trademark of the United States Postal Service and is used in this plugin’s name solely to describe the service the plugin integrates with.

Domestic US

  • USPS Ground Advantage
  • USPS Priority Mail
  • USPS Priority Mail Express

International

  • USPS First-Class Package International
  • USPS Priority Mail International
  • USPS Priority Mail Express International

Other features

  • Per-product weight and dimensions, with configurable defaults for products that have none set
  • Separate domestic and international service toggles — enable only what you want to offer
  • Automatic routing: the plugin detects destination country and hits the right USPS endpoint
  • Multi-box packing by default — each cart line item is rated as its own package and costs are summed. Heavy lines are automatically split across multiple boxes to stay within USPS weight caps. A “combined” mode is also available for stores that genuinely ship everything in one box.
  • Only services that price every box are offered — partial coverage would produce a misleading total
  • Optional fallback flat rate if the USPS API is unreachable
  • Debug logging via WooCommerce Status Logs

You bring your own USPS API credentials

This plugin does not proxy rate requests through any third party. You register your store as a USPS Developer Portal application once, paste the Consumer Key and Consumer Secret into the plugin settings, and rates go directly from USPS to your site. There is no monthly fee and no per-request cost.

Register at: https://developers.usps.com/

Privacy

When a customer reaches checkout, the plugin sends the destination postal code (and country, for international) along with the package dimensions and weight to the USPS REST API at apis.usps.com. No customer name, email, or other personally identifying information is transmitted. OAuth2 access tokens are cached locally in a WordPress transient.

Source code

Development happens on GitHub: https://github.com/Dependent-Media/dm-usps-shipping. Issues and pull requests welcome.

External services

This plugin connects to the USPS (United States Postal Service) REST API to obtain live shipping rates at WooCommerce checkout. This is the entire purpose of the plugin: without this connection, no rates can be calculated.

What is the service? The USPS REST API at https://apis.usps.com, operated by the United States Postal Service. The plugin uses two endpoints:

  • POST /oauth2/v3/token — to obtain an OAuth2 access token using the merchant’s USPS Developer Portal Consumer Key and Consumer Secret.
  • POST /prices/v3/total-rates/search and POST /international-prices/v3/total-rates/search — to obtain shipping rates for a given package.

What data is sent, and when?

  • When a customer reaches the WooCommerce shipping calculation step (typically the Cart or Checkout page), the plugin sends, for each package being rated: the origin ZIP code (configured by the merchant), the destination postal code, the destination country, and the package weight, length, width, and height.
  • When the plugin needs to authenticate to the USPS API (the first time, and again when the cached token has expired), it sends the merchant’s USPS Consumer Key and Consumer Secret to the OAuth2 token endpoint.
  • No customer name, email address, IP address, or other personally identifying information is transmitted to USPS by this plugin.

Who provides the service? The United States Postal Service.

Is the use of this service required? Yes. Calculating live USPS rates is the plugin’s only function, and it cannot be performed without contacting the USPS REST API. Merchants who do not wish to use this service should not install or activate this plugin.

Instalazioa

  1. Upload the plugin files to /wp-content/plugins/dependent-media-live-rates-for-usps/, or install through the WordPress plugins screen.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Register a USPS Developer Portal application at https://developers.usps.com/ and copy the Consumer Key and Consumer Secret.
  4. Go to WooCommerce Settings Shipping, open the shipping zone you want to offer USPS rates in, and add USPS Live Rates (DM) as a shipping method.
  5. Click into the method, paste your Consumer Key and Consumer Secret, pick which services to offer, and save.
  6. Test with a real cart to confirm rates are returned.

MEG

Does this work with the old USPS Web Tools API?

No. The USPS Web Tools API was retired in early 2026. This plugin uses the current USPS REST API (apis.usps.com) exclusively.

Is there a monthly fee?

No. The plugin is free and calls the USPS API directly with your own credentials. USPS does not charge for rate lookups on their Developer Portal at the time of writing.

What happens if the USPS API is down?

If you enable the fallback rate in settings, the plugin will show that flat rate when the API is unreachable or returns an error. If the fallback is disabled, no rate will be shown and the customer will see WooCommerce’s standard “no shipping options” message.

Does this support international rates?

Yes. First-Class Package International, Priority Mail International, and Priority Mail Express International are all supported. The plugin automatically routes to the correct USPS endpoint based on the destination country.

Does this support shipping labels?

No. This plugin only calculates rates at checkout. It does not generate or purchase labels. You can continue to use whatever label service you prefer (PirateShip, Stamps.com, ShipStation, USPS Click-N-Ship, etc.).

How does multi-box packing work?

By default, each cart line item is sent to USPS as its own package and the per-service costs are summed. For example, a cart with three different products gets three separate USPS rate quotes for each enabled service, then totals them. If a single line item is heavy enough that one box would exceed USPS’s weight limit, the plugin splits that line into multiple boxes automatically. You can switch to a “combined” single-box mode in settings if your store genuinely ships everything in one box.

How are flat-rate-box prices handled?

They aren’t shown. The plugin only considers true dimensional rates (USPS rate indicators SP, PA, DR, DN) — these reflect the actual cost of shipping a box of the cart’s dimensions. Flat-rate-box, cubic, and presort rates are excluded because they require specific packaging or mailing agreements that the plugin can’t guarantee the merchant will use.

Berrikuspenak

Ez dago berrikuspenik plugin honentzat.

Laguntzaileak eta Garatzaileak

“Dependent Media Live Rates for USPS” software librea da. Ondoko pertsonek egin dizkiote ekarpenak plugin honi.

Laguntzaileak

Aldaketen loga

1.1.0

  • Renamed the plugin to “Dependent Media Live Rates for USPS” and updated the slug/text domain accordingly, in response to WordPress.org Plugin Directory naming guidance.
  • Added an “External services” section to the readme, formally documenting the USPS REST API integration (data sent, when, and links to USPS Terms of Use and Privacy Policy).
  • Added the plugin owner (hsojhsoj) to the readme Contributors field.
  • No functional code changes — the WooCommerce shipping method ID, settings keys, and OAuth token transient are unchanged, so existing installations carry their configuration forward.

1.0.1

  • Corrected the Plugin URI header so the source-code link in the plugin headers resolves (the original 1.0.0 build pointed at a GitHub URL with the wrong casing). No functional changes.

1.0.0

  • First public release on WordPress.org. Functionally equivalent to the prerelease 0.3 series. Adds the Requires Plugins: woocommerce header and tightens internationalization on internal error messages.

0.3.0

  • Added multi-box packing. Each cart line item is now rated as its own package by default, and the per-service costs are summed. Heavy lines are automatically split across multiple boxes to stay within USPS weight caps.
  • Cart-wide service rates are filtered to only show services that priced every box (no more partial-coverage rates).
  • New “Packing strategy” setting: “One box per cart line item” (default, recommended) or “Combined into a single virtual box” (legacy v0.2 behavior).
  • Multi-box rates are labeled with “(N packages)” in checkout for transparency.

0.2.0

  • Added international shipping rates (First-Class Package International, Priority Mail International, Priority Mail Express International).
  • The plugin now auto-detects destination country and routes to the appropriate USPS endpoint.
  • Separate settings for which domestic vs international services to offer.

0.1.0

  • Initial release. Domestic US rates for Priority Mail, Priority Mail Express, and Ground Advantage.