Zum Hauptinhalt springen
Zahlungen koppeln

Verknüpfung von Zahlungen mit Rechnungen in der REST-API

Lenka Haringerová avatar
Verfasst von Lenka Haringerová
Vor über 3 Jahren aktualisiert

Eine Kasse oder Bank kann wie folgt mit einer oder mehreren ausgestellten oder empfangenen Rechnungen gekoppelt werden:

<?xml version="1.0"?>
<winstrom version="1.0">
  <bank>
    <!-- Erstattungsdokument; kann auch "Kassierer-Bewegung" sein -->
    <id>code:BANK1</id>
    <!-- andere Dokumenteigenschaften können als normaler Import angegeben werden -->
    <sparovani>
      <!-- Erstattungsbeleg - für die Erstattung mehrerer Rechnungen wird das Element wiederholt type - nur Rechnungen desselben Typs (ausgestellt oder empfangen) können in der Paarung verwendet werden castka - (optional) gibt den zu erstattenden Betrag aus der Rechnung an -->
      <uhrazovanaFak type="Rechnung-ausgestellt" castka="1000">code:FV1</uhrazovanaFak>
      <rest>ignore</rest>
      <!-- was mit dem Rest zu tun ist, wenn er auftritt -->
    </sparovani>
  </bank>
</winstrom>

Mehrere Rechnungen können gleichzeitig in einer Paarung bezahlt werden. Bei der Kopplung mit mehreren Rechnungen müssen alle aufgeführten Rechnungen vom gleichen Rechnungstyp sein (ausgestellt oder erhalten).

Für jede zu bezahlende Rechnung können Sie ein Cast-Attribut angeben, dessen Wert den zu zahlenden Gesamtbetrag der Rechnung begrenzt.

<?xml version="1.0"?>

Der Wert des Attributs " cast" darf den zu zahlenden Restbetrag der zu erstattenden Rechnung nicht überschreiten. Wenn der Wert des Cast-Attributs kleiner ist als der noch zu zahlende Betrag, wird diese bestimmte Rechnung immer als Teilzahlung bezahlt. Wenn der Wert des Cast-Attributs gleich dem noch zu zahlenden Betrag ist, verliert das Attribut seine Bedeutung und die Paarung wird fortgesetzt, als ob es nicht eingegeben worden wäre.

Es kann vorkommen, dass der Erstattungsbetrag auf dem erstattenden Dokument und die Summe der Beträge auf den zu erstattenden Rechnungen nicht übereinstimmen (z. B. Wechselkursdifferenz oder fehlende zu zahlende Kronen), in diesem Fall richtet sich der Import nach dem Wert im <?xml version="1.0"?> Folgende Werte können ausgewählt werden:

  • nein: der Rest darf nicht vorkommen; falls doch, ist es ein Fehler

  • Konto: der Rest wird verbucht

  • ignorieren: der Rest wird ignoriert

  • castecnaErstattung: wenn der Betrag auf dem erstattenden Beleg geringer ist als auf dem zu erstattenden, handelt es sich um eine Teilerstattung

  • castecnaReimbursementOrReimbursement: wenn der Betrag auf dem erstattenden Beleg größer ist als auf dem zu erstattenden, wird der Restbetrag gebucht; wenn er kleiner ist, handelt es sich um eine Teilerstattung

  • castecnaReimbursementOrIgnore: wenn der Betrag auf dem erstattenden Beleg größer ist als auf dem zu erstattenden, wird der Rest ignoriert; wenn er kleiner ist, handelt es sich um eine Teilerstattung

Das Ergebnis des Imports ist abhängig vom gewählten Wert des <?xml version="1.0"?> der Differenz zwischen dem erstattenden und dem erstatteten Betrag (Rest):

Parameterresiduum

Rückstand = 0

Rückstand > 0

Rückstand < 0

keine

Rechnungen werden vollständig bezahlt oder teilweise bezahlt, wenn die Zahlung durch das Attribut " cast" eingeschränkt wurde.

Der Erstattungsbeleg wird gepaart.

FEHLER:

400 - Beträge auf dem erstatteten und dem erstattenden Beleg stimmen nicht überein

Rechnungen werden ganz oder teilweise bezahlt, wenn es eine Begrenzung der Zahlung mit dem Attribut " cast" gab.

Der Erstattungsbeleg wird gepaart.

Für den Rest wird ein internes Dokument erstellt.

ignorieren.

Rechnungen werden ganz oder teilweise bezahlt, wenn eine Zahlungsbeschränkung durch das Gussattribut besteht.

Der Erstattungsbeleg wird nicht gepaart.

castecnaRückerstattung

FEHLER:

400 - Teilerstattung macht keinen Sinn, der Betrag auf dem Erstattungsbeleg ist größer als der Betrag auf dem erstatteten

Der Betrag des Erstattungsbelegs wird sequentiell "verbraucht", um die Rechnungen bzw. die daraus zu erstattenden Beträge zu erstatten, und zwar in der Reihenfolge, in der sie im <?xml version="1.0"?> erscheinen.

Eine Rechnung, für die aus dem Erstattungsbetrag nicht genügend Mittel verbleiben, um den angegebenen Betrag ganz oder teilweise zu bezahlen, wird teilweise bis zu dem aus dem Erstattungsbetrag verbleibenden Betrag bezahlt.

Rechnungen, für die keine Mittel aus dem Erstattungsbetrag verbleiben, werden vom Abgleich ausgeschlossen und bleiben unbezahlt.

castecnaErstattungOderSpende

Rechnungen werden ganz oder teilweise bezahlt, wenn das Cast-Attribut zur Begrenzung der Zahlung verwendet wurde.

Der Erstattungsbeleg wird gepaart.

Für den Rest wird ein internes Dokument erstellt.

castreimbursementOrIgnore

Rechnungen werden ganz oder teilweise bezahlt, wenn eine Zahlungsbeschränkung durch das Gussattribut vorliegt.

Der Erstattungsbeleg wird nicht gepaart.

Darüber hinaus kann im -Tag auch Folgendes angegeben werden . Dies ist nicht zwingend erforderlich und wird standardmäßig aus den Firmeneinstellungen übernommen.

<?xml version="1.0"?>

Kopplung einer Zahlung in Landeswährung mit einer Fremdwährungsrechnung

Zusätzlich zur Paarung von Belegen in denselben Währungen können Sie auch eine Kasse oder Bank in nationaler Währung mit Rechnungen in Fremdwährung koppeln. Die Fremdwährung muss für alle gepaarten Rechnungen gleich sein. In diesem Fall wird der Erstattungsbeleg automatisch zu einem Kurs in die Fremdwährung umgerechnet, der dem Verhältnis des Erstattungsbetrags in der Hauswährungsbank zum Gesamtbetrag der Erstattungen auf den Fremdwährungsrechnungen entspricht.

Unpairing

Die Entkopplung kann auf ähnliche Weise durchgeführt werden:

<?xml version="1.0"?>

Wenn kein erstattungsfähiger Beleg aufgeführt ist, sind alle, die mit dem erstattungsfähigen Beleg gepaart sind, ungepaart.

Die Paarung ist idempotent (d. h. sie kann erneut aufgerufen werden).

Automatische Kopplung

Der automatische Zahlungsabgleich kann auch über die API aufgerufen werden.

curl -H "Accept: application/xml" -u winstrom:winstrom -X PUT -L https://demo.flexibee.eu:5434/c/demo/banka/automaticke-parovani

DieFilterung kann verwendet werden, um die in das Pairing eingehenden Zahlungen zu begrenzen.

/c/{Unternehmen}/Bank/{Filter}/automatisches-pairing

Das folgende Beispiel koppelt nur Zahlungen, die ab dem 1.3.2020 eingegeben wurden

/c/{firma}/bank/(datVyst>='2020-03-01')/automatic-matching

Mit den Parametern können Sie den Abgleichmodus einstellen, eingrenzen, in welchen Abrechnungsperioden die zu erstattenden Belege gesucht werden und wie die Differenz zwischen der Erstattung und dem zu erstattenden Beleg behandelt werden soll.

/c/{firma}/bank/automatic-matching?mod=jenVar&periods=current&ignore-difference-rate=1.5&set-difference=true

mod - automatischer Kopplungsmodus. Mögliche Werte:

  • varCasUcet: Paar nach Variable sym. und Betrag und Konto

  • varCas: Paar nach Variable sym. und Betrag (Standardwert)

  • jenVar: Paar nach Variable sym.

  • jenCastka: connect - Paar, wenn Betrag und VS nicht übereinstimmen

Zeitraum - in welchen Zeiträumen die zu bezahlenden Belege gesucht werden sollen. Mögliche Werte:

  • aktuell: aktuelle Abrechnungsperiode

  • aktuell-vorher: aktuelle und vorherige Abrechnungsperiode

  • alle: alle Abrechnungsperioden (Standardwert)

ignore-difference-amount - wie viel Differenz zwischen Erstattung und erstattetem Beleg ignoriert werden soll (Standardwert 0.0 - Beträge müssen übereinstimmen, im onlyVar-Modus wird die Differenzeinstellung ignoriert)

posting-difference - ob Belege gebucht werden sollen, wenn es einen Erstattungs-Zusammenführungsauftrag gibt, bei dem die Belegbeträge nicht übereinstimmen (Standardwert true - es wird ein interner Beleg für die Differenz zwischen den Belegen erstellt und die Belege werden vollständig abgeglichen)

Es ist auch möglich, den automatischen Abgleich über die Parametrierung des automatischen Abgleichs einzuschränken.

  • Bei der erweiterten Variante des automatischen Abgleichs kann der Zeitraum durch den erweiterten Parameter paramParovaniUhradOmezeniObdobiDrgn und die Werte: current, current-previous (Standard für die Anwendung), all (Standard für die API) beeinflusst werden.

Die ursprüngliche Methode des Abgleichs nur über die REST-API

Der veraltete Weg zur Kopplung nur über die REST-API (nicht XML-Import) unter URL /c/{firma}/parovani-uhrad wird unterstützt.

<?xml version="1.0"?>
<winstrom version="1.0">
  <sparovani>
    <uhrazovanaFak type="invoice-received">code:FP1</uhrazovanaFak>
    <!-- Rechnung -->
    <uhrazujiciDokl type="bank">code:BANKA1</uhrazujiciDokl>
    <!-- Bankdokument -->
    <rest>ignore</rest>
    <!-- Rest ignorieren -->
  </sparovani>
</winstrom>
<?xml version="1.0"?>
<winstrom version="1.0">
  <vaporization>
    <uhrazujiciDokl>code:foo</uhrazujiciDokl>
    <!-- obligatorisch -->
    <uhrazovanaFak>code:bar</uhrazovanaFak>
    <!-- optional, mehrfach möglich -->
  </vaporization>
</winstrom>
Hat dies deine Frage beantwortet?