Postman-Collection
Shipping Lesen

pixiGetInvoicePackage

Liefert die Versandpakete einer Rechnung (Labels, Tracking-IDs, Gewicht, Paketmaße), ausgewählt über Rechnungsnummer, Rechnungs-ID oder Paket-ID.

Liest die zu einer Rechnung gespeicherten Pakete aus pixi.InvoicePackage, zusammen mit dem Code der Paketmaße, der externen Auftragsnummer und der Rechnungsnummer.

Parameterbehandlung und Prüfungen (jede fehlgeschlagene Prüfung liefert eine einzelne Status/Message-Zeile mit Status = Error):

  1. Ein leeres InvoiceNumber wird als NULL behandelt. Mindestens einer der Parameter InvoiceNumber, InvoiceId, PackageId muss angegeben werden.
  2. InvoiceNumber wird in eine Rechnungs-ID aufgelöst (erster Treffer auf InvoiceNr).
  3. Ist InvoiceId oder die aufgelöste ID gesetzt, muss mindestens eine davon in Invoices existieren.
  4. Ist PackageId angegeben, muss das Paket existieren.
  5. Verweisen InvoiceId und InvoiceNumber auf unterschiedliche Rechnungen, schlägt der Aufruf fehl.
  6. Sind Paket und Rechnung angegeben, muss das Paket zu dieser Rechnung gehören.

Auswahl

  • Die maßgebliche Rechnung ist InvoiceId, andernfalls die aus InvoiceNumber ermittelte Rechnung.
  • Geliefert werden alle Pakete, deren Paket-ID PackageId entspricht oder deren Rechnungs-ID der maßgeblichen Rechnung entspricht. Ist eine Rechnung angegeben, werden alle ihre Pakete geliefert, auch wenn zusätzlich PackageId angegeben ist. Ist nur PackageId angegeben, wird nur dieses Paket geliefert.
  • InvoiceNr und OrderNrExternal sind in jeder Zeile gleich. Sie stammen von der Rechnung (direkt angegeben oder über das Paket), die mit Auftragspositionen verknüpft ist: OrderNrExternal kommt vom Auftrag mit der höchsten Order_Id der Rechnungspositionen.
  • Eine Sortierung ist nicht festgelegt.

Wird kein Paket gefunden, wird eine Info-Zeile geliefert.

Hinweise

  • Alle Lesezugriffe verwenden NOLOCK, daher können nicht festgeschriebene Daten geliefert werden.
  • Die Antwortstruktur unterscheidet sich: Bei Fehlern oder ohne Treffer wird statt der Paketzeilen eine Status/Message-Zeile geliefert. Auf eine Spalte Status prüfen.
  • Eine nicht existierende Rechnungsnummer wird ohne InvoiceId nicht als Fehler gemeldet. Ohne PackageId liefert der Aufruf dann die Info-Zeile. Mit PackageId liefert er nur dieses Paket.
  • Existiert InvoiceId nicht, ist aber InvoiceNumber gültig, lautet der Fehler "Two different invoices" statt "No invoice found".
  • Eine Rechnung wird für InvoiceNr/OrderNrExternal ignoriert, wenn sie keine Rechnungspositionen hat oder eine ihrer Rechnungspositionen keinen Verweis auf eine Auftragsposition besitzt. Dann sind beide Spalten NULL, die Pakete werden aber trotzdem geliefert.
  • Der Rückgabewert ist 1 bei Fehlern und sonst 0. Er ist nicht Teil der SOAP-Ergebniszeilen.

Parameter

Parameter Typ Standardwert Beschreibung
InvoiceNumber
varchar(20)
string
NULL

Rechnungsnummer (InvoiceNr) der Rechnung, deren Pakete abgefragt werden. Ein Leerstring wird als NULL behandelt.

Beispiel: RE2024-001234

InvoiceId
int NULL

Interne Rechnungs-ID (InvoiceKey). Hat Vorrang vor der aus InvoiceNumber ermittelten ID. Sind beide angegeben, müssen sie auf dieselbe Rechnung verweisen.

Beispiel: 98765

PackageId
int NULL

ID eines Pakets in pixi.InvoicePackage. Ist zusätzlich eine Rechnung angegeben, muss das Paket zu ihr gehören.

Beispiel: 4321

Antwort

Result-Set 1 · Bei Erfolg, wenn mindestens ein Paket gefunden wird

Eine Zeile pro gefundenem Rechnungspaket.

Spalte Typ Beschreibung
PackageId int

ID des Pakets.

InvoiceId
Kann leer sein
int

ID der Rechnung, zu der das Paket gehört.

GrossWeight
Kann leer sein
money
decimal

Bruttogewicht des Pakets.

ShippingLabelUrl
Kann leer sein
varchar(8000)
string

URL des Versandlabels.

TrackingId
Kann leer sein
varchar(512)
string

Tracking-ID der Sendung.

TimesLabelPrinted
Kann leer sein
tinyint
int

Anzahl, wie oft das Label gedruckt wurde.

ReturnLabelUrl
Kann leer sein
varchar(8000)
string

URL des Retourenlabels.

ReturnTrackingId
Kann leer sein
varchar(512)
string

Tracking-ID der Retourensendung.

PackageDimensionId
Kann leer sein
int

ID der Paketmaße.

ExternalShipmentId
Kann leer sein
varchar(512)
string

Sendungs-ID beim Versanddienstleister.

MessageFromProvider
Kann leer sein
varchar(max)
string

Vom Versanddienstleister zurückgegebene Meldung.

MessageFromProviderDetail
Kann leer sein
varchar(max)
string

Detailmeldung des Versanddienstleisters.

OrderNrExternal
Kann leer sein
varchar(50)
string

Externe Auftragsnummer des über die Rechnungspositionen verknüpften Auftrags mit der höchsten Order_Id. In allen Zeilen gleich.

InvoiceNr
Kann leer sein
varchar(20)
string

Rechnungsnummer der ermittelten Rechnung. In allen Zeilen gleich. NULL, wenn die Rechnung keine Positionen oder eine Position ohne Verweis auf eine Auftragsposition hat.

PackageDimensionCode
Kann leer sein
nvarchar(100)
string

Code der Paketmaße aus pixi.PackageDimension.

Result-Set 2 · Wenn kein Paket zu den Parametern gefunden wird

Info-Zeile statt Paketzeilen.

Spalte Typ Beschreibung
Status varchar(4)
string

Immer Info.

Message varchar(41)
string

Infotext.

Result-Set 3 · Wenn eine Parameterprüfung fehlschlägt

Fehlerzeile. Die Prozedur bricht danach ab.

Spalte Typ Beschreibung
Status varchar(5)
string

Immer Error.

Message
Kann leer sein
varchar
string

Fehlertext.

Fehlermeldungen

Status Meldung Ursache
Error At least one of the parameters needs to be provided `InvoiceNumber` (oder leer), `InvoiceId` und `PackageId` fehlen alle. Mindestens einen davon angeben.
Error No invoice found with invoice id: {InvoiceId} or invoice number: {InvoiceNumber} `InvoiceId` wurde angegeben, existiert aber nicht, und `InvoiceNumber` verweist auf keine existierende Rechnung.
Error No invoice package found with package Id: {PackageId} Die angegebene `PackageId` existiert nicht in `pixi.InvoicePackage`.
Error Two different invoices found with provided parameters InvoiceId: {InvoiceId} and InvoiceNumber: {InvoiceNumber} `InvoiceId` und `InvoiceNumber` verweisen auf unterschiedliche Rechnungen. Das tritt auch auf, wenn `InvoiceId` nicht existiert, `InvoiceNumber` aber gültig ist. Nur einen der Parameter oder übereinstimmende Werte übergeben.
Error PackageId: {PackageId} does not belong to invoice with InvoiceId: {InvoiceId} or InvoiceNumber: {InvoiceNumber} Das angegebene Paket gehört zu einer anderen Rechnung als der über `InvoiceId`/`InvoiceNumber` angegebenen.
Info No records found with provided parameters Die Prüfungen waren erfolgreich, aber es wurde kein Paket gefunden, z. B. weil die Rechnung keine Pakete hat oder die Rechnungsnummer nicht existiert.

Beispiele

POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
  <SOAP-ENV:Body>
    <ns1:pixiGetInvoicePackage>
      <!-- <InvoiceNumber>RE2024-001234</InvoiceNumber> -->
      <!-- <InvoiceId>98765</InvoiceId> -->
      <!-- <PackageId>4321</PackageId> -->
    </ns1:pixiGetInvoicePackage>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Lesen InvoicePackage · Lesen Invlines · Lesen Orderlines · Lesen OrderHeader · Lesen PackageDimension · Lesen
SQL-Objekt:
dbo.pipiGetInvoicePackage
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben