Postman-Collection
Payments Lesen

pixiPayGetInvoicesToCapture

Liefert unbezahlte, ausgelieferte Rechnungen einer Zahlungsart, die zur Abbuchung anstehen, mit Auftrags-, Betrags-, Adress- und Kartendaten.

Ermittelt die Rechnungen, die eine Zahlungsanbindung (z. B. ein Kreditkartenanbieter) als Nächstes abbuchen soll, und liefert sie mit allen für die Abbuchung nötigen Daten.

Eine Rechnung wird gewählt, wenn alle folgenden Bedingungen gelten:

  • Payment entspricht @PaymentCode.
  • Es wurde noch nichts bezahlt (PayedSum = 0) und Total > 0.
  • Die Abbuchung ist nicht als erledigt markiert (CCPPaymentDone ist N oder NULL).
  • Die Rechnung wurde ausgescannt (ScanOutDate ist gesetzt).
  • InvoiceKey ist größer als @FromInvoiceId.
  • Eine der Wiederholungsbedingungen trifft zu:
    • noch kein Abbuchungsversuch (CCPNumOfTries = 0), oder
    • eine erneute Belastung ist angefordert (CCPRecharge = 'Y'), oder
    • 1 bis 3 Fehlversuche (ccpSetFailTries) und der letzte Fehlversuch (ccpSetFailLastTime) liegt mehr als 10 Minuten zurück, oder
    • @ShowAll = 1, wodurch die Wiederholungsbedingungen vollständig entfallen.

Es werden höchstens @RowCount Rechnungen gewählt, aufsteigend sortiert nach InvoiceKey. Je Rechnung werden Rechnungsnummer, die kommagetrennte Liste der externen Auftragsnummern, Gesamtbetrag, bezahlter Betrag, abzubuchender Betrag (Total - PayedSum), die Summe der verknüpften Auftragspositionen im Status ANG, Währungscode, Shop (CustomerOf des Kunden), Karten- und Adressdaten der Rechnungsadresse sowie die Abbuchungsstatusfelder geliefert.

Paging: Die InvoiceId der letzten gelieferten Zeile als @FromInvoiceId übergeben, um den nächsten Block zu erhalten.

Hinweise

  • Alle Lesezugriffe verwenden NOLOCK, nicht festgeschriebene Änderungen können sichtbar sein.
  • Der Aufruf ändert keine Daten; das Markieren von Rechnungen als abgebucht oder fehlgeschlagen muss separat erfolgen.
  • @ShowAll = 1 hebt nur die Wiederholungs-/Wartebedingung auf; alle anderen Filter (Zahlungsart, unbezahlt, ausgescannt, nicht erledigt) gelten weiterhin. Dabei werden auch Rechnungen mit mehr als 3 Fehlversuchen geliefert.
  • Die Begrenzung TOP (@RowCount) greift vor dem Join auf Währung, Kunde und Adresse. Rechnungen ohne passenden Datensatz dort entfallen, daher können weniger als @RowCount Zeilen geliefert werden, obwohl weitere Rechnungen existieren.
  • Da nur Rechnungen mit PayedSum = 0 gewählt werden, entspricht TotalToCapture immer Total.
  • Total_OrderCurr ist ein Duplikat von Total; ein Code-Kommentar sieht die Entfernung vor, Clients sollten sich nicht darauf verlassen.
  • Das Ergebnis enthält sensible Kartendaten (Nummer, Ablaufdatum, CVC); entsprechend sorgfältig verarbeiten und protokollieren.

Parameter

Parameter Typ Standardwert Beschreibung
PaymentCode
Pflicht
char(1)
string
–

Code der Zahlungsart; nur Rechnungen, deren Feld Payment diesem Wert entspricht, werden geliefert.

Beispiel: C

ShowAll
bit
boolean
0

Bei 1 werden die Wiederholungsbedingungen (noch kein Versuch, erneute Belastung angefordert oder 1–3 Fehlversuche mit dem letzten älter als 10 Minuten) ignoriert.

Erlaubte Werte

  • 0 – Nur Rechnungen, die laut Wiederholungsbedingungen fällig sind.
  • 1 – Alle unbezahlten, ausgescannten Rechnungen der Zahlungsart, unabhängig von bisherigen Versuchen.

Beispiel: 0

RowCount
int 30

Maximale Anzahl der gelieferten Rechnungen.

Beispiel: 30

FromInvoiceId
int 0

Nur Rechnungen mit einem InvoiceKey größer als dieser Wert werden geliefert; für Paging die zuletzt gelieferte InvoiceId übergeben.

Beispiel: 0

Antwort

Result-Set 1 · Immer (kann leer sein).

Eine Zeile je abzubuchender Rechnung, aufsteigend sortiert nach InvoiceId.

Spalte Typ Beschreibung
InvoiceNr
Kann leer sein
string

Rechnungsnummer.

OrderNrExternal
Kann leer sein
varchar(8000)
string

Kommagetrennte, sortierte Liste der eindeutigen externen Auftragsnummern der Rechnungspositionen.

Total
Kann leer sein
decimal

Rechnungsbetrag gesamt.

OrderLinesTotalANG decimal

Summe von OrderLineAmount der mit der Rechnung verknüpften Auftragspositionen im Status ANG; 0, wenn keine vorhanden.

PayedSum
Kann leer sein
decimal

Bereits bezahlter Betrag (durch den Filter immer 0).

TotalToCapture
Kann leer sein
decimal

Abzubuchender Betrag, Total - PayedSum.

Total_OrderCurr
Kann leer sein
decimal

Identisch mit Total; im Code zur Entfernung vorgesehen.

OrderCurrency
Kann leer sein
string

Währungscode (CodeA) der Rechnungswährung.

ShopID
Kann leer sein
string

Shop, zu dem der Kunde gehört (CustomerOf).

CardOwner
Kann leer sein
string

Name des Karteninhabers aus der Rechnungsadresse.

CardNumber
Kann leer sein
string

Kartennummer aus der Rechnungsadresse.

CardExpiration
Kann leer sein
string

Ablaufdatum der Karte aus der Rechnungsadresse.

CardCVC
Kann leer sein
string

Kartenprüfnummer aus der Rechnungsadresse.

Anrede
Kann leer sein
string

Anrede der Rechnungsadresse.

CareOf
Kann leer sein
string

c/o-Zeile der Rechnungsadresse.

FirstName
Kann leer sein
string

Vorname.

LastName
Kann leer sein
string

Nachname.

Address
Kann leer sein
string

Straße und Hausnummer.

City
Kann leer sein
string

Ort.

ZIP
Kann leer sein
string

Postleitzahl.

Country
Kann leer sein
string

Land.

Phone
Kann leer sein
string

Telefonnummer.

eMail
Kann leer sein
string

E-Mail-Adresse.

CCPNumOfTries
Kann leer sein
int

Bisherige Anzahl der Abbuchungsversuche.

CCPRecharge
Kann leer sein
string

Y, wenn eine erneute Belastung angefordert ist.

ccpPayID
Kann leer sein
string

Zahlungs-ID beim Zahlungsanbieter.

ccpSetFailLastTime
Kann leer sein
dateTime

Zeitpunkt des letzten Fehlversuchs.

ccpSetFailTries
Kann leer sein
int

Anzahl der Fehlversuche.

InvoiceId int

Interner Rechnungsschlüssel; als @FromInvoiceId für die nächste Seite verwenden.

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:pixiPayGetInvoicesToCapture>
      <PaymentCode>C</PaymentCode>
      <!-- <ShowAll>0</ShowAll> -->
      <!-- <RowCount>30</RowCount> -->
      <!-- <FromInvoiceId>0</FromInvoiceId> -->
    </ns1:pixiPayGetInvoicesToCapture>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Lesen Invlines · Lesen Orderlines · Lesen Currency · Lesen Customers · Lesen Addresses · Lesen
SQL-Objekt:
dbo.pipiPayGetInvoicesToCapture
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben