Karls Versand-API für ERP und WMS
REST-API ab dem Enterprise-Plan: Bestellungen lesen, Live-Tarife vergleichen und Labels programmatisch erstellen, direkt aus deinem ERP oder WMS. Mit dry_run validierst du eine Bestellung vollständig, ohne echtes Porto zu kaufen; der Idempotency-Key verhindert Doppel-Labels bei Retries.
Was die Karl-API für dein System übernimmt
-
Trockenlauf vor jedem Label (dry_run)
Mit dry_run validiert dein System eine Bestellung vollständig (Adresse, Paketmaße, Zoll-Pflichtdaten), ohne echtes Porto zu kaufen und ohne ein Label zu erzeugen. Fehler fängst du vor dem Commit ab, statt fehlerhafte Labels wieder zu stornieren.
-
Idempotency-Key gegen Doppel-Labels
Jeder Label-Aufruf trägt einen Idempotency-Key. Läuft ein Retry nach einem Timeout, bekommst du dasselbe Ergebnis zurück, kein zweites Label, keine zweite Gebühr. Ein neuer Key erzeugt bewusst ein neues Label; ein Key ist an genau eine Bestellung gebunden.
-
Bestellungen lesen, Tarife vergleichen, Labels erstellen
Offene Bestellungen abrufen, Live-Tarife aller angebundenen Carrier inklusive Smart-Routing-Empfehlung vergleichen und Labels programmatisch erstellen, per REST/JSON mit Bearer-Token. Das erstellte Label landet automatisch im Shopify-Fulfillment, Tracking geht an den Kunden.
-
Sendungsstatus per Tracking, dokumentiert per openapi.json
Ein Aufruf mit der Tracking-Nummer liefert normalisierten Status und voraussichtliches Zustelldatum, ideal, um Bestellungen im WMS als unterwegs oder zugestellt zu markieren. Die komplette Schnittstelle liegt maschinenlesbar als openapi.json vor.
Was die Karl-API kann
| API-Funktion | Karl |
|---|---|
| REST/JSON-API mit Bearer-Token-Authentifizierung | Ja |
| dry_run: Bestellung vollständig validieren, ohne echtes Porto zu kaufen | Ja |
| Idempotency-Key: kein Doppel-Label bei Retries | Ja |
| Bestellungen auflisten und einzeln lesen | Ja |
| Live-Tarife aller angebundenen Carrier vergleichen, inkl. Smart-Routing-Empfehlung | Ja |
| Volumengewicht je Tarif-Option ausgewiesen | Ja |
| Labels programmatisch erstellen: automatisch im Shopify-Fulfillment hinterlegt | Ja |
| Silent-Druck über den Print-Companion oder Label-PDF (base64) selbst drucken | Ja |
| Sendungsstatus + voraussichtliches Zustelldatum per Tracking-Nummer | Ja |
| Standardpaket per API lesen und setzen | Ja |
| Maschinenlesbare openapi.json zur Client-Generierung | Ja |
Versand-API ist ein Enterprise-Feature und setzt einen mit Karl verbundenen Shopify-Shop voraus.
Häufige Fragen zur Karl-API
Was setzt die Karl-API voraus?
Die API ist ein Enterprise-Feature und setzt einen mit Karl verbundenen Shopify-Shop voraus. Sie liest deine Shopify-Bestellungen und schreibt das Fulfillment inklusive Tracking zurück, sie erweitert deinen Shop, sie ersetzt ihn nicht. Den API-Key erstellst du in Karl unter Einstellungen → API-Zugang.
Wie authentifiziere ich mich?
Jeder Request trägt den Header Authorization: Bearer <API-Key>. Der Key (karl_live_…) wird beim Erstellen genau einmal im Klartext angezeigt. Karl speichert nur einen Hash. Der Key gehört ausschließlich auf deinen Server, nie ins Frontend oder in öffentlichen Code.
Was macht dry_run genau?
dry_run validiert eine Bestellung vollständig (inklusive Adresse, Paketmaße und Zoll-Pflichtdaten), ohne echtes Porto zu kaufen und ohne ein Label zu erzeugen. So prüft dein System den Versand vorab und fängt Fehler ab, bevor Kosten entstehen.
Wie verhindert der Idempotency-Key Doppel-Labels?
Der Label-Endpoint verlangt einen Idempotency-Key pro Versuch. Sendest du nach einem Timeout denselben Key erneut, bekommst du das Ergebnis des ersten Versuchs zurück, kein zweites Label, keine zweite Gebühr. Ein neuer Key erzeugt bewusst ein neues Label; ein Key ist an genau eine Bestellung gebunden.
Kann ich programmatisch drucken?
Ja. Mit print: companion legt Karl das Label in die Druck-Queue, und der Print-Companion am Versand-PC druckt es ohne Dialog. Ohne Companion nutzt du print: none und bekommst das Label als PDF (base64) zurück, das du selbst druckst.
Gibt es eine maschinenlesbare Schnittstellenbeschreibung?
Ja. Die komplette API liegt als openapi.json vor. Damit generierst du Clients und Typen direkt aus der Spezifikation, statt sie von Hand nachzubauen.
Mehr entdecken
Versandetiketten in Shopify drucken
Scan-to-Label in unter 5 Sekunden, Sammeldruck und Auto-Print.
Ansehen →Alle Karl-Features
Zuschlagschutz, Smart Routing über 7 Carrier, Pricing und mehr.
Ansehen →DHL Shopify Integration
DHL Paket, Warenpost und DHL Express an deinen Shop anbinden.
Ansehen →Karl im Vergleich
Sechs Fragen vor der App-Wahl und Karls Antworten.
Ansehen →Versand aus Österreich
Absenderland-Erkennung und Österreichische Post.
Ansehen →Lass uns reden.
Karl ohne Grundgebühr starten
Karl ist im Shopify App Store verfügbar: Start hat keine Grundgebühr, du zahlst nur je Label (Versand im Inland). Jeder Tarif startet mit einer Testphase: 14 Tage kostenlos inklusive Labelerstellung. Der Carrier rechnet weiterhin direkt mit dir ab.
Im Shopify App Store installieren →