
For years, connecting Odoo to USPS meant going through a middleman. You’d plug in EasyPost or Shipstation, configure a bridge connector, and hope the abstraction layer didn’t swallow important details like service levels or package classifications. It worked, but it added cost, complexity, and another vendor relationship to manage.
Odoo now ships a dedicated USPS module that talks directly to the postal service’s API. No middleware, no third-party subscription, no translation layer between your warehouse and the carrier. Install the module, enter your USPS business credentials, and the delivery method is ready to print labels.
Getting Credentials From USPS Takes Five Minutes
The setup requires a USPS business account and a registered developer app. Business accounts are free through USPS’s Customer Onboarding Portal — any US-based business with a shipping address can create one. From there, registering a developer app generates the Consumer Key and Consumer Secret that Odoo needs to authenticate API calls.
The credentials break down into two categories. Account-level identifiers — EPS Number, CRID, Master Mailer ID, and Label Mailer ID — tie the integration to your specific USPS account and determine which rate tables apply. API credentials — Consumer Key and Consumer Secret — handle authentication at the technical level. Both sets live on a dedicated USPS Configuration tab inside the delivery method form.
Configuration Covers Every Shipping Scenario
The delivery method form exposes the full range of USPS service options. Label format supports both standard thermal labels and letter-size PDF prints. Package type selections cover everything from flat rate boxes and padded envelopes to custom packaging with user-defined dimensions. Service level choices span Priority Mail, Priority Mail Express, Ground Advantage, and international options.
Two fields that most connectors ignore are here too: Delivery Nature distinguishes between domestic and international shipments, and Content Type classifies parcels as merchandise, documents, gifts, or returned goods. These matter because USPS applies different handling rules and customs requirements based on these classifications — getting them wrong doesn’t break the label, but it can trigger delays at sort facilities.
Rating and Processing Controls
The Options section adds two controls that affect how USPS calculates rates. The Rating Indicator lets businesses choose between standard commercial rates and contract-specific pricing for high-volume shippers. The Processing Category designates whether the shipment is machinable, irregular, or requires manual handling — each category carries different surcharges that show up in the rate response.
Return label generation is built in as a toggle. When enabled, Odoo automatically generates a prepaid return label alongside the outbound shipping label. The return label uses the same service level and package type as the original shipment, which saves warehouse staff from configuring returns as a separate workflow.
Test Mode Ships With Pre-Built Sandbox Credentials
Odoo installs two pre-configured test delivery methods when the USPS module activates. These come wired to USPS’s sandbox environment, letting teams validate their integration without generating real postage charges. The test environment mirrors production behavior closely enough to catch configuration errors before they cost money.
Switching to production is a one-field change — flip the environment toggle from Test to Production and confirm your live credentials are populated. A debug logging option exists for teams that need to inspect raw API payloads during initial deployment, capturing request and response bodies for troubleshooting rate discrepancies or label generation failures.
Where This Leaves the Shipping Stack
With USPS joining FedEx, UPS, DHL, EasyPost, Sendcloud, and Starshipit as native connectors, Odoo’s shipping integration library now covers the major carriers that US-based businesses actually use without requiring any third-party bridge. For companies shipping primarily through USPS — especially e-commerce businesses handling lightweight parcels and flat rate boxes — removing the middleware layer eliminates a per-label cost that adds up fast at volume.
The direct connection also means rate quotes in Odoo reflect exactly what USPS will charge, without the latency or approximation that sometimes crept in through aggregator APIs. When a customer checks shipping at checkout, the price they see matches the postage on the label — no more margin surprises at month-end reconciliation.