API surface. Shippers book across the network through REST rates and shipments. Members and the operator manage member listing, catalogs, interline agreements, ledgers, settlements and service levels over GraphQL Interface.
A network is a platform where many logistics service providers (LSPs) offer capacity, and many shippers buy it. Each member is an independent business with its own services, tariffs and routes. The network adds what no single member has: reach across members, multi-leg journeys that hand off between them, one API for shippers, and settlement between all parties. Regional courier alliances, postal unions, freight marketplaces, air cargo consortia and last-mile collectives all have this shape. Network mode reuses almost everything:

1. Carrier accounts

A member is an account with type: "carrier" (chapter 19 §1). Its people sign in through the member’s own identity provider, and its systems use the member’s own API keys. Everything a member creates is scoped to its account by the Shipping-Account header, or by the token’s account.
Endpoints are those of chapter 19, plus:

What a member defines

Using its own credentials, a carrier account authors, publishes and versions exactly the same objects a Carrier-mode implementer does, through the GraphQL Interface (GraphQL Interface): A published catalog becomes the member’s entry in the network’s GET /v1/carriers, with shipment_config_schema generated from its options (chapter 14 §3). Shippers see one catalog of all members, and members never write per-network adapters.

Member roles: first, middle and last mile

Most real journeys are relays. A courier collects in the origin city, a freight forwarder or airline moves the goods between countries, and a local courier or fleet delivers. A network member declares which segments it serves, and where:
A customs_broker member offers brokerage as a service at a gateway, attached to the middle-mile segment that crosses the border. The network plans composed journeys by chaining compatible segments: a first-mile member whose delivery facility is a middle-mile member’s handoff point, then a middle-mile lane ending at a facility where a last-mile member accepts freight. Interline agreements (§3) make each junction bookable. A member can serve several segments, so a courier can be first mile in one city and last mile in another. Shippers see one composed rate (§2) whose composition.segments[] carry the segment type, and one parent shipment whose journey (chapter 16 §4) lists every segment and member.

2. Rating and booking across members

A shipper calls POST /v1/rates against the network as usual. The network answers from two kinds of candidates:
  1. Single-member rates. A member whose coverage spans origin to destination prices the whole shipment from its own rate sheets.
  2. Composed rates. The network plans multi-member journeys through interline agreements (§3), prices each segment from the responsible member’s rate sheet, adds the agreed handoff fees and the network’s own pricing rules, and returns one rate.
  • rate.composition is present only on composed rates. The service carrier is network, and its code is generated per route pattern.
  • Single-member rates look exactly like any other carrier’s rate, with service.carrier = "net_…".
  • Shippers can restrict rating with carrier_configs keys as usual, or set carrier_configs.network.compose: false to see only single-member rates.
When the shipper buys a composed rate, the network:
  1. Creates the shipper’s parent shipment, with tracking.journey holding every segment.
  2. Creates one child shipment per segment in the responsible member’s account, as an injection (chapter 18) with injection.channel: "carrier", injection.partner = the previous member (or the network for segment 1), and label_mode per the interline agreement.
  3. Issues the shipper one label, normally the first member’s, or a network label when the agreement says label: "network".

3. Interline agreements

An interline agreement lets one member hand shipments to another at agreed points, on agreed terms.
Endpoints:
The handoff itself runs on chapter 18: the upstream member’s route run unloads at the handoff facility, an ASN announces the shipments to the downstream member, and its receive scans transfer custody. Each step appends events to the parent shipment’s tracker, so the shipper sees one continuous timeline.

4. Network operator controls

The operator account (type: "platform") governs the network through objects it already has:
  • Fees: pricing_rules with type: "markup", scoped by conditions.carriers or by composed services.
  • Listing and quality: member carrier.status, plus network-wide service_level targets. These are optional objects (sla_) with { carrier, metric: "on_time_delivery" | "first_attempt_success" | "scan_compliance", target, window_days }. The operator reads achieved values at serviceLevel (GraphQL Interface query), computed from trackers.
  • Shared facilities: facilities owned by the operator account, usable as handoff points by any member.
  • Disputes: disputeSettlement (GraphQL Interface mutation) (§5).

5. Settlement

Every money movement between parties is a ledger entry, and entries roll up into periodic settlements.
  • type is shipper_charge (shipper to network), segment_charge (network to member), handoff_fee, network_fee, adjustment (reweighs at receipt, chapter 18 §6), claim (loss or damage, charged to the member liable at the time), or refund.
  • status is pending (the shipment is not yet delivered, or the period is open), posted, or reversed.
  • Settlements (stl_) aggregate entries per account and period: { account, period: { from, to }, currency, totals: { debits, credits, net }, status: "open" | "closed" | "invoiced" | "paid" | "disputed", statement: "file_..." }.
Closing a settlement issues an invoice with kind: "settlement" (chapter 28 §1). Members are paid through payouts on the network’s payments connection (chapter 28 §6), so the settlement records who owes whom and the payments interface moves the money.

6. Events

account.listed, account.paused, account.delisted, interline_agreement.proposed, .signed, .activated, .suspended, .terminated, ledger_entry.posted, settlement.closed, settlement.disputed, service_level.breached. Members receive the events for their own child shipments. Shippers receive events for their parent shipments.