Carrier · Telematics & FleetProduktion

Carrier Integration API

Carriers and integrators send normalised fleet data to the inbound front door. Each connection has its own unguessable token (in the URL path) and its own HMAC signing secret. The payload follows the canonical envelope below; unknown keys are ignored and malformed entries are dropped defensively. Logged-in carriers manage connections (create, rotate, test) self-service under the Fleet → Integrations area.

Umgebung
https://api.betakom.de

Ressourcentypen

Position

A live truck position. Sent under "positions".

FieldTypeRequiredDescription
externalUnitIdstringrequiredYour stable id for the vehicle.
atstring (ISO 8601)requiredTimestamp of the fix.
lat / lngnumberrequiredWGS-84 coordinates.
speedKmh / headingDegnumberoptionalSpeed and heading.
isMoving / ignitionOnbooleanoptionalMotion / ignition state.
driverNamestringoptionalDriver display name.

Plan

A dispatch plan with ordered legs. Sent under "plans".

FieldTypeRequiredDescription
externalUnitIdstringrequiredVehicle id the plan is assigned to.
externalPlanIdstringrequiredYour stable plan/tour id (idempotency key).
statusenumoptionalplanned | in_progress | completed | cancelled (default planned).
legs[]arrayoptional[{ seq, kind: pickup|delivery|reposition|rest, place{lat,lng,postalCode,country,name}, windowStart, windowEnd, loadState: loaded|empty, goodsDescription, weightKg }].
sourceFetchedAtstring (ISO 8601)optionalWhen you read this plan from your system.

Availability

A declared free-capacity offer. Sent under "availability".

FieldTypeRequiredDescription
availableFromstring (ISO 8601)requiredStart of the availability window.
availableTostring (ISO 8601)optionalEnd of the window.
externalUnitId / externalOfferIdstringoptionalVehicle id / offer id (offer id is the idempotency key).
originobjectoptional{ lat, lng, postalCode, country, radiusKm }.
preferredDestinationobjectoptional{ region, country, lat, lng }.
bodyType / capacityKgstring / numberoptionalVehicle body type and free capacity.
POST/api/v1/carriers-module/my-company/integrations/inbound/{connector}/{token}

Push fleet data to a carrier integration connection

The inbound front door. The {token} in the path scopes the request to one carrier connection; the body is HMAC-signed with that connection's secret. The message is landed idempotently and processed asynchronously by the ingestion worker.

Pfadparameter

FieldTypeRequiredDescription
connectorstringrequiredConnector id, e.g. "inbound-webhook".
tokenstringrequiredYour connection's inbound token (issued when the connection is created).

Header

FieldTypeRequiredDescription
x-betakom-signaturestringrequiredHMAC-SHA256 of the raw body, keyed with the connection's inbound secret.
Request
{
  "positions": [
    { "externalUnitId": "TRK-1", "at": "2026-07-01T10:00:00Z", "lat": 48.13, "lng": 11.57,
      "speedKmh": 80, "headingDeg": 270, "isMoving": true, "ignitionOn": true, "driverName": "M. Muster" }
  ],
  "plans": [
    { "externalUnitId": "TRK-1", "externalPlanId": "TOUR-42", "status": "planned",
      "legs": [
        { "seq": 0, "kind": "pickup",
          "place": { "lat": 48.1, "lng": 11.5, "postalCode": "80331", "country": "DE", "name": "Muenchen" },
          "windowStart": "2026-07-02T08:00:00Z", "windowEnd": "2026-07-02T12:00:00Z",
          "loadState": "empty", "goodsDescription": "Paletten", "weightKg": 12000 }
      ] }
  ],
  "availability": [
    { "externalUnitId": "TRK-2", "externalOfferId": "OFFER-7",
      "availableFrom": "2026-07-03T00:00:00Z", "availableTo": "2026-07-05T00:00:00Z",
      "origin": { "lat": 50.1, "lng": 8.6, "postalCode": "60311", "country": "DE", "radiusKm": 50 },
      "preferredDestination": { "region": "Ruhr", "country": "DE" },
      "bodyType": "tautliner", "capacityKg": 24000 }
  ]
}
  • Returns 202 Accepted on success — including idempotent duplicates — and the message is processed asynchronously.
  • All top-level keys (positions, plans, availability) are optional; send any subset.
  • Mapping is defensive: malformed entries are dropped rather than failing the whole batch.
  • Built-in connectors: webfleet, geotab, email-csv, inbound-webhook, carrier-rest.