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 ansehencurl -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;
}