Carriers
Connect your own carrier accounts for live rates and labels billed directly to you.
The Carriers page lets you connect your own shipping accounts. Once linked, you can set up rules that pull live rates from your carrier. You can also buy labels billed to your account with no platform fee.
This is called BYOC (Bring Your Own Carrier). It works alongside the built-in rates. You can use both at the same time.
Supported carriers
| Carrier | API | What you need |
|---|---|---|
| DHL Express | MyDHL API | Username, password, account number |
More carriers will be added over time. The system is built to support any carrier with a REST API.
Connecting a carrier
- Go to Shipping > Carriers
- Click Connect carrier
- Select the carrier from the list
- Enter your API credentials
- Toggle Sandbox on if you want to test with the carrier's sandbox environment
- Click Test & Connect
The system checks your credentials with the carrier before saving. If the test passes, the account shows as "Connected" with a green badge.
Managing accounts
Each connected account shows:
| Field | Description |
|---|---|
| Status badge | Green (Connected), red (Error), or gray (Disconnected) |
| Last tested | When the credentials were last verified |
| Carrier | Which carrier this account connects to |
| Label | Your name for this connection |
You can:
- Test the connection at any time to re-verify credentials
- Edit the credentials if they change (e.g. password rotation)
- Disconnect to stop using the account without deleting it
- Reconnect a previously disconnected account
- Delete to remove the account permanently
Carrier defaults
Each connected carrier has a Defaults section where you set preferences that apply to every label you buy with that account. You can override these per label at purchase time.
Collection method
Choose how parcels leave your premises:
| Option | What happens |
|---|---|
| Drop-off | You take the parcel to a carrier drop-off point or post office |
| Pickup | The carrier collects from your address |
Drop-off is the default. If you switch to pickup, every label you buy with this account will request a collection unless you override it on the order.
Customs duties (international only)
For cross-border shipments, choose who pays import duties and taxes:
| Option | What happens |
|---|---|
| DAP (Delivered At Place) | The buyer pays duties on delivery. This is the standard for most shipments. |
| DDP (Delivered Duty Paid) | You pay the duties upfront. The buyer receives the parcel with no extra charges. |
DAP is the default. DDP costs more but gives your customers a better experience, especially for high-value orders where unexpected duty charges cause refusals.
These defaults save time when buying labels. You can still change them per label on the order page.
Using carrier accounts in rules
Once you have a connected carrier, Own carrier appears as a rate source when editing shipping rules. Select it, pick the account, and set your strategy and markup.
See Rules for details on BYOC rule configuration.
How rates work
At checkout (or when you view options on an order), the system calls your carrier with the parcel details. The carrier sends back live rates. Your markup and strategy are applied before the customer sees them.
Rates are cached for 15 minutes per route so the carrier API is not called too often.
How labels work
When you buy a label using a carrier account, the system:
- Calls the carrier's API to create the shipment
- Gets the tracking number and label PDF
- Records the label in your order
- Marks the order as fulfilled
The cost is billed to your carrier account directly. There is no wallet deduction or platform fee.
Tracking
BYOC labels are tracked on their own. Every hour, the system checks your carrier for status updates. As parcels move, the status updates on the order page.
Statuses are: Announced, In Transit, Delivered, Returned, and Error. A status cannot go backwards. A delivered parcel will not revert to in transit.
Testing with sandbox mode
Toggle Sandbox on when connecting a carrier to use the carrier's test environment. This lets you verify your entire shipping workflow without creating real shipments or incurring charges.
With a sandbox account you can:
- Test that your credentials work
- View live rates for test shipments
- Buy test labels and see the label PDF
- Verify customs data flows correctly for international orders
- Confirm pickup and DDP settings are applied
Sandbox labels are not shipped by the carrier. Tracking updates will not appear.
When you are satisfied, connect a second account with sandbox off and your production credentials. You can keep both accounts connected and choose which to use per shipping rule.
Credentials and security
Carrier credentials are stored encrypted in the database with row-level security. Only the server can access them. Credentials are never exposed to the browser or included in API responses.
When editing credentials, password fields show as empty. If you leave a password field blank, the existing value is kept.