Shipping and couriers
Lockers and pickup points on one map and an accessible list, courier prices compared before every AWB, labels stored with the shipment, and a public API for all of it.
Couriers
Connect Sameday, Cargus, DPD, FAN Courier and GLS in Settings → Couriers. Brivio only creates AWBs with your own courier account: a courier that is not connected never produces a placeholder number. The sender is always your company — the primary location's address and phone, or the registered address.
Lockers and pickup points
The pickup point picker shows every easybox, locker, partner shop and courier office Brivio knows about. The list is refreshed every day from each courier.
- Search by locality, 6-digit postcode or street, or use Near me (your browser asks for permission first).
- Filters: courier, card payment, open 24/7. When the parcel is cash on delivery, only points that accept cash are shown; when the weight is known, only points that can take it.
- The list is the control. It is a radio group: Tab moves into it, the arrow keys move between points, Space chooses. Each point states whether it accepts cash on delivery — both ways, so "no badge" never means "accepts cash".
- The map sits next to the list on wide screens and behind Show map on phones. Choosing a point on either updates both. The map is served from Brivio's own tile archive (OpenStreetMap data); when it is not configured, the list works alone.
The same picker appears in three places:
- Online store checkout — after the buyer chooses a courier, they can pick Collect from a point instead of home delivery. The choice is saved on the order.
- Order → Shipping in the app — the buyer's point is pre-selected; you can change it or switch to home delivery.
- Invoice → AWB for marketplace orders — the locker the buyer chose on eMAG or your WooCommerce store is pre-selected when Brivio knows it.
Before every AWB Brivio checks the point again: it must still be active, belong to the courier you chose, accept cash when there is cash to collect, and fit the parcel's weight. A point that fails any check is refused with the reason, and no AWB is bought.
Compare prices before the AWB
Compare courier prices asks every connected courier at the same time and lists price, service and delivery time side by side. The cheapest courier tariff is marked. A price Brivio calculated itself (when a courier does not quote) is labelled estimated price and is never marked cheapest. Couriers that did not answer are listed under the comparison. Choose a row and Create AWB.
Labels and tracking
The AWB label is stored with the shipment, so Download label works even when the courier is slow or unavailable. Tracking asks the courier for the latest events and merges them with those it pushed to Brivio. Cancel AWB cancels it at the courier first; couriers that do not allow cancelling through their API have to be cancelled in the courier's own account.
Own fleet vs courier over time
Delivery routes → Fleet vs courier (/routes/analytics) adds up the last 30 or 90 days of completed routes: what they cost with your own vans against what the connected couriers would have charged for the same stops.
- Marginal cost counts only what each route added — fuel, the driver's hours, tolls and wear per km. Full cost also spreads depreciation or leasing and insurance per day; use it when deciding whether to keep a van.
- The figures come from the snapshot saved when a route is marked completed. Later price or cost changes do not rewrite past routes, and a route that was never completed is not counted — with no completed routes the page is empty.
- Tiles show both totals, the saving (with its sign), how many routes the fleet or the courier won, the possible saving from sending a few stops by courier, CO₂ and the stop count from which the fleet becomes cheaper.
- Estimated data is flagged: the share of fleet cost that did not come from receipts or contracts, and the routes that could not be compared because courier quotes were missing (those are left out of the totals).
- The routes where a courier would have been cheaper are listed with the largest difference first, each linking to the route.
Public API
With an API key that has the shipping:read scope (and shipping:write to create or cancel AWBs):
| Method | Path | What it does |
|---|---|---|
| GET | /v1/shipping-points | Search points: near=lat,lng, city, postal_code or q, plus courier, cod, card, open_24_7, weight_kg |
| POST | /v1/shipments/quote | Compare every connected courier; creates nothing |
| POST | /v1/shipments | Create an AWB — requires an Idempotency-Key |
| GET | /v1/shipments · /v1/shipments/{id} | List and read shipments |
| GET | /v1/shipments/{id}/label | The label (PDF; format=zpl for thermal printers) |
| GET | /v1/shipments/{id}/tracking | Fresh tracking from the courier |
| POST | /v1/shipments/{id}/cancel | Cancel the AWB at the courier |
The TypeScript and PHP SDKs (client.shippingPoints, client.shipments; searchShippingPoints(), quoteShipment(), createShipment()…), the CLI (brivio shipping-points search, brivio shipments quote|create|label|track|cancel) and the MCP server (brivio_search_shipping_points, brivio_quote_shipment, brivio_create_shipment …) offer the same operations. Creating or cancelling an AWB through the MCP server needs your explicit confirmation.