pixiGetInvoice
Liefert Rechnungsköpfe mit Summen, MwSt., Zahlungsstatus, Bankdaten und verknüpften Auftragsnummern, gefiltert nach Rechnungsnummer, Shop, Datum, Auftrag oder Zahlstatus, mit schlüsselbasiertem Paging.
Wählt Rechnungen aus Invoices (verknüpft mit Customers) aus und liefert je Rechnung eine Zeile mit Beträgen, Zahlungs- und Versanddaten.
Normalisierung der Parameter
- Leere Zeichenketten in
InvoiceNr,ShopID,PaymentType,OrderNRExternalsowieOrderNR = 0gelten als kein Filter. RowCountNULL oder 0 wird zu 1000.- Datumsparameter vor dem 01.01.1990 werden ignoriert.
Filter (mit UND verknüpft, nur wenn gesetzt)
StartKey> 0: nur Rechnungen mitInvoiceKeygrößer alsStartKey.InvoiceNr: exakte Rechnungsnummer.InvDateFrom/InvDateTo: Rechnungsdatum,ShipDateFrom/ShipDateTo: Scan-Out-(Versand-)Datum,UpdateDateFrom/UpdateDateTo: letzte Änderung. Alle Datumsvergleiche sind exklusiv (>und<).ShopID: Shop des Kunden (Customers.CustomerOF).PaymentType: Zahlungsart-Code der Rechnung.OrderNR/OrderNRExternal: Die Rechnung muss mindestens eine Rechnungsposition zu einer Auftragsposition mit dieser Auftragsnummer bzw. externen Auftragsnummer enthalten.OnlyUnpaidInvoices= 1: Bezahlter Betrag weicht von der gerundeten Summe ab, und es existiert kein offener Kundenkontoeintrag (ohne Bankzeile, DTAUS oder manuelle Buchung) mitDoNotRefund.
Paging
Es werden die ersten RowCount passenden Rechnungen nach InvoiceKey ausgewählt. Für die nächste Seite wird der höchste InvoiceKey des vorigen Ergebnisses als StartKey übergeben.
Ergebnis
OrderNr/OrderNrExternalsind die höchsten Auftragsnummern der über die Rechnungspositionen verknüpften Aufträge (bei gesetztem Auftragsfilter nur passende Auftragspositionen).CcpPayIDwird nur beiAddCCPPayID= 1 gefüllt und enthält eine kommagetrennte Liste der Payment-IDs der verknüpften Aufträge.PaymentDateist das jüngste Datum aus dem Kundenkonto-Ausgleich.Paidist 1, wenn der bezahlte Betrag der auf 2 Stellen gerundeten Summe entspricht.Discount_Invoiceist beiB2C-Rechnungen die Brutto-, sonst die Netto-Gutscheinsumme.VATHigh/VATLow/VATSumenthalten auch die MwSt. auf Versand- und Rücksendekosten.
Sortierung nach InvoiceDate.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; nicht festgeschriebene Daten können erscheinen. - Die Hauptselektion wird als dynamisches SQL (
sp_executesql) mit Parametern ausgeführt. TotalRowsist die Zeilenzahl des Selektionsschritts, der durchRowCountbegrenzt ist; es ist nicht die Gesamtzahl der passenden Rechnungen.- Ein negativer
StartKeyliefert keine Zeilen. - Datumsfilter sind exklusiv:
InvDateTo = 2024-03-31schließt Rechnungen ab genau diesem Zeitpunkt aus. - Die Abschlussabfrage verwendet Inner Joins auf
CustomerAccount,Payments,Addresses,pixi.Currencyundpixi.ExchRate. Rechnungen ohne passenden Datensatz dort werden nicht geliefert (aber inTotalRowsgezählt). Eine Rechnung mit mehreren Kundenkontoeinträgen oder verknüpften Aufträgen mit unterschiedlichenccpPayID-Werten kann mehrfach erscheinen. - Temporäre Tabellen haben eindeutige Indizes auf dem Rechnungsschlüssel; bei mehreren Kundenkontoeinträgen oder mehrdeutigen Auftragsdaten kann der Aufruf mit einem Duplicate-Key-Fehler von SQL Server abbrechen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
InvoiceNr
|
varchar(20) string |
NULL |
Exakte Rechnungsnummer. Leer = kein Filter. Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Shop-ID des Kunden ( Beispiel: |
PaymentType
|
char(1) string |
NULL |
Zahlungsart-Code der Rechnung ( Beispiel: |
OrderNR
|
int | NULL |
Nur Rechnungen mit Positionen dieser Auftragsnummer. 0 = kein Filter. Beispiel: |
OrderNRExternal
|
varchar(50) string |
NULL |
Nur Rechnungen mit Positionen dieser externen (Shop-)Auftragsnummer. Leer = kein Filter. Beispiel: |
InvDateFrom
|
datetime dateTime |
NULL |
Rechnungsdatum strikt nach diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
InvDateTo
|
datetime dateTime |
NULL |
Rechnungsdatum strikt vor diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
UpdateDateFrom
|
datetime dateTime |
NULL |
Letzte Änderung der Rechnung strikt nach diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
UpdateDateTo
|
datetime dateTime |
NULL |
Letzte Änderung der Rechnung strikt vor diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
RowCount
|
int | 1000 |
Maximale Anzahl ausgewählter Rechnungen (Seitengröße). NULL oder 0 = 1000. Beispiel: |
AddCCPPayID
|
bit boolean |
0 |
Bei 1 wird die Spalte Erlaubte Werte
Beispiel: |
OnlyUnpaidInvoices
|
bit boolean |
0 |
Bei 1 nur Rechnungen, deren bezahlter Betrag von der gerundeten Summe abweicht und die keinen offenen Kundenkontoeintrag mit Erlaubte Werte
Beispiel: |
StartKey
|
int | 0 |
Paging-Schlüssel: nur Rechnungen mit Beispiel: |
ShipDateFrom
|
datetime dateTime |
NULL |
Scan-Out-(Versand-)Datum strikt nach diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
ShipDateTo
|
datetime dateTime |
NULL |
Scan-Out-(Versand-)Datum strikt vor diesem Wert. Werte vor 01.01.1990 werden ignoriert. Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Eine Zeile je ausgewählter Rechnung (ggf. mehrere, siehe Hinweise), sortiert nach InvoiceDate.
| Spalte | Typ | Beschreibung |
|---|---|---|
TotalRows
Kann leer sein |
int |
Anzahl der in dieser Seite ausgewählten Rechnungen (begrenzt durch |
InvoiceNr
Kann leer sein |
varchar(20) string |
Rechnungsnummer. |
InvoiceDate
Kann leer sein |
datetime dateTime |
Rechnungsdatum. |
ShopID
Kann leer sein |
varchar(50) 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 |
decimal |
Rechnungssumme (brutto). |
VATSum
Kann leer sein |
decimal |
Gesamte MwSt. inkl. Versand- und Rücksendekosten. |
VATHigh
Kann leer sein |
decimal |
MwSt. zum vollen Satz inkl. Versand- und Rücksendekosten. |
VATLow
Kann leer sein |
decimal |
MwSt. zum ermäßigten Satz inkl. Versand- und Rücksendekosten. |
TotalNoVAT
Kann leer sein |
decimal |
Nettosumme. |
ShipCost
Kann leer sein |
decimal |
Versandkosten (brutto). |
ShipCostNoVAT
Kann leer sein |
numeric(17,2) decimal |
Versandkosten (netto). |
Discount_Invoice
Kann leer sein |
decimal |
Gutscheinsumme: brutto bei |
Discount_InvLines
Kann leer sein |
decimal |
Gesamtrabatt der Rechnungspositionen. |
PaymentCode
Kann leer sein |
char(1) string |
Zahlungsart-Code. |
PaymentText
Kann leer sein |
string |
Text der Zahlungsart, ersatzweise der Code. |
PaymentDate
Kann leer sein |
smalldatetime dateTime |
Jüngstes Datum des Kundenkonto-Ausgleichs. |
Paid
|
bit boolean |
1, wenn der bezahlte Betrag der auf 2 Stellen gerundeten Summe entspricht. |
TotalToPay
Kann leer sein |
decimal |
Zu zahlender Betrag (wie |
PaidSum
Kann leer sein |
decimal |
Bisher bezahlter Betrag. |
CcCardType
Kann leer sein |
string |
Kreditkartentyp aus der Rechnungsadresse. |
CcCardNr
Kann leer sein |
string |
Kreditkartennummer. |
CcCardName
Kann leer sein |
string |
Name des Karteninhabers. |
CcCardExp
Kann leer sein |
string |
Ablaufdatum der Karte. |
Account
Kann leer sein |
string |
Kontonummer. |
Blz
Kann leer sein |
string |
Bankleitzahl. |
BankName
Kann leer sein |
string |
Name der Bank. |
AccountName
Kann leer sein |
string |
Kontoinhaber. |
TrackingID
Kann leer sein |
string |
Sendungsverfolgungsnummer. |
ShipDate
Kann leer sein |
dateTime |
Scan-Out-(Versand-)Datum. |
UpdateDate
Kann leer sein |
dateTime |
Letzte Änderung der Rechnung. |
ReminderLevel
Kann leer sein |
int |
Mahnstufe. |
OrderNr
Kann leer sein |
int |
Höchste verknüpfte Auftragsnummer. |
OrderNrExternal
Kann leer sein |
varchar(50) string |
Höchste verknüpfte externe Auftragsnummer. |
Note
Kann leer sein |
string |
Notiz der Rechnung. |
ShipVendor
Kann leer sein |
string |
Versanddienstleister. |
CcpPayID
Kann leer sein |
varchar(1024) string |
Kommagetrennte Payment-IDs der verknüpften Aufträge; nur bei |
Currency
Kann leer sein |
string |
Währungscode. |
OrderCurrency
Kann leer sein |
string |
Währungscode (wie |
TotalToPay_OrderCurr
Kann leer sein |
decimal |
Rechnungssumme (wie |
ReturnReason
Kann leer sein |
string |
Rücksendegrund. |
InvoiceKey
|
int |
Interner Rechnungsschlüssel; höchster Wert dient als nächster |
RefToInvoiceNr
Kann leer sein |
string |
Referenzierte Rechnungsnummer (z. B. bei Gutschriften). |
RefToInvoiceKey
Kann leer sein |
int |
Referenzierter Rechnungsschlüssel. |
ReturnCostsAmount
Kann leer sein |
decimal |
Betrag der Rücksendekosten. |
CreateEmp
Kann leer sein |
string |
Mitarbeiter, der die Rechnung erstellt hat. |
ExchangeRate
Kann leer sein |
decimal |
Wechselkurs der Rechnung. |
ReturnTrackingId
Kann leer sein |
string |
Sendungsnummer der Rücksendung. |
ReturnTrackingIdHistory
Kann leer sein |
string |
Historie der Rücksende-Sendungsnummern. |
Beispielantwort
<SqlRowSet1>
<row>
<TotalRows>2</TotalRows>
<InvoiceNr>RE2024001234</InvoiceNr>
<InvoiceDate>2024-03-05T10:15:00</InvoiceDate>
<ShopID>SHP</ShopID>
<PaymentAddressId>55120</PaymentAddressId>
<ShipmentAddressId>55121</ShipmentAddressId>
<CustKey>30211</CustKey>
<Total>119.00</Total>
<VATSum>19.00</VATSum>
<VATHigh>19.00</VATHigh>
<VATLow>0.00</VATLow>
<TotalNoVAT>100.00</TotalNoVAT>
<ShipCost>4.95</ShipCost>
<ShipCostNoVAT>4.16</ShipCostNoVAT>
<Discount_Invoice>0.00</Discount_Invoice>
<Discount_InvLines>0.00</Discount_InvLines>
<PaymentCode>V</PaymentCode>
<PaymentText>Vorkasse</PaymentText>
<PaymentDate>2024-03-06T09:00:00</PaymentDate>
<Paid>true</Paid>
<TotalToPay>119.00</TotalToPay>
<PaidSum>119.00</PaidSum>
<TrackingID>00340434161234567890</TrackingID>
<ShipDate>2024-03-05T14:30:00</ShipDate>
<ReminderLevel>0</ReminderLevel>
<OrderNr>100523</OrderNr>
<OrderNrExternal>WEB-2024-55871</OrderNrExternal>
<ShipVendor>DHL</ShipVendor>
<Currency>EUR</Currency>
<OrderCurrency>EUR</OrderCurrency>
<TotalToPay_OrderCurr>119.00</TotalToPay_OrderCurr>
<InvoiceKey>884512</InvoiceKey>
<ReturnCostsAmount>0.00</ReturnCostsAmount>
<CreateEmp>PIXI</CreateEmp>
<ExchangeRate>1.000000</ExchangeRate>
</row>
</SqlRowSet1>
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:pixiGetInvoice>
<!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <OrderNR>100523</OrderNR> -->
<!-- <OrderNRExternal>WEB-2024-55871</OrderNRExternal> -->
<!-- <InvDateFrom>2024-03-01T00:00:00</InvDateFrom> -->
<!-- <InvDateTo>2024-04-01T00:00:00</InvDateTo> -->
<!-- <UpdateDateFrom>2024-03-15T08:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-03-16T08:00:00</UpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
<!-- <AddCCPPayID>1</AddCCPPayID> -->
<!-- <OnlyUnpaidInvoices>0</OnlyUnpaidInvoices> -->
<!-- <StartKey>0</StartKey> -->
<!-- <ShipDateFrom>2024-03-01T00:00:00</ShipDateFrom> -->
<!-- <ShipDateTo>2024-04-01T00:00:00</ShipDateTo> -->
</ns1:pixiGetInvoice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?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:pixiGetInvoice>
<!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>V</PaymentType> -->
<!-- <OrderNR>100523</OrderNR> -->
<!-- <OrderNRExternal>WEB-2024-55871</OrderNRExternal> -->
<!-- <InvDateFrom>2024-03-01T00:00:00</InvDateFrom> -->
<!-- <InvDateTo>2024-04-01T00:00:00</InvDateTo> -->
<!-- <UpdateDateFrom>2024-03-15T08:00:00</UpdateDateFrom> -->
<!-- <UpdateDateTo>2024-03-16T08:00:00</UpdateDateTo> -->
<!-- <RowCount>500</RowCount> -->
<!-- <AddCCPPayID>1</AddCCPPayID> -->
<!-- <OnlyUnpaidInvoices>0</OnlyUnpaidInvoices> -->
<!-- <StartKey>0</StartKey> -->
<!-- <ShipDateFrom>2024-03-01T00:00:00</ShipDateFrom> -->
<!-- <ShipDateTo>2024-04-01T00:00:00</ShipDateTo> -->
</ns1:pixiGetInvoice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
// 'InvoiceNr' => 'RE2024001234',
// 'ShopID' => 'SHP',
// 'PaymentType' => 'V',
// 'OrderNR' => '100523',
// 'OrderNRExternal' => 'WEB-2024-55871',
// 'InvDateFrom' => '2024-03-01T00:00:00',
// 'InvDateTo' => '2024-04-01T00:00:00',
// 'UpdateDateFrom' => '2024-03-15T08:00:00',
// 'UpdateDateTo' => '2024-03-16T08:00:00',
// 'RowCount' => '500',
// 'AddCCPPayID' => '1',
// 'OnlyUnpaidInvoices' => '0',
// 'StartKey' => '0',
// 'ShipDateFrom' => '2024-03-01T00:00:00',
// 'ShipDateTo' => '2024-04-01T00:00:00',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetInvoice', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetInvoice