M17 · Interfaces · Merchant API

Merchant API

Dispatch last-mile orders with the network's capacity — the right vehicle for each shipment, no fleet of your own. API, webhooks, and a panel.

dispatches:createwebhook per statepublic tracking

Right vehicle, per shipment

dispatches:create

Post pickup, drop, and parcel data; the node assigns moto, car, or truck — no fleet of your own.

Live tracking, no app

tracking:public

Your customer follows the shipment from a public link — no download, no account.

Proof of delivery

pod:photo · pod:signature · pod:pin

Close each shipment with a photo, signature, or PIN — confirmed back over webhook.

M17 · Console

The dispatch console

Build a dispatch, watch the registry route it to the city node, and hand your customer a public tracking link. Sample data — connect your panel before going live.

POST /merchant/dispatches
Parcel class
standardfragilerefrigeratedoversized

We record class, size, and weight only — never what's inside.

// Sample form — connect your store / POS to the panel before publishing. Cash on delivery is offered only where the receiving node supports it.

201 Created
dispatch.created 126 ms
{
  "dispatch_id": "DSP-7042",
  "status": "routing",
  "matched_node": "sf-bike-courier",
  "vehicle": "moto",
  "parcel": { "size": "small_box", "weight_kg": 3.2, "class": "standard" },
  "tracking_url": "track.technorides.io/d/7042",
  "events_url": "/merchant/dispatches/DSP-7042/events"
}

Public tracking link

Your customer opens it in a browser — live map, ETA, and driver, no download.

Proof of delivery

Photo — captured at the door
Signature — drawn by the recipient
PIN — shared with the customer up front

M17 · Shipment states

A webhook per transition

Every dispatch moves through extended shipment states — and each transition fires a webhook, so your store stays in sync without polling.

  1. 1
    CreatePOST /merchant/dispatches with pickup, drop, and parcel data.
  2. 2
    Route — the registry routes to the city node, which assigns moto, car, or truck.
  3. 3
    Track — your customer follows the public link; you receive a webhook per state.
  4. 4
    Deliver — proof of delivery (photo, signature, or PIN) closes the shipment.

// The registry that routes across city nodes is part of the network plane — roadmap, not a live cross-network service yet.

LIVEShipment states · DSP-70421 dispatch
15:41:07dispatch.delivered · DSP-7042pod:photo
15:38:51dispatch.arrived · DSP-7042sf-bike-courier
15:22:14dispatch.in_transit · DSP-7042sf-bike-courier
15:19:02dispatch.picked_up · DSP-7042sf-bike-courier
15:11:48dispatch.assigned · drv_courier_91sf-bike-courier
15:11:20dispatch.routing · DSP-7042registry
15:11:18dispatch.created · DSP-7042store

M17 · Volume

Batch import and store integration

Push a day of orders at once, or create dispatches automatically the moment a sale is confirmed.

Batch import

Dispatch in volume

Upload a CSV of dispatches — one row per shipment — and the panel routes each to its city node.

RowDropClassWeightStatus
0011840 Valencia Ststandard3.2 kgQueued
002600 Guerrero Stfragile1.1 kgQueued
003refrigerated5.4 kgNo window

// Sample import — validation runs in the panel; connect your store before publishing.

E-commerce · POS

Create on sale confirmation

Wire your checkout to the API: when a sale is confirmed, a dispatch is created automatically and the customer gets a tracking link.

Your store · order.paid
POST/merchant/dispatches
sourceorder_a91f
drop1840 Valencia St
parcel.classstandard
parcel.weight_kg3.2
Auto-fire
Dispatch
201 Created 118 ms
{
  "dispatch_id": "DSP-7043",
  "status": "routing",
  "tracking_url": "track…/d/7043"
}
Webhook per shipment stateAvailable
Cash on deliveryWhere node supports it
Cross-network routingRoadmap

M17 · Privacy by design

Parcel contents are never recorded

The Merchant API moves what you ship without ever knowing what's inside. We record only the data needed to route and carry it — class, size, and weight. Nothing else.

Parcel classRecorded
Size & weightRecorded
Parcel contentsNever recorded
Public tracking linkShipment status only

// The public link shows position, ETA, and state — not contents, and not your customer's account.

Interfaces · Merchant API

Dispatch with the network's capacity.

The right vehicle for each shipment, live tracking with no app, and a webhook per state — no fleet of your own.

Get accessRead the reference