Skip to content

REST API und Webhooks

Basis: https://your-domain.example/api/v1. Nur HTTPS im externen Betrieb. Authorization: Bearer <token>; API-Tokens entstehen unter Schnittstellen. Die API ist zustandslos und akzeptiert keine Browsersitzung als API-Authentifizierung.

Methode Pfad Berechtigung Inhalt
GET /machines?page=1 machines:read Eigene Maschinen, 50 je Seite, Gesamtzahl
POST /machines machines:write Eigene Maschine erstellen
PUT /machines/{id} machines:write Eigenen Maschinendatensatz vollständig ersetzen
GET /leads?page=1 leads:read Anfragen mit der eigenen Firma als Käufer oder Lieferant
PATCH /leads/{id} leads:write Vertriebsstatus eigener eingehender Anfrage ändern
GET /documents?machine={id} documents:read Metadaten eigener Dokumente
GET /documents/{id}/original documents:read Eigenes aktuelles Original herunterladen

Beispiel für einen Maschinen-Request:

{
  "model": "CNC-500",
  "category": "cnc",
  "name": {"de": "Bearbeitungszentrum", "en": "Machining center", "ja": "マシニングセンタ"},
  "description": {"de": "Beschreibung", "en": "Description", "ja": "説明"},
  "status": "draft",
  "process": "Milling",
  "materials": ["Steel", "Aluminium"],
  "voltage": 400,
  "frequency": 50,
  "powerKw": 15,
  "precisionMm": 0.005,
  "specs": {"Working range": "500 × 400 × 300 mm"},
  "media": []
}

Preiswerte werden in den Geschäftsobjekten als ganzzahlige kleinste Währungseinheit gespeichert: EUR-Cent und ganze JPY. Die Maschinen-API verwaltet Herstellerdaten. Händlerkonditionen werden im eigenen Angebotsbereich gepflegt.

curl --fail --header "Authorization: Bearer $MACHINEBRIDGE_TOKEN" \
  https://your-domain.example/api/v1/machines
{"status":"qualified"}

Gültige Vertriebsstatus: new, qualified, quoted, won, lost. Fremde Datensätze werden weder ausgeliefert noch bearbeitet. Token-Nutzer müssen weiter aktiv/verifiziert sein und zur Token-Firma gehören. Das API-Kontingent beträgt zunächst 120 Requests pro Minute und Token. HTTP-Fehler liefern ein JSON-Objekt mit error.

Ausgehende Webhooks

Ereignisse: inquiry.created, inquiry.updated, machine.updated. Jede Firma verwaltet ihre eigenen Endpunkte. Ziele müssen öffentliche HTTPS-Adressen sein. Private Netze, Weiterleitungen und im URL eingebettete Zugangsdaten sind gesperrt.

{
  "id": "unique-event-id",
  "type": "inquiry.created",
  "occurred_at": "2026-10-18T09:00:00+00:00",
  "data": {"id": 123, "subject": "New production line", "machine": "CNC-500"}
}

Header:

X-Machinebridge-Event: unique-event-id
X-Machinebridge-Signature: t=unix_timestamp,v1=hex_hmac

Der HMAC ist HMAC-SHA256(timestamp + "." + unveränderter HTTP-Body, webhook_secret). Empfänger prüfen Signatur, Zeitfenster und Ereignis-ID und verarbeiten wiederholte Zustellungen idempotent. Die Plattform wertet nur 2xx als Erfolg und wiederholt fehlgeschlagene Zustellungen über Messenger. Nach ausgeschöpften Versuchen liegt der Auftrag im Fehlertransport; der Betreiber kann ihn prüfen und erneut zustellen.

Der Schlüssel wird nur bei Erstellung gezeigt. Gespeichert wird er mittels libsodium verschlüsselt; APP_SECRET gehört deshalb in die getrennte Geheimnissicherung.