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
- Klicken Sie in der Sidebar auf API-Keys
- Klicken Sie auf Neuer API-Key
- 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
- Sicherheit – 2FA und IP-Allowlist einrichten
- Erste Schritte – zurück zur Übersicht