Postman-Collection
Invoices Schreiben

pixiManualCreditCreate

Legt eine manuelle Gutschrift (negative Rechnung) zu einer bestehenden Rechnung mit einem Betrag und einem Steuersatz an.

Legt eine Gutschrift an, die auf eine bestehende Rechnung verweist. Die Gutschrift hat keine Artikelpositionen; sie besteht aus einem Betrag und einem Steuersatz.

  1. Prüfungen
    • Amount muss größer als 0 sein.
    • VATRate muss H, L oder N sein.
    • Mindestens InvoiceKey oder InvoiceNr muss angegeben werden. Ist nur InvoiceNr angegeben, wird der Schlüssel in Invoices ermittelt. Die Rechnung muss existieren. Sind beide angegeben, müssen sie zur selben Rechnung gehören.
  2. Rechnungsdaten: Auftragstyp, Rechnungslager, Kunde, Rechnungs- und Lieferadresse sowie Währung werden aus der ursprünglichen Rechnung übernommen. Das Land stammt aus der Rechnungsadresse.
  3. Positionstext: Ist PositionText leer, wird ein Standardtext erzeugt. Bei LanguageId = 1 lautet er Manual Credit: Created From: {InvoiceNr}, sonst Manuell Gutschrift: Erstellt von: {InvoiceNr}. LanguageId ist standardmäßig 2.
  4. Steuerberechnung: Die Steuersätze für Land und Auftragstyp werden über Pixi_CA_GetVATList gelesen. Verwendet wird die Zeile mit dem angeforderten VATRate.
    • Bei Auftragstyp B2B gilt Amount als Nettobetrag: netto = −Amount, brutto = −Amount × (1 + MwSt.), auf 2 Stellen gerundet.
    • Bei allen anderen Auftragstypen gilt Amount als Bruttobetrag: brutto = −Amount, netto = −Amount / (1 + MwSt.), auf 2 Stellen gerundet.
  5. Limitprüfung: Der absolute Bruttobetrag der neuen Gutschrift wird zur absoluten Summe der Beträge aller Rechnungen addiert, die bereits auf die ursprüngliche Rechnung verweisen (RefToInvoiceKey). Ist das Ergebnis größer als der Rechnungsbetrag der ursprünglichen Rechnung, wird der Aufruf abgelehnt.
  6. Anlage: Pixi_CA_InsertManualInvoice legt die Gutschrift an. Dabei wird Folgendes ausgeführt:
    • die nächste Rechnungsnummer wird vergeben;
    • der Datensatz wird in Invoices eingefügt, wobei RefToInvoiceKey/RefToInvoiceNr auf die ursprüngliche Rechnung verweisen;
    • SEPA-Daten und ein InvoicePackage-Datensatz werden ergänzt;
    • die Gutschrift wird auf das Kundenkonto gebucht;
    • das MQ-Event InvoiceCreated wird veröffentlicht.

Der Aufruf liefert eine Statuszeile mit Status und Message.

Hinweise

  • Der Aufruf läuft in einer eigenen Transaktion. Ist bereits eine Transaktion offen, wird stattdessen ein Savepoint verwendet. Prüffehler führen zum Rollback mit Rückgabewert 2. Unerwartete Fehler werden über log.InsertError protokolliert und liefern Rückgabewert 3. Erfolg liefert 0. Rückgabewerte sind nicht Teil der SOAP-Zeilen.
  • Amount und VATRate sollten immer übergeben werden. Ein NULL-Wert löst die Prüfungen nicht aus, da Vergleiche mit NULL nicht wahr sind. Die berechneten Beträge bleiben dann NULL, und auch die Limitprüfung greift nicht.
  • Dasselbe gilt, wenn die Steuerliste keine Zeile für den angeforderten VATRate enthält, z. B. L für ein Land ohne ermäßigten Satz. Die Beträge bleiben NULL.
  • Pixi_CA_GetVATList kann für denselben VATRate sowohl den aktuellen als auch einen vor 12 Monaten gültigen Satz liefern. Welche Zeile dann für die Berechnung verwendet wird, ist im Code nicht festgelegt.
  • Die Limitprüfung addiert den Absolutwert der Summe bestehender verweisender Rechnungen, nicht die Summe der Absolutwerte.
  • Die Rechnungsabfragen verwenden NOLOCK. Gleichzeitige Gutschriften zur selben Rechnung werden daher nicht sicher daran gehindert, den Rechnungsbetrag zu überschreiten.
  • Pixi_CA_InsertManualInvoice fängt eigene Fehler ab, protokolliert sie und gibt sie nicht weiter. Bei einem Fehler dort kann trotzdem die OK-Zeile geliefert werden. Darauf kann eine Error-Zeile folgen, wenn der abschließende Commit fehlschlägt, weil die Transaktion bereits zurückgerollt wurde.
  • Der Text des allgemeinen Fehlers (...getting the report values...) ist irreführend; er betrifft jeden unerwarteten Fehler dieses Aufrufs.
  • Die inneren Prozeduren Pixi_GetNextInvNr, Pixi_CA_AddPixiInvoice, Pixi_AddDataForSEPAExportToInvoice und Pixi_MQ_EventPublish liegen nicht vor. Ihre genauen Auswirkungen, etwa Kundenkontobuchungen und das MQ-Event, sind hier nicht dokumentiert.

Parameter

Parameter Typ Standardwert Beschreibung
InvoiceKey
int NULL

Schlüssel der ursprünglichen Rechnung. Dieser Wert oder InvoiceNr ist erforderlich; bei Angabe beider müssen sie übereinstimmen.

Beispiel: 104523

InvoiceNr
varchar(20)
string
NULL

Nummer der ursprünglichen Rechnung. Dient zur Ermittlung des Schlüssels, wenn InvoiceKey fehlt.

Beispiel: RE2024001234

PositionText
varchar(120)
string
NULL

Text der Gutschrift, gespeichert als Rechnungstext ohne Positionen. Ist er leer, wird ein Standardtext mit der ursprünglichen Rechnungsnummer verwendet.

Beispiel: Goodwill credit for late delivery

LanguageId
tinyint
int
NULL

Sprache für den Standard-Positionstext. NULL wird als 2 behandelt. Der Wert wird auch an die innere Prozedur übergeben.

Erlaubte Werte

  • 1 – Englischer Standardtext
  • 2 – Deutscher Standardtext (jeder Wert außer 1)

Beispiel: 2

VATRate
varchar(1)
string
NULL

Steuersatzklasse des Gutschriftbetrags.

Erlaubte Werte

  • H – Hoher (regulärer) Steuersatz
  • L – Niedriger (ermäßigter) Steuersatz
  • N – Keine Mehrwertsteuer

Beispiel: H

Amount
money
decimal
NULL

Positiver Gutschriftbetrag. Bei Auftragstyp B2B ist er netto, bei allen anderen Auftragstypen brutto. Er wird negativ gespeichert.

Beispiel: 25.00

UserName
varchar(50)
string
NULL

Benutzername, der als Ersteller der Gutschrift gespeichert wird.

Beispiel: api_user

Antwort

Result-Set 1 · Immer; eine Statuszeile (bei seltenen inneren Fehlern kann auf eine OK-Zeile eine Error-Zeile folgen)

Status der Verarbeitung.

Spalte Typ Beschreibung
Status varchar(5)
string

OK bei Erfolg, sonst Error.

Message varchar(max)
string

Credit created bei Erfolg oder der Fehlertext.

Fehlermeldungen

Status Meldung Ursache
Error Amount should be positive `Amount` ist 0 oder negativ. Einen positiven Betrag übergeben.
Error Missing VAT data `VATRate` ist nicht `H`, `L` oder `N`.
Error Missing Invoice data Weder `InvoiceKey` noch `InvoiceNr` wurde angegeben.
Error Invoice does not exist Zur angegebenen `InvoiceNr` bzw. `InvoiceKey` wurde keine Rechnung gefunden.
Error InvoiceNr and InvoiceKey do not match Beide Kennungen wurden angegeben, gehören aber zu verschiedenen Rechnungen. Nur eine oder übereinstimmende Werte übergeben.
Error Credit total is too high Die neue Gutschrift zusammen mit bestehenden Gutschriften zur Rechnung würde den Rechnungsbetrag übersteigen. Betrag verringern.
Error Unexpected error while getting the report values. ({ERROR_MESSAGE}) Ein unerwarteter SQL-Fehler ist aufgetreten; die Transaktion wird zurückgerollt und der Fehler protokolliert.

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:pixiManualCreditCreate>
      <!-- <InvoiceKey>104523</InvoiceKey> -->
      <!-- <InvoiceNr>RE2024001234</InvoiceNr> -->
      <!-- <PositionText>Goodwill credit for late delivery</PositionText> -->
      <!-- <LanguageId>2</LanguageId> -->
      <!-- <VATRate>H</VATRate> -->
      <!-- <Amount>25.00</Amount> -->
      <!-- <UserName>api_user</UserName> -->
    </ns1:pixiManualCreditCreate>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Verwendete Tabellen

Invoices · Schreiben Currency · Lesen Addresses · Lesen Countries · Lesen VATs · Lesen Customers · Lesen Shops · Lesen ShipVendor · Lesen InvoicePackage · Schreiben
SQL-Objekt:
dbo.pipiManualCreditCreate
Prozedur zuletzt geändert am 2026-10-05
Dokumentation von claude-opus-5-5 am 2026-10-30 geschrieben