Postman-Collection
Invoices Lesen

pixiGetInvoiceLinesExtended

Liefert Rechnungsköpfe zusammen mit ihren Rechnungspositionen in einer flachen Ergebnismenge, gefiltert nach Rechnung, Shop, Auftrag, Kunde, Zahlungsart und Datum.

Fasst Rechnungskopf- und Rechnungspositionsdaten in einem Aufruf zusammen. Jede Ergebniszeile ist eine Rechnungsposition; alle Kopf-, Rechnungsadress- und Zahlungsfelder werden auf jeder Position derselben Rechnung wiederholt.

Normalisierung der Parameter

  • Leere Zeichenketten werden bei allen Text- und Datumsfiltern als NULL behandelt; OrderNR = 0 gilt als NULL.
  • RowCount ist standardmäßig 1000; NULL, 0 oder negative Werte werden ebenfalls durch 1000 ersetzt.

Schritt 1 – Kandidaten-Rechnungen (dynamisches SQL über sp_executesql) Bis zu RowCount * 3 Rechnungen werden aus Invoices (verknüpft mit Customers, Left Join auf InvLines) nach Rechnungsdatum sortiert ausgewählt. Nur gesetzte Filter werden ergänzt:

  • InvoiceNr: exakte Rechnungsnummer.
  • ShopID: Customers.CustomerOf.
  • PaymentType: Invoices.Payment.
  • InvDateFrom / InvDateTo: Rechnungsdatum echt größer / echt kleiner als der Wert.
  • UpdateDateFrom / UpdateDateTo: echt größer / kleiner als der Wert, auf InvLines.UpdateDate (Standard) oder auf Invoices.UpdateDate, wenn ConsiderInvoiceUpdates = 1. Datensätze mit UpdateDate NULL werden nie gefunden.
  • OrderNR: die Rechnung hat mindestens eine Position, die mit einer Auftragsposition dieses Auftrags verknüpft ist.
  • OrderNRExternal: wird über OrderHeader.OrderNrExternal in eine interne Auftragsnummer aufgelöst und dann wie OrderNR gefiltert.
  • OnlyUnpaidInvoices = 1: bezahlter Betrag weicht vom Gesamtbetrag ab, und es existiert kein offener CustomerAccount-Eintrag zur Rechnung mit DoNotRefund = 1 (ohne Bankzeilen-, DTAUS- oder manuelle Buchungsreferenz).
  • CustomerNrExternal: Customers.CustomerNrExternal.

Schritt 2 – Köpfe und Positionen

  • Die ersten RowCount Kandidaten (sortiert nach Rechnungsdatum und Rechnungsschlüssel) werden als Köpfe geladen. Nur Rechnungen mit passender Währung, einem in Payments vorhandenen Zahlungscode und einer Rechnungsadresse in Addresses bleiben erhalten.
  • Positionen werden aus der View PV_Invlines gelesen, die auch Pseudo-Positionen enthält: ItemKey = -2 Versandkosten, -1 Gutscheine, -3 manuelle Rechnungen ohne Positionen. Lieferantenpreis und Lieferantennummer stammen aus SupplierPrice_History, sofern vorhanden.
  • Bei AddCCPPayID = 1 werden die ccpPayID-Werte aller Aufträge der Rechnung kommagetrennt in CcpPayID zusammengefasst.

Schritt 3 – abschließender Filter und Ausgabe

  • Pseudo-Positionen (ItemKey -1, -2, -3) werden nur bei IncludeSpecialInvLines = 1 geliefert.
  • Status filtert auf den Auftragspositionsstatus der Position (AUS, falls kein Status vorhanden).
  • IsReplacementOnly = 1 liefert nur Positionen, deren Auftragsposition den Status MIN hat oder einen OrderHistory-Eintrag mit Status MIN besitzt (Ersatzlieferungen).
  • Es werden höchstens RowCount Zeilen (Positionen) geliefert, sortiert nach Rechnungsdatum und Rechnungsschlüssel.
  • UpdateDate in der Ausgabe ist standardmäßig das Änderungs-/Anlagedatum der Position (Fallback auf das Datum der Rechnung), bei ConsiderInvoiceUpdates = 1 das Änderungs-/Anlagedatum der Rechnung.

Hinweise

  • Alle Lesezugriffe verwenden NOLOCK; nicht festgeschriebene Daten können erscheinen.
  • RowCount begrenzt Rechnungen und die finalen Positionszeilen. Da das abschließende TOP Positionen zählt, können Positionen der letzten Rechnung abgeschnitten werden. Für vollständige Rechnungen per InvoiceNr abfragen oder einen deutlich höheren RowCount wählen.
  • Datumsgrenzen sind exklusiv (> und <), nicht inklusiv.
  • Mit dem Standard ConsiderInvoiceUpdates = 0 wirken die Änderungsdatumsfilter auf Rechnungspositionen; Rechnungen ohne Positionen (z. B. manuelle Rechnungen) werden dabei nie gefunden.
  • Kann OrderNRExternal in OrderHeader nicht aufgelöst werden, ist das Ergebnis leer. Teilen sich mehrere Aufträge die externe Nummer, wird nur einer davon verwendet.
  • Positionen mit ItemKey NULL (Rechnungspositionen ohne Auftragsposition oder Artikel) fallen durch die Prüfung NOT IN (-1,-2,-3) heraus, sofern nicht IncludeSpecialInvLines = 1.
  • Bei IsReplacementOnly = 1 werden Pseudo-Positionen nie geliefert, da sie keine Auftragsposition haben.
  • CcpPayID wird auf 50 Zeichen gekürzt.
  • Currency ist immer die Konstante EUR; die tatsächliche Auftragswährung steht in OrderCurrency.
  • OrderDate liefert 1900-01-01, wenn die Position keinen Auftrag hat (leere Zeichenkette als Datum). EANUPC ist 0 bei Positionen ohne Artikel.
  • OrderNr erscheint in jeder Zeile zweimal.
  • Paid ist nur 1, wenn der bezahlte Betrag exakt dem Rechnungsbetrag entspricht.

Parameter

Parameter Typ Standardwert Beschreibung
InvoiceNr
varchar(20)
string
NULL

Exakte Rechnungsnummer. Leere Zeichenkette bedeutet kein Filter.

Beispiel: RE2024001234

ShopID
varchar(3)
string
NULL

Shop-ID des Kunden (Customers.CustomerOf).

Beispiel: SHP

PaymentType
char(1)
string
NULL

Zahlungscode der Rechnung (Invoices.Payment).

Beispiel: R

OrderNR
int NULL

Interne Auftragsnummer; liefert Rechnungen mit mindestens einer Position dieses Auftrags. 0 bedeutet kein Filter.

Beispiel: 123456

OrderNRExternal
varchar(50)
string
NULL

Externe Auftragsnummer; wird über OrderHeader in die interne Auftragsnummer aufgelöst.

Beispiel: WEB-100045

InvDateFrom
datetime
dateTime
NULL

Liefert Rechnungen mit Rechnungsdatum echt nach diesem Wert.

Beispiel: 2024-01-01T00:00:00

InvDateTo
datetime
dateTime
NULL

Liefert Rechnungen mit Rechnungsdatum echt vor diesem Wert.

Beispiel: 2024-02-01T00:00:00

UpdateDateFrom
datetime
dateTime
NULL

Änderungsdatum echt nach diesem Wert, auf Rechnungspositionen oder auf der Rechnung je nach ConsiderInvoiceUpdates.

Beispiel: 2024-01-15T08:00:00

UpdateDateTo
datetime
dateTime
NULL

Änderungsdatum echt vor diesem Wert, auf Rechnungspositionen oder auf der Rechnung je nach ConsiderInvoiceUpdates.

Beispiel: 2024-01-16T08:00:00

RowCount
int 1000

Maximale Anzahl Rechnungen und gelieferter Zeilen. NULL, 0 oder negative Werte werden durch 1000 ersetzt.

Beispiel: 500

AddCCPPayID
bit
boolean
0

Bei 1 wird CcpPayID mit den kommagetrennten Zahlungsanbieter-IDs der Aufträge der Rechnung gefüllt.

Erlaubte Werte

  • 0 – `CcpPayID` bleibt leer
  • 1 – `CcpPayID` füllen

Beispiel: 1

OnlyUnpaidInvoices
bit
boolean
0

Bei 1 nur Rechnungen, deren bezahlter Betrag vom Gesamtbetrag abweicht und die keinen offenen Kundenkontoeintrag mit DoNotRefund haben.

Erlaubte Werte

  • 0 – Alle Rechnungen
  • 1 – Nur unbezahlte Rechnungen

Beispiel: 0

IncludeSpecialInvLines
bit
boolean
0

Bei 1 werden auch Pseudo-Positionen für Versandkosten (ItemKey -2), Gutscheine (-1) und manuelle Rechnungen ohne Positionen (-3) geliefert.

Erlaubte Werte

  • 0 – Nur echte Artikelpositionen
  • 1 – Pseudo-Positionen einschließen

Beispiel: 1

Status
varchar(3)
string
NULL

Auftragspositionsstatus der Position; Positionen ohne Status gelten als AUS.

Beispiel: AUS

CustomerNrExternal
varchar(60)
string
NULL

Externe Kundennummer (Customers.CustomerNrExternal).

Beispiel: K-778899

IsReplacementOnly
bit
boolean
0

Bei 1 nur Positionen, deren Auftragsposition den Status MIN hat oder hatte (Ersatzlieferung).

Erlaubte Werte

  • 0 – Alle Positionen
  • 1 – Nur Ersatzpositionen

Beispiel: 0

ConsiderInvoiceUpdates
bit
boolean
0

Legt fest, welches Änderungsdatum die Änderungsdatumsfilter und die Ausgabespalte UpdateDate verwenden.

Erlaubte Werte

  • 0 – Änderungsdatum der Rechnungsposition verwenden
  • 1 – Änderungsdatum der Rechnung verwenden

Beispiel: 0

Antwort

Result-Set 1 · Immer (ggf. leer)

Eine Zeile pro Rechnungsposition mit wiederholten Rechnungskopf-, Adress- und Zahlungsdaten, sortiert nach Rechnungsdatum und Rechnungsschlüssel.

Spalte Typ Beschreibung
InvoiceNr
Kann leer sein
varchar(20)
string

Rechnungsnummer

InvoiceDate
Kann leer sein
datetime
dateTime

Rechnungsdatum

ShopID
Kann leer sein
varchar(3)
string

Shop des Kunden

PaymentAddressId
Kann leer sein
int

Schlüssel der Rechnungsadresse

ShipmentAddressId
Kann leer sein
int

Schlüssel der Lieferadresse

CustKey
Kann leer sein
int

Kundenschlüssel

Total
Kann leer sein
money
decimal

Rechnungsbetrag (brutto)

VATSum
Kann leer sein
money
decimal

Gesamte MwSt. inkl. Versand- und Rücksendekosten

VATHigh
Kann leer sein
money
decimal

MwSt. zum Normalsatz inkl. Versand- und Rücksendekosten

VATLow
Kann leer sein
money
decimal

MwSt. zum ermäßigten Satz inkl. Versand- und Rücksendekosten

TotalNoVAT
Kann leer sein
money
decimal

Netto-Rechnungsbetrag

ShipCost
Kann leer sein
money
decimal

Versandkosten (brutto)

ShipCostNoVAT
Kann leer sein
numeric(17,2)
decimal

Versandkosten (netto)

Discount_Invoice
Kann leer sein
money
decimal

Gutscheinsumme; brutto bei B2C, sonst netto

Discount_InvLines
Kann leer sein
money
decimal

Summe der Positionsrabatte

PaymentCode
Kann leer sein
varchar(1)
string

Zahlungscode

PaymentText
Kann leer sein
varchar(120)
string

Text der Zahlungsart, ersatzweise der Code

PaymentDate
Kann leer sein
datetime
dateTime

Zahlungsdatum

Paid
Kann leer sein
bit
boolean

1, wenn bezahlter Betrag dem Gesamtbetrag entspricht

TotalToPay
Kann leer sein
money
decimal

Rechnungsbetrag

PaidSum
Kann leer sein
money
decimal

Bezahlter Betrag

CcCardType
Kann leer sein
varchar(2)
string

Kreditkartentyp aus der Rechnungsadresse

CcCardNr
Kann leer sein
varchar(25)
string

Kreditkartennummer

CcCardName
Kann leer sein
varchar(60)
string

Karteninhaber

CcCardExp
Kann leer sein
varchar(4)
string

Ablaufdatum der Karte

Account
Kann leer sein
varchar(10)
string

Kontonummer

Blz
Kann leer sein
varchar(8)
string

Bankleitzahl

BankName
Kann leer sein
varchar(50)
string

Name der Bank

AccountName
Kann leer sein
varchar(27)
string

Kontoinhaber

TrackingID
Kann leer sein
varchar(8000)
string

Sendungsverfolgungsnummer der Rechnung

ShipDate
Kann leer sein
datetime
dateTime

Scan-Out-Datum

UpdateDate
Kann leer sein
datetime
dateTime

Änderungs-/Anlagedatum von Position oder Rechnung je nach ConsiderInvoiceUpdates

ReminderLevel
Kann leer sein
int

Mahnstufe

OrderNr
Kann leer sein
int

Interne Auftragsnummer der Position

OrderNrExternal
Kann leer sein
varchar(50)
string

Externe Auftragsnummer

Note
Kann leer sein
varchar(255)
string

Rechnungsnotiz

ShipVendor
Kann leer sein
varchar(3)
string

Versanddienstleister

CcpPayID varchar(1024)
string

Kommagetrennte Zahlungsanbieter-IDs (nur bei AddCCPPayID = 1, max. 50 Zeichen), sonst leer

Currency
Kann leer sein
varchar(3)
string

Immer EUR

OrderCurrency
Kann leer sein
varchar(3)
string

Währungscode der Rechnung

TotalToPay_OrderCurr
Kann leer sein
money
decimal

Rechnungsbetrag

ReturnReason
Kann leer sein
varchar(100)
string

Rücksendegrund

InvoiceKey
Kann leer sein
int

Rechnungsschlüssel

RefToInvoiceNr
Kann leer sein
varchar(20)
string

Referenzierte Rechnungsnummer (z. B. bei Gutschriften)

RefToInvoiceKey
Kann leer sein
int

Referenzierter Rechnungsschlüssel

Anrede
Kann leer sein
varchar(60)
string

Anrede (Rechnungsadresse)

Name
Kann leer sein
varchar(121)
string

Name

Name2
Kann leer sein
varchar(60)
string

Namenszeile 2

FirstName
Kann leer sein
varchar(60)
string

Vorname

LastName
Kann leer sein
varchar(60)
string

Nachname

CareOf
Kann leer sein
varchar(60)
string

c/o

Address
Kann leer sein
varchar(110)
string

Adresszeile

Street
Kann leer sein
varchar(100)
string

Straße

HouseNr
Kann leer sein
varchar(12)
string

Hausnummer

City
Kann leer sein
varchar(50)
string

Ort

State
Kann leer sein
varchar(3)
string

Bundesland/Region

ZIP
Kann leer sein
varchar(10)
string

Postleitzahl

Country
Kann leer sein
varchar(3)
string

Ländercode

CustomerNrExternal
Kann leer sein
varchar(60)
string

Externe Kundennummer aus der Rechnungsadresse

Orderlinekey
Kann leer sein
int

Auftragspositionsschlüssel (-1/-2/-3 bei Pseudo-Positionen)

EANUPC string

EAN/UPC des Artikels, 0 falls keiner

ItemName
Kann leer sein
varchar(120)
string

Artikelname

SpecialNote
Kann leer sein
varchar(8000)
string

Sondernotiz der Auftragsposition

OrderDate datetime
dateTime

Auftragsdatum (bzw. Anlagedatum); 1900-01-01 falls keiner

OrderQty
Kann leer sein
int

Bestellte Menge

ItemQty
Kann leer sein
int

Berechnete Menge

ItemPrice_Brutto
Kann leer sein
money
decimal

Bruttopreis

ItemPrice_Netto
Kann leer sein
numeric(17,4)
decimal

Nettopreis

ItemPrice_VAT
Kann leer sein
numeric(17,4)
decimal

MwSt.-Betrag der Position

SupplPrice
Kann leer sein
money
decimal

Lieferantenpreis (aus Preishistorie, falls vorhanden)

ItemNrSuppl
Kann leer sein
string

Lieferanten-Artikelnummer

ItemNrInt
Kann leer sein
string

Interne Artikelnummer

SerialNr
Kann leer sein
varchar(50)
string

Seriennummer

OrderNr
Kann leer sein
int

Interne Auftragsnummer (Duplikat der vorherigen Spalte)

STATUS
Kann leer sein
varchar(3)
string

Auftragspositionsstatus, AUS falls keiner

FullPrice
Kann leer sein
money
decimal

Preis vor Rabatt, ersatzweise Bruttopreis

DiscountValue
Kann leer sein
money
decimal

Rabattbetrag, 0 falls keiner

DiscountPerc
Kann leer sein
numeric(6,2)
decimal

Rabatt in Prozent, 0 falls keiner

DF_Type
Kann leer sein
varchar(1)
string

Direct-Fulfillment-Typ, 0 falls keiner

DFShipDate
Kann leer sein
datetime
dateTime

Versanddatum Direct Fulfillment

DFShipmentTrackingID
Kann leer sein
varchar(100)
string

Sendungsnummer Direct Fulfillment

SubShopLogo
Kann leer sein
string

Subshop-Logo des Auftrags

SubShopNAme string

Subshop-Name, leer falls keiner

Referrer string

Referrer des Auftrags, leer falls keiner

Type varchar(1)
string

R bei negativem Betrag (Gutschrift), sonst I (Rechnung)

ReturnCostsAmount
Kann leer sein
money
decimal

Rücksendekosten der Rechnung

InvLineKey
Kann leer sein
int

Rechnungspositionsschlüssel, NULL bei Pseudo-Positionen

SupplNr
Kann leer sein
varchar(4)
string

Lieferantennummer (aus Preishistorie, falls vorhanden)

BatchNumber
Kann leer sein
string

Charge der Auftragsposition

BestBeforeDate
Kann leer sein
dateTime

Mindesthaltbarkeitsdatum der Auftragsposition

IBAN
Kann leer sein
varchar(35)
string

IBAN

BIC
Kann leer sein
varchar(11)
string

BIC

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:pixiGetInvoiceLinesExtended>
      <!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
      <!-- <ShopID>SHP</ShopID> -->
      <!-- <PaymentType>R</PaymentType> -->
      <!-- <OrderNR>123456</OrderNR> -->
      <!-- <OrderNRExternal>WEB-100045</OrderNRExternal> -->
      <!-- <InvDateFrom>2024-01-01T00:00:00</InvDateFrom> -->
      <!-- <InvDateTo>2024-02-01T00:00:00</InvDateTo> -->
      <!-- <UpdateDateFrom>2024-01-15T08:00:00</UpdateDateFrom> -->
      <!-- <UpdateDateTo>2024-01-16T08:00:00</UpdateDateTo> -->
      <!-- <RowCount>500</RowCount> -->
      <!-- <AddCCPPayID>1</AddCCPPayID> -->
      <!-- <OnlyUnpaidInvoices>0</OnlyUnpaidInvoices> -->
      <!-- <IncludeSpecialInvLines>1</IncludeSpecialInvLines> -->
      <!-- <Status>AUS</Status> -->
      <!-- <CustomerNrExternal>K-778899</CustomerNrExternal> -->
      <!-- <IsReplacementOnly>0</IsReplacementOnly> -->
      <!-- <ConsiderInvoiceUpdates>0</ConsiderInvoiceUpdates> -->
    </ns1:pixiGetInvoiceLinesExtended>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

OrderHeader · Lesen Invoices · Lesen Customers · Lesen InvLines · Lesen Orderlines · Lesen CustomerAccount · Lesen SupplierPrice_History · Lesen Currency · Lesen Payments · Lesen Addresses · Lesen items · Lesen OrderHistory · Lesen Suppliers · Lesen TontrArten · Lesen
SQL-Objekt:
dbo.pipiGetInvoiceLinesExtended
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben