Buchungen¶
Buchungen sind steuerlich relevante Einnahmen und Ausgaben.
Mit der bookamat–API können Buchungen abgefragt, hinzugefügt, geändert und gelöscht werden. Es sind also GET, POST, PUT/PATCH und DELETE Requests möglich.
Liste der Buchungen¶
Die Liste aller gebuchten Buchungen wird mit einem GET Request auf die URL der Liste abgefragt.
/bookings/
Response¶
HTTP/1.0 200 OK
Content-Type: application/json; charset=utf-8
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 6782,
"status": "1",
"title": "Büromiete",
"document_number": "1-1",
"date": "2015-01-01",
"date_invoice": null,
"date_delivery": null,
"date_order": null,
"costcentre": {
"id": 4523,
"name": "Büro"
},
"amounts": [
{
"group": "2",
"bankaccount": {
"id": 1254,
"name": "Bankkonto"
},
"costaccount": {
"id": 2369,
"name": "Miete und Pacht"
},
"purchasetaxaccount": {
"id": 3476,
"name": "Vorsteuer Inland"
},
"amount": "400.00",
"amount_after_tax": "400.00",
"tax_percent": "20.00",
"tax_value": "80.00",
"deductibility_tax_percent": "100.00",
"deductibility_tax_value": "80.00",
"deductibility_amount_percent": "100.00",
"deductibility_amount_value": "400.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
],
"tags": [],
"attachments": [
{
"id": 8904,
"name": "Rechnung.pdf",
"size": 10700
}
],
"vatin": "",
"country": "",
"description": "",
"create_date": "2015-01-01T11:00:00",
"update_date": "2015-01-01T11:00:00",
},
{
"id": 6783,
"status": "1",
"title": "Servermiete",
"document_number": "1-2",
"date": "2015-01-02",
"date_invoice": "2015-01-02",
"date_delivery": "2015-01-02",
"date_order": null,
"costcentre": null
"amounts": [
{
"group": "2",
"bankaccount": {
"id": 1255,
"name": "Kreditkarte"
},
"costaccount": {
"id": 2369,
"name": "Lizenzgebühren"
},
"purchasetaxaccount": {
"id": 3476,
"name": "IG Erwerb von Leistungen"
},
"amount": "400.00",
"amount_after_tax": "400.00",
"tax_percent": "20.00",
"tax_value": "80.00",
"deductibility_tax_percent": "100.00",
"deductibility_tax_value": "80.00",
"deductibility_amount_percent": "100.00",
"deductibility_amount_value": "400.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
],
"tags": [
{
"id": 9723,
"tag": 5680,
"name": "Server"
}
],
"attachments": [],
"vatin": "DE123456789",
"country": "DE",
"description": "",
"create_date": "2015-01-02T12:00:00",
"update_date": "2015-01-02T12:00:00",
}
]
}
Felder¶
- id
Eindeutige Identifikationsnummer
- Format
- status
Buchungsstatus
- Format
- Möglichkeiten
- 1 — gebucht2 — offen (siehe Liste der offenen Buchungen)3 — gelöscht (siehe Liste der gelöschten Buchungen)
- title
Buchungstitel
- Format
- String (max. 50 Zeichen)
- document_number
Belegnummer
- Format
- String (Monat-Nummer)
- Anmerkung
- Die eindeutige Belegnummer setzt sich zusammen aus dem Monatund einer fortlaufenden Nummer pro Monat und ist nur fürBuchungen mit dem Status „1“ vorhanden.
- date
Buchungsdatum
- Format
- date_invoice
Rechnungsdatum
- Format
- date_delivery
Lieferdatum
- Format
- date_order
Bestelldatum
- Format
- costcentre
Kostenstelle
- Format
- Objektwerte
- Details
- Siehe Kostenstellen
- amounts
Beträge
- Format
- Details
- Siehe Felder der Liste amounts
- tags
Tags
- Format
- Details
- Siehe Felder der Liste tags
- attachments
Anhänge
- Format
- Details
- vatin
Umsatzsteuer Identifikationsnummer
- Format
- country
Land
- Format
- Möglichkeiten
- Siehe Länder
- description
Beschreibung
- Format
- create_date
Datum/Zeit der Erstellung
- Format
- update_date
Datum/Zeit des letzten Update
- Format
Felder (amounts)¶
Felder der Liste amounts (Beträge).
- group
Einnahme oder Ausgabe
- Format
- Möglichkeiten
- 1 — Einnahme2 — Ausgabe
- bankaccount
Zahlungsmittelkonto
- Format
- Objektwerte
- Siehe
- costaccount
Steuerkonto
- Format
- Objektwerte
- Siehe
- purchasetaxaccount
Umsatzsteuerkonto
- Format
- Objektwerte
- Siehe
- amount
Bruttobetrag
- Format
- amount_after_tax
NettoBetrag
- Format
- tax_percent
Umsatzsteuer in %
- Format
- tax_value
Umsatzsteuer in €
- Format
- deductibility_tax_percent
Betrieblicher Anteil der Umsatzsteuer in %
- Format
- deductibility_tax_value
Betrieblicher Anteil der Umsatzsteuer in €
- Format
- deductibility_amount_percent
Betrieblicher Anteil des Nettobetrags in %
- Format
- deductibility_amount_value
Betrieblicher Anteil des Nettobetrags in €
- Format
- foreign_business_base
Ausländische Betriebsstätte
- Format
- Objektwerte
- Siehe
- country_dep
Abgangsland
- Format
- Möglichkeiten
- Siehe Länder
- country_rec
Mitgliedstaat des Verbrauchs
- Format
- Möglichkeiten
- Siehe Länder
Felder (tags)¶
Felder der Liste tags (Tags).
- id
ID des Buchungstags
- Format
- Siehe
- tag
ID des Tags
- Format
- Siehe
- name
Bezeichnung
- Format
- String (min. 3 Zeichen, max. 40 Zeichen)
Felder (attachments)¶
Felder der Liste attachments (Anhänge):
- id
ID des Anhangs
- Format
- Siehe
- name
Bezeichnung
- Format
- String (max. 50 Zeichen)
- size
Dateigröße
- Format
Filter¶
- group
Einnahme oder Ausgabe
- Format
- String
- Möglichkeiten
- 1 — Einnahmen2 — Ausgaben
- title
Buchungstitel
- Format
- String (contains)
- Beispiele
- title=Servermietetitle_contains=miete
- date
Buchungsdatum
- Format
- Datum (from, until)
- Beispiele
- date=2015-01-01date_from=2015-01-01&date_until=2015-01-31
- date_invoice
Rechnungsdatum
- Format
- Datum (from, until)
- Beispiele
- date_invoice=2015-01-01date_invoice_from=2015-01-01&date_invoice_until=2015-01-31
- date_delivery
Lieferdatum
- Format
- Datum (from, until)
- Beispiele
- date_delivery=2015-01-01date_delivery_from=2015-01-01&date_delivery_until=2015-01-31
- date_order
Bestelldatum
- Format
- Datum (from, until)
- Beispiele
- date_order=2015-01-01date_order_from=2015-01-01&date_order_until=2015-01-31
- amount
Bruttobetrag
- Format
- Dezimalzahl (min, max)
- Beispiele
- amount=100amount_min=100&amount_max=199.99
- amount_after_tax
Nettobetrag
- Format
- Dezimalzahl (min, max)
- Beispiele
- amount_after_tax=100amount_after_tax_min=100&amount_after_tax_max=199.99
- bankaccount
Zahlungsmittelkonto
- Format
- Ganzzahl (ID)
- Beispiele
- bankaccount=1254
- costaccount
Steuerkonto
- Format
- Ganzzahl (ID)
- Beispiele
- costaccount=2361
- purchasetaxccount
Umsatzsteuerkonto
- Format
- Ganzzahl (ID)
- Beispiele
- purchasetaxccount=3475
- costcentre
Kostenstelle
- Format
- Ganzzahl (ID)
- Beispiele
- costcentre=4512
- foreign_business_base
Ausländische Betriebsstätte
- Format
- Ganzzahl (ID)
- Beispiele
- foreign_business_base=5567
- country_dep
Abgangsland
- Format
- String
- Möglichkeiten
- Siehe Länder
- country_rec
Mitgliedstaat des Verbrauchs
- Format
- String
- Möglichkeiten
- Siehe Länder
- tag
Tag
- Format
- Ganzzahl (ID)
- Beispiele
- tag=5684
- Hinweis
- Es handelt sich hier um die ID des Tags, nicht um die ID des Buchungstags.
- vatin
Umsatzsteuer Identifikationsnummer
- Format
- String (contains)
- Beispiele
- vatin=DE123456789vatin_contains=DE
- description
Beschreibung
- Format
- String (contains)
- Beispiele
- description=Honorarnotedescription_contains=honorar
- create_date
Erstellungsdatum
- Format
- Datum/Zeit (from, until)
- Beispiele
- create_date=2015-01-01create_date_from=2015-01-01&create_date_until=2015-01-31create_date_from=2015-01-01T17:00:00
- Anmerkung
- Bei create_date_from und create_date_until ist sowohl ein Datum als auch eine Kombination Datum/Zeit möglich
- update_date
Änderungsdatum
- Format
- Datum/Zeit (from, until)
- Beispiele
- update_date=2015-01-01update_date_from=2015-01-01&update_date_until=2015-01-31update_date_from_from=2015-01-01T17:00:00
- Anmerkung
- Bei update_date_from und update_date_until ist sowohl ein Datum als auch eine Kombination Datum/Zeit möglich
- has_attachments
Anhänge vorhanden
- Format
- Boolean
- Beispiele
- has_attachments=true
Sortierung¶
- ordering
Sortierung
- Möglichkeiten
- id, title, date, date_invoice, date_delivery, create_date, update_date
- Beispiele
- ordering=idordering=id,date
Liste der offenen Buchungen¶
Die Liste aller offenen Buchungen wird mit einem GET Request auf die URL der Liste abgefragt. Alle anderen Optionen (Felder, Filter, Sortierung) sind deckungsgleich mit der Listenansicht für gebuchte Buchungen.
/bookings/open/
Liste der gelöschten Buchungen¶
Die Liste aller gelöschten Buchungen wird mit einem GET Request auf die URL der Liste abgefragt. Alle anderen Optionen (Felder, Filter, Sortierung) sind deckungsgleich mit der Listenansicht für gebuchte Buchungen.
/bookings/deleted/
Buchung Detail¶
Eine einzelne (gebuchte, offene oder gelöschte) Buchung wird mit einem GET–Request auf die Detail–URL abgefragt. Es sind dieselben Felder verfügbar wie bei der Listenansicht.
/bookings/{id}/
Buchung hinzufügen¶
Eine neue Buchung wird mit einem POST Request auf die Listen URL hinzugefügt. Der Request Body muss alle notwendigen Felder beinhalten, als Response wird die neue Buchung zurückgegeben.
Bemerkung
Die Angabe der Liste amounts ist bei einer Buchung verpflichtend.
/bookings/
Request Body¶
{
"title": "Honoratnote 0022015",
"date": "2015-01-03",
"amounts": [
{
"bankaccount": 1254,
"costaccount": 2361,
"purchasetaxaccount": 3475,
"amount": "2400.00", // Bruttobetrag
"tax_percent": "20.00",
"deductibility_tax_percent": "100.00",
"deductibility_amount_percent": "100.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
]
}
Response¶
HTTP/1.0 201 CREATED
Content-Type: application/json; charset=utf-8
{
"id": 6784,
"status": "1",
"title": "Honoratnote 0022015",
"document_number": "1-3",
"date": "2015-01-03",
"date_invoice": null,
"date_delivery": null,
"date_order": null,
"costcentre": null,
"amounts": [
{
"group": "1", // Einnahme aufgrund von Steuerkonto
"bankaccount": {
"id": 1254,
"name": "Bankkonto"
},
"costaccount": {
"id": 2361,
"name": "Einnahmen"
},
"purchasetaxaccount": {
"id": 3475,
"name": "Umsatzsteuer Inland"
},
"amount": "2400.00",
"amount_after_tax": "2000.00",
"tax_percent": "20.00",
"tax_value": "400.00",
"deductibility_tax_percent": "100.00",
"deductibility_tax_value": "400.00",
"deductibility_amount_percent": "100.00",
"deductibility_amount_value": "2000.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
],
"tags": [],
"attachments": [],
"vatin": "",
"country": "",
"description": "",
"create_date": "2015-01-03T11:00:00",
"update_date": "2015-01-03T11:00:00",
}
Felder¶
- title *
Buchungstitel
- Format
- String (max. 50 Zeichen)
- date
Buchungsdatum
- Format
- Hinweis
- Wenn kein Datum angegeben wird handelt es sich um eine offene Buchung.
- date_invoice
Rechnungsdatum
- Format
- date_delivery
Lieferdatum
- Format
- date_order
Bestelldatum
- Format
- costcentre
ID der Kostenstelle
- Format
- amounts *
Beträge
- Format
- Details
- Siehe Felder der Liste amounts
- vatin
Umsatzsteuer Identifikationsnummer
- Format
- String (max. 20 Zeichen)
- country
Land
- Format
- Möglichkeiten
- Siehe Länder
- description
Beschreibung
- Format
- Text (max. 500 Zeichen)
Felder (amounts)¶
Felder der Liste amounts (Beträge).
- bankaccount *
ID des Zahlungsmittelkontos
- Format
- costaccount *
ID des Steuerkontos
- Format
- purchasetaxaccount *
ID des Umsatzsteuerkontos
- Format
- amount *
Bruttobetrag
- Format
- tax_percent *
Umsatzsteuer in %
- Format
- Möglichkeiten
- 0.00 … 100.00
- deductibility_tax_percent *
Betrieblicher Anteil der Umsatzsteuer in %
- Format
- Möglichkeiten
- 0.00 … 100.00
- deductibility_amount_percent *
Betrieblicher Anteil des Nettobetrags in %
- Format
- Möglichkeiten
- 0.00 … 100.00
- foreign_business_base
ID der ausländischen Betriebsstätte
- Format
- country_dep
Abgangsland
- Format
- Möglichkeiten
- Siehe Länder
- country_rec
Mitgliedstaat des Verbrauchs
- Format
- Möglichkeiten
- Siehe Länder
Buchung ändern¶
Eine bestehende Buchung kann mit einem PATCH oder PUT Request auf die Detail URL geändert werden.
/bookings/{id}/
Request (PATCH)¶
Content-Type: application/json; charset=utf-8
{
"costcentre": 2,
"amounts": [
{
"bankaccount": 9,
"costaccount": 148,
"purchasetaxaccount": 20,
"amount": "3600.00",
"tax_percent": "20.00",
"deductibility_tax_percent": "100.00",
"deductibility_amount_percent": "100.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
]
}
Bei einem PATCH Request ist zu beachten, dass die Liste amounts nur als Ganzes geändert werden kann (und nicht einzelne Elemente der Liste).
Request (PUT)¶
Content-Type: application/json; charset=utf-8
{
"title": "Honoratnote 0022015",
"date": "2015-01-03",
"costcentre": 2,
"amounts": [
{
"bankaccount": 9,
"costaccount": 148,
"purchasetaxaccount": 20,
"amount": "3600.00",
"tax_percent": "20.00",
"deductibility_tax_percent": "100.00",
"deductibility_amount_percent": "100.00",
"foreign_business_base": null,
"country_dep": "",
"country_rec": ""
}
]
}
Response¶
Als Response wird die komplette geänderte Buchung zurückgegeben (siehe Response beim Hinzufügen einer Buchung).
Buchung löschen¶
Eine Buchung wird mit einem DELETE Request auf die Detail URL gelöscht.
Eine Buchung kann aber nicht tatsächlich gelöscht werden. Vielmehr wird der Status auf gelöscht gesetzt und die Buchung ist unter gelöschte Buchungen (siehe Liste der gelöschten Buchungen) aufgelistet. Eine gelöschte Buchung kann wiederhergestellt werden.
/bookings/{id}/
Response¶
Als Response wird die komplette geänderte Buchung zurückgegeben (siehe Response beim Hinzufügen einer Buchung).
Das Feld status
wurde auf den Wert "3"
gesetzt.
Buchung wiederherstellen¶
Eine gelöschte Buchung kann wiederhergestellt werden, d.h. der Status wird von gelöscht auf gebucht (falls ein Datum vorhanden ist) oder offen (falls kein Datum vorhanden ist) gesetzt.
/bookings/{id}/
Response¶
Als Response wird die komplette geänderte Buchung zurückgegeben (siehe Response beim Hinzufügen einer Buchung).
Das Feld status
wurde auf den Wert "1"
(wenn ein Datum vorhanden ist) oder "2"
(wenn kein Datum vorhanden ist) gesetzt.