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 FehlerKonto
: der Rest wird verbuchtignorieren
: der Rest wird ignoriertcastecnaErstattung
: wenn der Betrag auf dem erstattenden Beleg geringer ist als auf dem zu erstattenden, handelt es sich um eine TeilerstattungcastecnaReimbursementOrReimbursement
: 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 TeilerstattungcastecnaReimbursementOrIgnore
: 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):
| Rückstand = 0 | Rückstand > 0 | Rückstand < 0 |
| Rechnungen werden vollständig bezahlt oder teilweise bezahlt, wenn die Zahlung durch das Attribut "
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 "
Der Erstattungsbeleg wird gepaart.
Für den Rest wird ein internes Dokument erstellt. | |||
| Rechnungen werden ganz oder teilweise bezahlt, wenn eine Zahlungsbeschränkung durch das
Der Erstattungsbeleg wird nicht gepaart. | ||
| 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
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. | |
| Rechnungen werden ganz oder teilweise bezahlt, wenn das
Der Erstattungsbeleg wird gepaart.
Für den Rest wird ein internes Dokument erstellt. | ||
| Rechnungen werden ganz oder teilweise bezahlt, wenn eine Zahlungsbeschränkung durch das
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 KontovarCas
: 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 Abrechnungsperiodeaktuell-vorher
: aktuelle und vorherige Abrechnungsperiodealle
: 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>