Alle Angebote auflisten
GET /api/offers
Response: 200 OK<?xml version="1.0" encoding="UTF-8"?> <offers type="array" page="1" per_page="100" total="2"> <offer> ... </offer> <offer> ... </offer> </offers>
Über Parameter kann gefiltert werden:
GET /api/offers?offer_number=AN123
Listet alle Angebote auf, die "AN123" in der Angebotsnummer haben. Groß- und Kleinschreibung wird ignoriert.
Folgende Parameter stehen zur Verfügung:
Parameter | Beschreibung |
|---|---|
client_id | ID des Kunden |
offer_number | Angebotsnummer |
status | Angebotsstatus (DRAFT, OPEN, WON, LOST, CANCELED) |
from | Nur Angebote ab diesem Datum (Format YYYY-MM-DD) |
to | Nur Angebote bis zu diesem Datum (Format YYYY-MM-DD) |
intro | Freitextsuche im Einleitungstext |
note | Freitextsuche im Anmerkungstext |
Einzelnes Angebot aufrufen
GET /api/offers/{id}
Response: 200 OK<?xml version="1.0" encoding="UTF-8"?> <offer> <id type="integer">1</id> <client_id type="integer">123</client_id> <created type="datetime">2007-12-13T12:12:00+01:00</created> <offer_number>AN123</offer_number> <number type="integer">123</number> <number_pre>AN</number_pre> <status>OPEN</status> <date type="date">2009-10-14</date> <address>Billomat GmbH & Co. KG Hollertszug 26 57562 Herdorf Deutschland</address> <intro>Wir freuen uns, Ihnen folgende Positionen anbieten zu drüfen:</intro> <note>Wir freuen und über Ihren Auftrag!</note> <total_gross type="float">119.0</total_gross> <total_net type="float">100.0</total_net> <currency_code>EUR</currency_code> <quote type="float">1.0000</quote> <taxes type="array"> <tax> <name>MwSt</name> <rate type="float">19.0</rate> <amount type="float">19.0</amount> </tax> </taxes> </offer>
status kann folgende Werte haben:
- DRAFT (Entwurf)
- OPEN (offen)
- WON (gewonnen)
- LOST (lost)
- CANCELED (storniert)
Zusätzlich zum eigentlichen Angebot werden noch die zusammengefassten Steuern (taxes) mit zurückgegeben.
Die Angebotspositionen und Angebotskommentare können gesondert abgerufen werden.
Angebot erstellen
POST /api/offers
Erstellt ein neues Angebot.
XML-Element | Beschreibung | Typ | Default-Wert | Pflichtfeld |
|---|---|---|---|---|
client_id | ID des Kunden | INT | ja | |
address | komplette Angebotsadresse | ALNUM | Adresse des Kunden | |
number_pre | Präfix | ALNUM | Wert aus Einstellungen | |
number | lfd. Nummer | INT | nächste freie Nummer | |
date | Angebotsdatum | DATE | heute | |
intro | Einleitungstext | ALNUM | Wert aus Einstellungen | |
note | Anmerkungstext | ALNUM | Wert aus Einstellungen | |
currency_code | Währung | ISO-Währungscode | Standard-Währung | |
quote | Währungskurs (für Umrechnung in Standard-Währung) | FLOAT | 1.0000 |
status ist bei der Erstellung immer DRAFT.
Die übrigen Eigenschaften des Angebotes werden automatisch berechnet.
Angebotspositionen (offer-items) können bei der Erstellung direkt mit angegeben werden. Es gelten die gleichen XML-Elemente wie unter Angebotsposition erstellen. Nur das XML-Element offer_id muss nicht mit angegeben werden.
Request Body<offer> <client_id>5</client_id> <date>2009-11-17</date> <offer-items> <offer-item> <unit>Stück</unit> <unit_price>1.23</unit_price> <quantity>1.5</quantity> <title>Muster</title> </offer-item> <offer-item> <unit>Stück</unit> <unit_price>1.23</unit_price> <quantity>5</quantity> <title>Muster 2</title> </offer-item> </offer-items> </offer>
Response: 201 Created<?xml version="1.0" encoding="UTF-8"?> <offer> <id type="integer">1234</id> <client_id type="integer">5</client_id> <created type="datetime">2007-12-13T12:12:00+01:00</created> <offer_number>AN124</offer_number> <number type="integer">124</number> <number_pre>AN</number_pre> <date type="date">2009-11-17</date> ... </offer>
Angebot bearbeiten
PUT /api/offers/{id}
Aktualisiert ein Angebot mit den übergebenen Parametern.
Ein Angebot kann grundsätzlich nur im Entwurfs-Status (DRAFT) bearbeitet werden.
Angebotspositionen und Kommentare können nicht direkt über das Angebot bearbeitet werden. Bitte dafür über die entsprechende Ressource gehen.
Request Body<offer> <date>2009-10-13</date> </offer>
Response: 200 OK
Angebot löschen
DELETE /api/offers/{id}
Löscht ein Angebot inkl. aller dazugehöriger Dokumente (PDFs), Angebotspositionen und Kommentare.
Response: 200 OK
PDFs eines Angebotes aufrufen
GET /api/offers/{id}/pdf
An dieser Stelle kann außerdem der Parameter format=pdf verwendet werden, um das PDF direkt mit Mimetype "application/pdf" aufzurufen.
Response: 200 OK<pdf> <id type="integer">4882</id> <created type="datetime">2009-09-02T12:04:15+02:00</created> <offer_id type="integer">240</offer_id> <filename>offer_123.pdf</filename> <mimetype>application/pdf</mimetype> <filesize>70137</filesize> <base64file>{base64-kodiertes PDF}</base64file> </pdf>
Angebot abschließen
PUT /api/offers/{id}/complete
Schließt ein Angebot im Entwurfsstatus (DRAFT) ab. Dabei wird der Status auf offen (OPEN) gesetzt und ein PDF erzeugt und im Dateisystem abgelegt.
Welche Vorlage für die PDF-Erzeugung benutzt wird, steuert der Parameter optionale template_id.
Wir dieser Parameter nicht angegeben, wird die eingestellte Standard-Vorlage benutzt.
Request Body<complete> <template_id>123</template_id> </complete>
Response: 200 OK
Angebot per E-Mail versenden
POST /api/offers/{id}/email
Versendet ein Angebot per E-Mail.
XML-Element | Beschreibung | Typ | Default-Wert | Pflichtfeld |
|---|---|---|---|---|
from | Absender | E-Mail des eingeloggten Benutzers | ||
recipients | Empfänger der E-Mail. Muss mindestens einen XML-Knoten "to", "cc" und/oder "bcc" mit den gewünschten E-Mail-Adressen enthalten | XML-Knoten/EMAIL | ja | |
subject | Betreff der E-Mail, kann Platzhalter enthalten | ALNUM | Wert aus Einstellungen | |
body | Text der Mail, kann Platzhalter enthalten | ALNUM | Wert aus Einstellungen | |
filename | Dateiname der PDF-Rechnung (ohne .pdf) | ALNUM | offer_{id} | |
attachments | Weitere Dateianhänge. Kann beliebig viele Dateianhänge über die Knoten "attachment" mit den Elementen "filename", "mimetype" und "base64file" enthalten | XML-Knoten |
Request Body<email> <from>info@billomat.com</from> <recipients> <to>info@billomat.com</to> <cc>mail@example.com</cc> </recipients> <subject>Ihr Angebot</subject> <body>Sehr geehrte Damen und Herren, ....</body> <filename>angebot</filename> <attachments> <attachment> <filename>zeichnung.pdf</filename> <mimetype>application/pdf</mimetype> <base64file>{base64-kodierte Datei}</base64file> </attachment> </attachments> </email>
Response: 200 OK
Angebot stornieren
PUT /api/offers/{id}/cancel
Response: 200 OK
