API-Zugang

Neben dem automatischen Empfang über Einkaufsnetzwerke (cXML-Webhook) können Sie Bestellungen auch direkt per API an Orderport senden. Das ist nützlich, wenn Sie eigene Systeme anbinden möchten.

API-Key erstellen

  1. Klicken Sie in der Sidebar auf API-Keys
  2. Klicken Sie auf Neuer API-Key
  3. Vergeben Sie einen Namen (z. B. "ERP Integration" oder "Test")

Nach dem Erstellen wird der API-Key einmalig im Klartext angezeigt. Er hat das Format:

ot_live_a1b2c3d4e5f6...

Wichtig: Kopieren und speichern Sie den Key sofort! Er wird danach nur noch als gekürzte Version angezeigt und kann nicht erneut abgerufen werden.

API-Key widerrufen

Klicken Sie auf Widerrufen neben einem Key, um ihn dauerhaft zu deaktivieren. Widerrufene Keys können nicht reaktiviert werden. Erstellen Sie bei Bedarf einen neuen Key.

Bestellung per API senden

Senden Sie Ihre Bestellung als HTTP POST an den generischen Inbound-Endpunkt:

POST https://orderport.app/api/v1/inbound
Authorization: Bearer ot_live_a1b2c3d4e5f6...
Content-Type: application/xml
X-Pipeline-Id: 42

<cXML>
  ...Ihr Bestelldokument...
</cXML>

Header

Header Pflicht Beschreibung
Authorization Ja Bearer {api_key}
Content-Type Ja Muss application/xml oder text/xml enthalten
X-Pipeline-Id Nein ID der Ziel-Pipeline. Wenn nicht angegeben, erkennt Orderport die Pipeline automatisch

Antwort bei Erfolg

{
  "message_id": 123,
  "status": "queued",
  "pipeline_id": 42
}

HTTP-Status: 202 Accepted

Duplikat erkannt

Wenn eine neue Bestellung mit derselben Bestell-ID bereits existiert:

HTTP/1.1 409 Conflict

{
  "message_id": 42,
  "status": "duplicate",
  "pipeline_id": 42
}

Fehlerfälle

HTTP-Status Bedeutung
401 Ungültiger oder fehlender API-Key
406 Ungültiger Content-Type (kein XML)
409 Duplikat – Bestellung mit dieser ID wurde bereits empfangen
413 Payload zu groß (max. 5 MB)
422 Leeres Dokument oder keine passende Pipeline gefunden

Bestellungsstatus abfragen

Fragen Sie den Verarbeitungsstatus einer Bestellung per GET ab:

GET https://orderport.app/api/v1/messages/123
Authorization: Bearer ot_live_a1b2c3d4e5f6...

Antwort

{
  "message_id": 123,
  "status": "delivered",
  "pipeline_id": 42,
  "received_at": "2026-03-07T10:30:00Z",
  "transformed_at": "2026-03-07T10:30:01Z",
  "delivered_at": "2026-03-07T10:30:02Z",
  "transport_logs": [
    {
      "transport": "HTTP POST",
      "status": "success",
      "http_status": 200,
      "attempted_at": "2026-03-07T10:30:02Z"
    }
  ]
}

Unterschied: cXML-Webhook vs. JSON-Webhook vs. API

Eigenschaft cXML-Webhook JSON-Webhook API-Inbound
URL /api/v1/cxml/{token} /api/v1/webhook/{token} /api/v1/inbound
Auth SharedSecret im XML Bearer Token / HMAC API-Key
Gedacht für Ariba, Coupa, SAP Shopware, Shopify, WooCommerce Eigene Integrationen
Antwort cXML (XML) JSON JSON
Pipeline über URL-Token über URL-Token Per Header oder Auto-Detection

Mehr zum JSON-Webhook-Endpunkt finden Sie im Artikel JSON-Webhooks.

Rate Limits

API-Anfragen sind auf 1.000 Anfragen pro Minute pro API-Key begrenzt. Der Inbound-Endpunkt ist auf 100 Anfragen pro Minute begrenzt.

Bei Überschreitung erhalten Sie HTTP-Status 429 Too Many Requests.

Nächste Schritte