USPS
Navigate to WooCommerce → ShipLabel → USPS.
| Setting | Default | Description |
|---|---|---|
| Enable USPS | Off | Master toggle for USPS label generation and checkout rates |
| Environment | Production | Production or Sandbox / Testing |
| Client ID | - | Consumer Key of your app at developers.usps.com |
| Client Secret | - | Consumer Secret of the same app |
| CRID | - | Customer Registration ID from the Business Customer Gateway. Needed for labels only |
| Mailer ID (MID) | - | Needed for labels only |
| Manifest MID | - | Optional. Leave blank to use the Mailer ID |
| EPS Account Number | - | Enterprise Payment System account that pays for postage. Needed for labels only |
| Default service | Priority Mail | Pre-selected service on the order panel, and the service used for bulk and automatic labels |
| Label format | PDF or TIFF |
Click Test connection after entering the Client ID and Secret. It confirms ShipLabel can sign in to USPS; it does not check label access or your payment account.
What Each Feature Needs
Rates and tracking work with just the Client ID and Secret. Label purchases and address validation need extra access from USPS:
| Feature | Needs |
|---|---|
| Rates (order panel and checkout) | Client ID + Client Secret |
| Tracking sync | Client ID + Client Secret |
| Labels (create and cancel) | Labels API access on your USPS app, plus CRID, MID and EPS account number |
| Address validation | An Addresses API license on your USPS business account |
Payment Account (Required for Labels)
Every USPS label request must carry a payment authorization that tells USPS which account pays for the postage. ShipLabel requests it automatically from your CRID, Mailer ID and EPS account number, keeps it for 7 hours, and requests a fresh one when it expires or USPS rejects it.
Where to find the numbers:
- CRID - sign in to the Business Customer Gateway (opens in a new tab); it's shown on your business profile.
- Mailer ID (MID) - in the Business Customer Gateway under Mailing & Shipping Services. Request one there if you don't have it yet.
- EPS account number - create an Enterprise Payment System account in the Business Customer Gateway (or via Create a Payment Account in Click-N-Ship) and add a funding method.
The account number shown in Click-N-Ship is your USPS.com account, not your EPS account number. Entering it in the EPS field will make every label request fail.
Your USPS app also needs Labels API access, which USPS enables per app. Until it does, label requests fail with "Insufficient OAuth scope" even though Test connection succeeds. Request access through the USPS business portal (cop.usps.com (opens in a new tab)) or USPS API support.
If the CRID, MID or EPS account number is missing, ShipLabel stops before contacting USPS and shows: "USPS label creation needs your CRID, Mailer ID (MID) and EPS account number."
Address Validation
USPS requires an Addresses API license for address validation. Without one, Validate with USPS shows USPS's own "not authorized for access to Addresses API" message. Add the license in the USPS business portal (cop.usps.com (opens in a new tab)) under My Account → API Licenses → Add an Addresses API License.
Supported Services
USPS Priority Mail, Priority Mail Express, Ground Advantage, First-Class Package, Media Mail, and Library Mail. USPS shipping in ShipLabel is domestic (US addresses).
USPS retired First-Class Package Service in 2023 and now prices it as Ground Advantage.
Package Types
| Package type | Available on |
|---|---|
| Your Packaging | Every service - priced by weight and dimensions |
| Flat Rate Envelope | Priority Mail, Priority Mail Express |
| Small / Medium / Large Flat Rate Box | Priority Mail |
The order panel disables Flat Rate options that don't apply to the selected service, and ShipLabel double-checks the combination before contacting USPS, so you get a plain-English explanation instead of a rejected label purchase. Rates are always requested for exactly the selected service and package type.