API-Dokumentation

Alle Geldbeträge sind ganze Cent.

Um die API zu verwenden, muss in den Stammdaten ein Mandant-bezogener API-Key erstellt werden.

Optional kann eine Webhook-URL angegeben werden, an die Events bei Änderungen gesendet werden.

Rechnungs-API

IBAN sowie USt-IdNr oder Steuernummer müssen vor Erstellung einer Rechnung in den Stammdaten in Legistry hinterlegt werden.

Aktuell werden alle Beträge mit 19% Umsatzsteuer ausgewiesen.

Rechnung erstellen

`referenzKunde` ist erforderlich und kann ein beliebiger String sein, z.B. ein interner Primary Key oder ein konstanter Wert.

`empfaengerAdresszeile2` ist optional. Fehlende oder null-Werte werden als leerer String behandelt.

`zahlungsfrist` ist optional und gibt die Zahlungsfrist ab Zugang der Rechnung in Tagen an. Falls nicht gesetzt, gilt die gesetzliche Zahlungsfrist von 30 Tagen. Um wirksam zu sein, müssen kürzere Zahlungsfristen mit dem Kunden vertraglich vereinbart werden.

`website`, `email` und `telefonnummer` sind optional und werden nur für die Darstellung auf der Rechnung verwendet.

curl \
  -X POST \
  -H 'Authorization: Bearer API_KEY' \
  -H 'Content-Type: application/json' https://legistry.de/api/create-rechnung \
  --data '{ "empfaengerName": "Legistry GmbH", "empfaengerAdresszeile1": "Hunoldstraße 52", "empfaengerAdresszeile2": "", "empfaengerPostleitzahl": "26203", "empfaengerOrt": "Wardenburg", "empfaengerStaat": "DE", "referenzKunde": "REFERENZ_KUNDE", "leistungszeitraumBeginn": "2025-12-08", "leistungszeitraumEnde": "2025-12-08", "positionen": [ { "anzahl": 1, "einzelbetrag": 200000, "beschreibung": "Test" } ], "website": "www.legistry.de", "email": "info@legistry.de", "telefonnummer": "+4915770519524", "zahlungsfrist": 14 }'

Rückgabe:

{
  status: 'success',
  data: RechnungDto
}

oder

{
  status: 'access_denied' | 'missing_geschaeftsadresse' | 'missing_iban' | 'missing_steuernummer_or_ustid' | 'missing_positionen' | 'invalid_leistungszeitraum' | 'invalid_anzahl' | 'invalid_einzelbetrag'
}

Rechnungen abrufen

curl -X GET -H 'Authorization: API_KEY' https://legistry.de/api/list-rechnungen?referenzKunde=REFERENZ_KUNDE

Rückgabe:

{
  status: 'success',
  data: RechnungDto[],
}

oder

{
  status: 'access_denied',
}

Einzelne Rechnung abrufen

curl -X GET -H 'Authorization: API_KEY' https://legistry.de/api/get-rechnung?id=RECHNUNG_ID

Rückgabe:

{
  status: 'success',
  data: RechnungDto,
}

oder

{
  status: 'access_denied',
}

Rechnungs-PDF abrufen

Beispiel-Rechnung ansehen
curl -X GET -H 'Authorization: API_KEY' https://legistry.de/api/get-rechnung-inhalt?id=RECHNUNG_ID

Rückgabe:

{
  status: 'success',
  data: base64EncodedPdfData,
}

oder

{
  status: 'access_denied',
}

Zahlungen abrufen

curl -X GET -H 'Authorization: API_KEY' https://legistry.de/api/list-zahlungen?referenzKunde=REFERENZ_KUNDE

Rückgabe:

{
  status: 'success',
  data: ZahlungDto[],
}

oder

{
  status: 'access_denied',
}

Interface RechnungDto

interface RechnungDto {
  id: string;
  datum: string;
  nummer: string;
  created: number;
  mandantId: string;
  betragNetto: number;
  betragBrutto: number;
  zahlungsfrist: number;
  empfaengerOrt: string;
  referenzKunde: string;
  empfaengerName: string;
  empfaengerStaat: Staat;
  dokumentId: string | null;
  leistungszeitraumEnde: string;
  empfaengerPostleitzahl: string;
  empfaengerAdresszeile1: string;
  empfaengerAdresszeile2: string;
  leistungszeitraumBeginn: string;
  positionen: {
    anzahl: number;
    steuersatz: number;
    beschreibung: string;
    einzelbetrag: number;
  }[];
}

Interface ZahlungDto

interface ZahlungDto {
  id: string;
  datum: string;
  betrag: number;
  created: number;
  referenzKunde: string | null;
}