Anmelden
Produkte
ZPL-VorschauBarcode-GeneratorBild → ZPLZPL-SpickzettelEtiketten-DesignerVorlagen-Galerie
Entwickler
API-SchnellstartAPI-ReferenzMCP-ServerMassenerzeugungWebhooksSDKs & BeispieleLimitsOn-Premise
Lösungen
Logistik und VersandE-CommerceERP & WMSProduktionEinzelhandelGesundheitswesen und LaborAlle Lösungen
Tools
ZPL-DiagnosezentrumZPL-DebuggerGrößen- und DPI-AnalyseDPI-KonverterBarcode-PlatzrechnerVersandetiketten-AnalyseSchriftprüfungAusrichtungs-DebuggerKalibrierungsassistentDruckerkompatibilitätsprüfungBarcode-LesbarkeitsprüfungDruckersprachen-ErkennungThermodrucker-TestpaketZPL-ToolsEPL-ToolsTSPL-ToolsCPCL-ToolsAlle WerkzeugeRatgeberPreise
Sprache
EnglishTürkçeDeutsch
StartseiteRatgeberUPS-ZPL-Etiketten: anfordern, prüfen, fixen
Ratgeber › UPS-ZPL-Etiketten: anfordern, prüfen, fixen

UPS-ZPL-Etiketten: anfordern, prüfen, fixen

Veröffentlicht:

Ergebnis

Die UPS Shipping API liefert ein Thermoetikett als base64-ZPL, eines pro Paket, wenn die Anfrage danach verlangt. Verglichen mit FedEx ist die Anfrage kleiner — ein Bildformat-Code und eine Stockgröße — und es gibt überhaupt kein Auflösungsfeld, was eine wichtige Frage (für welche Dichte sind die Punkte geschrieben?) von der Anfrage in die Datei verschiebt. Diese Seite listet die Felder, den Pfad zum Etikett in der Antwort und die Prüfungen vor dem Druck. Die Regeln für jedes Carrier-Etikett stehen in mit Carrier-ZPL-Etiketten arbeiten; das FedEx-Gegenstück ist FedEx-ZPL-Etiketten.

Die Feldnamen und Werte unten wurden am 2026-09-14 aus der OpenAPI-Spezifikation der UPS Shipping API gelesen, die UPS auf GitHub veröffentlicht. Sie ändern sich zwischen API-Versionen; prüfen Sie sie gegen die aktuelle Spezifikation, bevor Sie sich darauf verlassen. Labelixa ist nicht mit UPS verbunden — dies ist eine Workflow-Beschreibung, keine Integration.

Die Anfragefelder, die das ZPL formen

Der Aufruf ist POST /shipments/{version}/ship — gegen wwwcie.ups.com für das Customer Integration Environment und onlinetools.ups.com für die Produktion. Das Etikett steuert ShipmentRequest.Shipment.LabelSpecification:

"LabelSpecification": {
  "LabelImageFormat": { "Code": "ZPL" },
  "LabelStockSize": { "Height": "6", "Width": "4" }
}

Es gibt kein Auflösungsfeld. Die Spezifikation sagt nicht, für welche Dichte das ZPL geschrieben ist — also keine annehmen, sondern aus der Datei lesen (unten).

Wo das Etikett in der Antwort steckt

Der Pfad ist ShipmentResponse.ShipmentResults.PackageResults[] — ein Eintrag pro Paket, jeder mit seiner TrackingNumber und einem ShippingLabel-Objekt, dessen GraphicImage das base64-Etikett ist und dessen ImageFormat.Code das tatsächlich gelieferte Format bestätigt. Die Spezifikation merkt an, dass Package-Results ab Version v2403 immer ein Array sind, während ältere Versionen bei einem einzelnen Paket ein nacktes Objekt liefern — ein klassischer Grund für „geht mit einem Paket, bricht mit zwei“.

jq -r '.ShipmentResponse.ShipmentResults.PackageResults[0].ShippingLabel.GraphicImage'    response.json | base64 -d > label.zpl
head -c 40 label.zpl          # ^XA erwartet

Zwei weitere Felder zählen für Thermoausgabe. InternationalSignatureGraphicImage wird für Sendungen außerhalb der USA in EPL2, ZPL und SPL geliefert — ein Bild pro Sendung, im ersten Package-Result — und ist ein zweites zu druckendes Etikett, kein Anhang zum Ignorieren. HTMLImage kommt nur bei GIF und PNG; sein Fehlen bei ZPL ist normal. Die Spezifikation merkt außerdem an, dass bei mehrteiligen COD-Sendungen das Etikett des ersten Pakets immer GIF ist, egal welches Format angefordert wurde — pro Paket ImageFormat.Code lesen statt annehmen.

Dichte finden, dann prüfen

Weil die Anfrage keine Auflösung trägt, ist die einzige verlässliche Quelle die Datei. Der Größen- und DPI-Analyzer liest die deklarierte Breite und Länge aus dem ZPL und meldet die Dichte, bei der daraus ein 4×6- (oder 4×8-)Etikett wird; deklariert die Datei sie nicht, sagt er das, statt zu raten. Dann in dieser Dichte und mit diesem Stock prüfen:

curl -X POST "https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0"      --data-binary @label.zpl --output label.png

Lassen Sie die dekodierten Bytes exakt so, wie sie sind. Haben Sie einen anderen Zeichensatz als den Standard angefordert, folgen die Etikettenbytes dieser Kodierung; die Datei als UTF-8 zu dekodieren und neu zu kodieren kann jedes Umlaut- oder türkische Zeichen ersetzen oder verwerfen, und die Vorschau zeigt genau diesen Schaden. Geben Sie die rohen Bytes an die Vorschau und unverändert an den Drucker.

Prüfungen, die sich vor dem Druck lohnen

curl -X POST "https://api.labelixa.com/v1/diagnostics?dpmm=8&w=4&h=6"      --data-binary @label.zpl

Dasselbe Gate läuft aus Shell oder CI als npx labelixa validate label.zpl und beendet sich bei Befunden der Stufe „error“ mit einem Code ungleich null.

Fehler, die nach UPS aussehen, es aber nicht sind

Häufig gestellte Fragen

Wie fordere ich ein ZPL-Etikett bei der UPS Shipping API an?

LabelSpecification.LabelImageFormat.Code auf ZPL setzen und LabelStockSize mit Width 4 und Height 6 (oder 8) in ganzen Zoll angeben. Die Spezifikation merkt an, dass das Bild nur bis 4×6 skaliert, auch wenn 4×8 angefordert wird.

Wo steckt das ZPL in der UPS-Antwort?

ShipmentResponse.ShipmentResults.PackageResults[].ShippingLabel.GraphicImage, base64-kodiert, ein Eintrag pro Paket; ImageFormat.Code bestätigt das Format. Ab v2403 sind die Package-Results immer ein Array.

Sagt die UPS-Anfrage, für welche dpi das ZPL geschrieben ist?

Nein — die Spezifikation hat kein Auflösungsfeld. Die Dichte mit dem Größen- und DPI-Analyzer aus der Datei lesen, dann in dieser Dichte prüfen und drucken.

Verwandte Ratgeber

Was ist ZPL?

ZPL ist die Sprache der Zebra-Thermodrucker. Wie die Befehle zu lesen sind, wie ein Etikett aufgebaut wird und welche Fehler am häufigsten vorkommen.

Welche Barcode-Symbologie soll ich wählen?

EAN-13, Code 128 oder QR? Praktische Regeln für die Wahl des Barcodes nach Daten, Platz und Lesegerät.

ZPL-Datei ohne Drucker in der Vorschau ansehen

Eine ZPL-Datei ist nur Text — das Etikett existiert erst, wenn etwas es zeichnet. Drei praktische Wege, ein ZPL-Etikett vor dem Drucker zu sehen.

Eigenen ZPL-Code testen →