The cheapest rate won. The label request failed on a field the quote never required.
The operator retries, creates a duplicate booking, and receives a tracking event before the customer record is updated. The rate screen worked; the shipment path did not.
Multi-carrier software succeeds when the selected service remains valid through booking, documents, pickup, tracking, exceptions, invoice, and support. Every carrier is its own contract and failure surface, even when an aggregator presents one API.
UrShipper project record
- to recover and rebuild the platform
- 14 weeks
- RaftLabs project record
- existing customers migrated
- 200+
- UrShipper reported, not independently audited
- shipments across 70+ countries in year one
- 2,000+
- UrShipper reported, not independently audited
RaftLabs was UrShipper's fifth development partner after four previous vendors. The documented build connected FedEx, DHL, UPS, Aramex, Shippo, and Shopify across customer, staff, and admin portals. UrShipper also reported 92 new business signups in two months. Read the full multi-carrier case study. The figures are project-recorded or client-reported, not independently audited or a guarantee for another carrier mix.
Custom multi-carrier software fits a shipping product, not a simple label need.
An established aggregator or shipping platform should win when it covers the required transactions and commercial model.
A fit01Rates, booking, documents, tracking, exceptions, customer operations, or billing form a core product workflow.
02An aggregator or shipping platform cannot support a material carrier, lane, account, customer, commercial, or operations requirement.
03The business can provide carrier contracts, approved access, representative shipments, live operators, and migration ownership.
Not a fit01The requirement is standard label generation and tracking supported by an established shipping product.
02Carrier accounts, contracts, lanes, service rules, or production credentials cannot be confirmed during discovery.
03The plan assumes every carrier behaves the same or promises savings before quoted, booked, adjusted, and invoiced charges can be reconciled.
The right route depends on transaction coverage and operating cost, not the number of logos on a provider page. Test required services, lanes, account rates, documents, tracking detail, voids, pickup, returns, adjustments, support, and data portability.
Aggregator vs direct carrier layer
| Aggregator-first | Direct or hybrid custom layer |
|---|
| Best fit | Common parcel services and a normalised integration path | Contracted services, proprietary rules, freight, or deeper operational control |
| Delivery | Faster initial coverage where features match | More work per carrier, with staged certification and release |
| Operations | Provider owns much connector maintenance | Your team owns versions, incidents, tests, and carrier change |
| Commercial model | Provider fees, margins, limits, and support terms | Fixed build plus carrier, infrastructure, and support cost |
| Main risk | Feature, economics, or data-portability limits | Underestimating carrier-specific behavior and maintenance |
Scope
What belongs in a production multi-carrier release
01Carrier contract adapters
Define a stable internal contract for addresses, parcels, freight, services, rates, surcharges, dates, bookings, labels, documents, pickups, voids, tracking, and errors. Preserve raw provider identifiers and responses needed for support while protecting credentials and sensitive data.
02Rate and service decision
Compare only services actually available for the shipment and account. Apply approved lane, promise, parcel, product, customer, margin, cutoff, pickup, and exclusion rules. Record the candidates, rule version, selected offer, currency, and expiry.
03Booking, document, and tracking state
Carry the selected rate into an idempotent booking, generate approved labels or customs documents, retain void and reprint history, and normalise carrier events without discarding the source code, time, location, and uncertainty.
04Merchant, staff, and admin operations
Give customers shipment creation and visibility, staff an owned exception queue, and administrators controlled carrier accounts, markups, tiers, limits, and reports. Separate tenants and roles across search, export, notifications, and support tools.
05Billing, monitoring, and recovery
Distinguish quoted, booked, manifested, adjusted, invoiced, and paid amounts. Monitor carrier latency, failures, duplicates, webhooks, stale tracking, documents, queues, and cost; provide replay, correction, reconciliation, rollback, and incident runbooks.
How it works
From carrier contract to operated shipment path
- Phase 1
01Bound carriers and shipment promise
Define customers, lanes, parcels or freight, services, contracts, accounts, rules, documents, systems, exceptions, volume, support, and acceptance measures.
- Phase 2
02Prove each connection
Test representative rate, booking, label, void, pickup, tracking, exception, international, timeout, duplicate, correction, and billing cases per carrier path.
- Phase 3
03Build the orchestration layer
Deliver normalised contracts, customer and operator workflows, commercial controls, documents, tracking, exceptions, monitoring, reconciliation, recovery, and tests.
- Phase 4
04Migrate and expand safely
Reauthorise accounts, reconcile customer and shipment records, release by carrier or cohort, monitor live transactions, and add scope only after the core path holds.
Risk
Failure modes the rate demo misses
- Quote and booking diverge
- Retain service and offer identifiers, expiry, currency, parcel inputs, rule version, and provider response. Revalidate when a required field or shipment fact changes.
- Retries create shipments
- Use idempotency, correlation, current-state checks, provider lookups, safe retry rules, and an operator queue for uncertain outcomes.
- Tracking loses carrier meaning
- Keep raw events beside the normalised state, handle out-of-order and duplicate updates, and expose stale or incomplete tracking.
- Carrier changes break production
- Assign owners for credentials, versions, certification, deprecations, contracts, test fixtures, incidents, fallback, and customer communication.
Scope and price
A focused multi-carrier release starts at $45,000.
Start with a bounded carrier and lane mix, the core rate-to-label path, tracking, operator exceptions, monitoring, tests, and ownership.
This is an indicative starting point, not a quote or savings guarantee. Scope is fixed after contracts, access, transactions, exceptions, volumes, commercial rules, and acceptance are tested.
Starting investment
Starts at $45,000
A focused release usually takes 10 to 16 weeks. Direct carriers, freight, EDI, international documents, returns, billing, portals, or migration add work.
Each carrier has acceptance evidence
The release matrix covers agreed rates, bookings, labels, voids, tracking, errors, retries, and support paths for the carrier scope.
Migration is an operating project
Live accounts, credentials, shipments, authorisations, reconciliation, cutover, rollback, and customer support receive named owners.
Related logistics delivery services