====== offer-cube Entwickler Webservice Dokumentation ======
Zurück zur [[offer-cube:webservice|Webservice Dokumentation Startseite]]
====== Modul invoice ======
Das Modul invoice ist die Abbildung der Rechnungen und Mahnungen.
Achtung: Das Modul [[offer-cube:webservice:modules:dunning]] beinhaltet zusätzliche Meta Daten für Mahnungen.
**ACHTUNG:** Der Preis (Feld price) darf nicht direkt geändert werden. Er wird vom System immer automatisch berechnet.
Das Schema kann unter https://server/tenant/s/invoice/schema/ abgefragt werden.
Jedes Modul bietet einige Basis-Operationen. Siehe [[offer-cube:webservice|Webservice Dokumentation Startseite]].
^ action ^ Beschreibung ^
| send | send invoice (generate pdf) |
| pay | pay invoice (generate pdf if not existing) |
====== invoice/send ======
Versendet eine Rechnung an den Kunden.
Wenn als sendtype Email gesetzt wird, wird die Rechnung per Email an den Kunden gesendet.
Ansonsten wird nur die PDF Datei generiert.
Die Aktion 'send' kann mehrmals pro Rechnung aufgerufen werden - z.B. um die Rechnung noch ein 2. Mal zu versenden.
==== GET/URL ====
https://server/tenant/s/invoice/send/id?sid=sessionID[&output=outputMode]
^ Parameter ^ Beschreibung ^
| id | invoice::id |
| outputMode | JSON REST API (json) oder XML REST API (xml) |
==== POST ====
^ Parameter ^ Beschreibung ^
| id | int [optional] invoice::id, wenn nicht in URL angegeben |
| sendtype | int sende Rechnung per Brief (1) oder Email (2) - siehe [[offer-cube:webservice:operation:schema]] |
| email | string [optiona] Email Adresse - default: Feld invoice::site_email |
| invoice_dt | int [optional] unixtimestamp Rechnungsdatum - default: aktuelles Datum und Zeit |
| duepayment_dt | int [optional] unixtimestamp Zahlungsziel - default: invoice_dt + globale Einstellung paymentTargetOffset |
Wird als sendtype Brief angegeben, wird nur die PDF Datei generiert und als Attachment an die Rechnung angehängt (invoice::invoicepdf). \\
Bei Auswahl sendtype Email wird die PDF Datei erstellt und an die angegebene Email Adresse (email) oder falls nicht angegeben an invoice::site_email versendet.
==== RETURN ====
Wenn alles funktioniert hat, ist error=0 und invoicepdf=attachment::id der erstellten und versendeten Rechnung
Beispiel:
{"module":"invoice","error":0,"customerid":"4","invoiceid":"201502010","invoicepdf":"321","errormsg":[]}
====== invoice/pay ======
Bezahlen einer Rechnung.
Wenn die Rechnung noch nicht erstellt wurde (kein Rechnungs-PDF existiert), dann wird zuerst die Rechnung erstellt.
Zusätzlich wird ein [[offer-cube:webservice:modules:inoutexpenses]] Eintrag erzeugt und mit der Rechnung verlinkt.
Achtung: Da alle POST Parameter optional sind, reicht ein reiner GET Aufruf um eine Rechnung als bezahlt zu markieren.
Hierbei ist zu beachten, dass das aktuelle Datum als Bezahldatum angewendet wird!
==== GET/URL ====
https://server/tenant/s/invoice/pay/id?sid=sessionID[&output=outputMode]
^ Parameter ^ Beschreibung ^
| id | invoice::id |
| outputMode | JSON REST API (json) oder XML REST API (xml) |
==== POST ====
^ Parameter ^ Beschreibung ^
| id | int [optional] invoice::id, wenn nicht in URL angegeben |
| paid_dt | int [optional] unixtimestamp Rechnungsdatum - default: aktuelles Datum und Zeit |
| annotation | string [optional] interne Notizen zur Rechnung |
==== RETURN ====
Beispiel:
{"module":"invoice","error":0,"customerid":"4","invoiceid":"201502010","invoicepdf":"321","errormsg":[]}