Connect a Carrier Account
How to link your own UPS, FedEx, DHL eCommerce, DHL Express, Passport Global, UniUni, and USPS accounts to ShipGenius -- the credentials each carrier needs, how the connection test works, and what the USPS business setup involves.
Bringing your own carrier account means you ship on the rates you negotiated directly with the carrier, and the carrier bills you for postage. ShipGenius sits in the middle as the label and rating layer, and we don't mark up your postage. Instead there's a flat ShipGenius fee per label -- $0.06 by default, tiered and adjustable per account, so higher-volume shippers often pay less. If you'd like to talk about your rate, just get in touch. And if you void a label, the fee is reversed and comes off your invoice.
Connecting your own accounts is available on Plus and above. If you're on Core, you'll ship on ShipGenius carrier accounts, so there's nothing to connect.
Before You Start
For every carrier except USPS, you'll need API credentials from the carrier's own developer portal rather than your usual web login. These are typically a client ID and client secret generated against your account number. Requesting them happens entirely on the carrier's side and usually takes the longest, so it's worth starting there before you sit down to connect.
You also need the CREATE_CARRIER_ACCOUNT permission. On a business account with several team members this is usually limited to admins, so if you don't see the connect button, ask whoever administers your account to grant it or to make the connection for you.
Connecting a Carrier
Head to the Carriers page. Each carrier has a connect button that opens a credentials drawer. Fill in the fields, submit, and your account shows up in the carrier list.
The fields differ from carrier to carrier because their APIs do. Here's exactly what each one asks for:
UPS
- Account number
- Client ID
- Client secret
FedEx
- Account number
- Client ID
- Client secret
DHL eCommerce
- Account number
- Client ID
- Client secret
- Distribution center -- the DHL eCommerce facility your parcels enter the network at. DHL eCommerce will tell you which one when they set up your account; it isn't something you choose.
DHL Express
- Account number
- Client ID
- Client secret
DHL eCommerce and DHL Express are separate integrations with separate credentials, so connecting one doesn't connect the other. DHL eCommerce is the domestic ecommerce parcel product, and DHL Express is the international express product -- if you use both, you'll want to connect both.
Passport Global
- Account number
- Access token
Passport Global uses a single long-lived access token instead of a client ID and secret pair. It's an international-only carrier -- see Shipping Internationally for what it's best at.
UniUni
- Account number
- Client ID
- Client secret
- Pickup warehouse -- the UniUni facility your volume is collected from. UniUni assigns this to you during onboarding.
Testing the Connection
You can test any connected account right from its entry in the carrier list. The test runs a real rate request against the carrier using a sample shipment, and it's the surest way to know your credentials are working -- carriers will often accept credentials when you save them, then turn them down when you actually rate.
It's worth running the test as soon as you connect, and again any time you change credentials. An account that saves cleanly but fails its test simply won't return any rates on the ship screen, which is easy to miss later on. A quick test now saves you the guesswork.
Managing Connected Accounts
The carrier list shows every account you've connected, with three controls on each:
- Enable / disable -- toggles whether the account is used for rating. A disabled account stays connected with its credentials intact, it just stops appearing in your rate results. That's the control you want when you're temporarily pulling a carrier out of the mix, rather than deleting it.
- Edit -- opens a carrier-specific update form for rotating credentials or correcting account details.
- Delete -- removes the connection entirely. Labels you already bought on that account aren't affected; you just can't buy new ones on it.
USPS Is Different
USPS business accounts don't use a simple client ID and secret. USPS asks for several identifiers from your Business Customer Gateway account, and they live in different corners of the USPS site. The connect flow asks for each one and links to a help page with the exact navigation path, so you don't have to hunt for them.
Master Mailer ID
Sign in to the USPS Business Customer Gateway, open Shipping Services from the upper-left menu, and select the USPS Ship Reports Service. Your CRID and Master Mailer ID are shown in the upper left.
EPS Account Number
EPS is the Enterprise Payment System account USPS bills your postage against. Sign in to the Gateway and your EPS account appears in the left sidebar of the homepage; use the dropdown to expand the full account number.
CRID
This one is your Customer Registration ID. In the Gateway, open Manage Account in the top right, then Manage Profile -- your CRID is listed under Home Business Location.
NSA
A Negotiated Service Agreement is a signed contract with USPS that gives you custom rates, and it's typically something very high-volume shippers set up. If you've arranged one with USPS, check the NSA box. If you haven't, leave it unchecked and you'll ship on ShipGenius commercial USPS rates, which are already well below retail. Either way you pay USPS directly -- ShipGenius handles the rating and the label.
What Happens After Connecting
Your carrier's services join the rate list on the ship screen right away, alongside ShipGenius accounts and any other carriers you've connected. There's nothing to select or set as a default -- every time you rate, we check everything you have access to and show you the results side by side.
If you'd rather control which services show up, rate groups let you narrow the set. That's covered in Rate Groups.
FAQs
Where do I get client ID and client secret?
From the carrier's developer portal, not their shipping website. Each carrier runs a separate developer site where you register an application against your account number and generate credentials. If you can't track yours down, your carrier account representative can point you to the right portal.
Do my own rates always beat ShipGenius rates?
Not always. Our negotiated rates are better than retail, so on lighter parcels, or with carriers you ship modest volume on, the ShipGenius rate often comes out ahead. Your rates and ours appear side by side in the same rate list, so you can compare them on every shipment and pick whichever works out better.
Can I connect more than one account for the same carrier?
Yes. You can connect as many accounts as you like for the same carrier, and all of them rate. That's handy if you keep separate accounts per division, per brand, or per warehouse.
My credentials saved but I'm getting no rates.
Run the connection test from the carrier list. Carriers commonly accept credentials when you save them and reject them at rate time, so a successful save doesn't always mean you're connected. The test sends a real rate request and shows you the actual error. If the message isn't clear, send it our way and we'll take a look.
What does the per-label fee cover?
It's the flat ShipGenius fee for a label generated on your own carrier account, charged in place of any markup on your postage. It's $0.06 per label by default, and it's tiered and adjustable per account -- higher-volume shippers often pay less, so reach out if you'd like to discuss yours. Void a label and the fee is reversed. See How Billing Works for how it appears on your invoice.
Is my carrier account billed by ShipGenius?
No. With a bring-your-own account, the carrier bills you directly for postage at your negotiated rates. ShipGenius only bills its own per-label fee.
Can I disconnect a carrier without losing my shipment history?
Yes. Deleting a carrier connection just stops you buying new labels on it. Shipments, labels, and tracking already recorded against that account stay in your history.