Basis-URL: https://api.schraubertermin.de/v1

Rechnungen

Erstellen und verwalten Sie Rechnungen: Positionen hinzufügen, finalisieren, versenden und Zahlungsstatus verfolgen.

Rechnungs-Workflow

draftfinalizedpaid

Entwürfe können bearbeitet werden. Finalisierte Rechnungen sind unveränderlich und können storniert werden.

GET/v1/rechnungen

Listet alle Rechnungen Ihrer Werkstatt auf.

Query-Parameter

NameTypPflichtBeschreibung
statusstringNeinFilter: draft, finalized, paid, cancelled
kunde_iduuidNeinFilter nach Kunden-ID
datum_vonstringNeinStartdatum (ISO 8601)
datum_bisstringNeinEnddatum (ISO 8601)
pageintegerNeinSeitennummer (Standard: 1)
per_pageintegerNeinEinträge pro Seite (Standard: 25)
"token-method">curl "token-keyword">-X GET '"token-url">https://api.schraubertermin.de/v1/rechnungen?status=finalized' \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "data": [
    {
      "id": "r1a2b3...",
      "rechnungsnummer": "RE-2025-0042",
      "status": "finalized",
      "kunde": {
        "id": "k1a2...",
        "name": "Max Mustermann"
      },
      "positionen_count": 3,
      "netto": 15000,
      "mwst": 2850,
      "brutto": 17850,
      "erstellt_am": "2025-06-15T10: 00: 00Z",
      "finalisiert_am": "2025-06-15T10: 30: 00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 89,
    "total_pages": 4
  }
}
GET/v1/rechnungen/:id

Ruft eine einzelne Rechnung mit allen Positionen ab.

"token-method">curl "token-keyword">-X GET "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3... \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "id": "r1a2b3...",
  "rechnungsnummer": "RE-2025-0042",
  "status": "finalized",
  "kunde": {
    "id": "k1a2...",
    "name": "Max Mustermann",
    "email": "max@example.com"
  },
  "positionen": [
    {
      "id": "p1...",
      "beschreibung": "Reifenwechsel",
      "menge": 1,
      "einzelpreis": 4900,
      "gesamt": 4900
    },
    {
      "id": "p2...",
      "beschreibung": "Winterreifen Continental 205/55 R16",
      "menge": 4,
      "einzelpreis": 8500,
      "gesamt": 34000
    },
    {
      "id": "p3...",
      "beschreibung": "Auswuchten",
      "menge": 4,
      "einzelpreis": 500,
      "gesamt": 2000
    }
  ],
  "netto": 40900,
  "mwst_satz": 19,
  "mwst": 7771,
  "brutto": 48671,
  "notizen": "Winterreifen vom Kunden gewünscht",
  "erstellt_am": "2025-06-15T10: 00: 00Z",
  "finalisiert_am": "2025-06-15T10: 30: 00Z",
  "bezahlt_am": null
}
POST/v1/rechnungen

Erstellt eine neue Rechnung im Entwurfsstatus. Optional kann eine Buchung verknüpft werden.

Body-Parameter

NameTypPflichtBeschreibung
kunde_iduuidJaID des Rechnungsempfängers
buchung_iduuidNeinOptionale Buchungs-ID zur Verknüpfung
notizenstringNeinInterne Notizen
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"kunde_id": "k1a2b3c4...", "buchung_id": "b1a2c3d4..."}'
Response201 Created
{
  "id": "neue-rechnung-uuid",
  "rechnungsnummer": "RE-2025-0043",
  "status": "draft",
  "positionen": [],
  "netto": 0,
  "brutto": 0
}
PATCH/v1/rechnungen/:id

Aktualisiert eine Rechnung im Entwurfsstatus. Finalisierte Rechnungen können nicht bearbeitet werden.

Body-Parameter

NameTypPflichtBeschreibung
kunde_iduuidNeinNeuer Rechnungsempfänger
notizenstringNeinNeue Notizen
"token-method">curl "token-keyword">-X PATCH "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3... \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"notizen": "Eilauftrag"}'
Response200 OK
{
  "id": "r1a2b3...",
  "status": "draft",
  "notizen": "Eilauftrag"
}
DELETE/v1/rechnungen/:id

Löscht eine Rechnung im Entwurfsstatus. Finalisierte Rechnungen können nur storniert werden.

"token-method">curl "token-keyword">-X DELETE "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3... \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'

Gibt 204 No Content bei Erfolg zurück.

POST/v1/rechnungen/:id/finalisieren

Finalisiert eine Rechnung. Danach sind keine Änderungen mehr möglich. Eine Rechnungsnummer wird vergeben.

Die Rechnung muss mindestens eine Position enthalten. Nach Finalisierung sind keine Änderungen mehr möglich.

"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../finalisieren \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "id": "r1a2b3...",
  "rechnungsnummer": "RE-2025-0043",
  "status": "finalized",
  "finalisiert_am": "2025-06-15T10: 30: 00Z",
  "brutto": 48671
}
POST/v1/rechnungen/:id/bezahlt

Markiert eine finalisierte Rechnung als bezahlt.

Body-Parameter

NameTypPflichtBeschreibung
zahlungsmethodestringNeinZahlungsart: bar, karte, ueberweisung (Standard: bar)
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../bezahlt \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"zahlungsmethode": "karte"}'
Response200 OK
{
  "id": "r1a2b3...",
  "status": "paid",
  "bezahlt_am": "2025-06-15T11: 00: 00Z",
  "zahlungsmethode": "karte"
}
POST/v1/rechnungen/:id/stornieren

Storniert eine finalisierte Rechnung. Erzeugt eine Storno-Rechnung.

Body-Parameter

NameTypPflichtBeschreibung
grundstringNeinStornierungsgrund
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../stornieren \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"grund": "Kunde hat Leistung nicht in Anspruch genommen"}'
Response200 OK
{
  "id": "r1a2b3...",
  "status": "cancelled",
  "storniert_am": "2025-06-15T12: 00: 00Z",
  "storno_rechnung_id": "sr1a2b3..."
}
POST/v1/rechnungen/:id/senden

Versendet eine finalisierte Rechnung per E-Mail an den Kunden.

"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../senden \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'
Response200 OK
{
  "success": true,
  "gesendet_an": "max@example.com",
  "gesendet_am": "2025-06-15T10: 35: 00Z"
}
POST/v1/rechnungen/:id/positionen

Fügt eine neue Position zu einer Rechnung im Entwurfsstatus hinzu.

Body-Parameter

NameTypPflichtBeschreibung
beschreibungstringJaBeschreibung der Position
mengenumberJaMenge (z.B. 4 für 4 Reifen)
einzelpreisintegerJaEinzelpreis in Cent (z.B. 8500 = 85,00 EUR)
"token-method">curl "token-keyword">-X POST "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../positionen \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{
    "beschreibung": "Winterreifen Continental 205/55 R16",
    "menge": 4,
    "einzelpreis": 8500
  }'
Response201 Created
{
  "id": "p-neue-uuid",
  "beschreibung": "Winterreifen Continental 205/55 R16",
  "menge": 4,
  "einzelpreis": 8500,
  "gesamt": 34000
}
PATCH/v1/rechnungen/:id/positionen/:itemId

Aktualisiert eine Rechnungsposition. Nur bei Rechnungen im Entwurfsstatus.

Body-Parameter

NameTypPflichtBeschreibung
beschreibungstringNeinNeue Beschreibung
mengenumberNeinNeue Menge
einzelpreisintegerNeinNeuer Einzelpreis in Cent
"token-method">curl "token-keyword">-X PATCH "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../positionen/p1... \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey' \
  "token-flag">-H 'Content-Type: application/json' \
  "token-flag">-d '{"menge": 2}'
Response200 OK
{
  "id": "p1...",
  "beschreibung": "Winterreifen Continental 205/55 R16",
  "menge": 2,
  "einzelpreis": 8500,
  "gesamt": 17000
}
DELETE/v1/rechnungen/:id/positionen/:itemId

Entfernt eine Position von einer Rechnung im Entwurfsstatus.

"token-method">curl "token-keyword">-X DELETE "token-url">https://api.schraubertermin.de/v1/rechnungen/r1a2b3.../positionen/p1... \
  "token-flag">-H 'Authorization: Bearer sk_live_IhrApiKey'

Gibt 204 No Content bei Erfolg zurück.