PDF-Dokumente API

← Zurück zur API-Übersicht

Generieren Sie PDF-Dokumente wie Entschuldigungen, Beurlaubungsanträge oder Sportbefreiungen für Schulen. Diese Dokumente werden dynamisch mit LaTeX erstellt und als PDF zurückgegeben.

Hinweis: Die PDF-Generierung ist nur für Schulen verfügbar.

Endpunkt

POST /api/v2.1/schools/:slug/documents

Verfügbare Dokumenttypen

  • entschuldigung - Entschuldigung für Fehltage (z.B. bei Krankheit)
  • beurlaubung - Antrag auf Beurlaubung vom Unterricht
  • sportbefreiung - Befreiung vom Sportunterricht

Beispiele

📄 Beispiel: Entschuldigung erstellen
curl -X POST https://www.mehr-schulferien.de/api/v2.1/schools/gymnasium-muenchen-nord/documents \
  -H "Content-Type: application/json" \
  -d '{
    "type": "entschuldigung",
    "first_name": "Max",
    "last_name": "Mustermann",
    "zip_code": "80333",
    "city": "München",
    "name_of_student": "Anna Mustermann",
    "class_name": "5a",
    "reason": "krankheit",
    "start_date": "2025-01-15",
    "end_date": "2025-01-17",
    "teacher_name": "Schmidt",
    "teacher_salutation": "Frau"
  }' \
  --output entschuldigung.pdf
📝 Beispiel: Beurlaubungsantrag erstellen
curl -X POST https://www.mehr-schulferien.de/api/v2.1/schools/gymnasium-muenchen-nord/documents \
  -H "Content-Type: application/json" \
  -d '{
    "type": "beurlaubung",
    "first_name": "Max",
    "last_name": "Mustermann",
    "zip_code": "80333",
    "city": "München",
    "name_of_student": "Anna Mustermann",
    "class_name": "5a",
    "start_date": "2025-02-10",
    "end_date": "2025-02-14",
    "detailed_reason": "Familiäre Angelegenheiten"
  }' \
  --output beurlaubung.pdf
🏃 Beispiel: Sportbefreiung erstellen
curl -X POST https://www.mehr-schulferien.de/api/v2.1/schools/gymnasium-muenchen-nord/documents \
  -H "Content-Type: application/json" \
  -d '{
    "type": "sportbefreiung",
    "first_name": "Max",
    "last_name": "Mustermann",
    "zip_code": "80333",
    "city": "München",
    "name_of_student": "Anna Mustermann",
    "class_name": "5a",
    "duration_type": "single_lesson",
    "single_date": "2025-03-20",
    "detailed_reason": "Verletzung am Fuß",
    "medical_certificate": true
  }' \
  --output sportbefreiung.pdf

Parameter

Parameter Erforderlich Beschreibung
type Ja "entschuldigung", "beurlaubung" oder "sportbefreiung"
first_name Ja Vorname des Absenders
last_name Ja Nachname des Absenders
zip_code Ja Postleitzahl
city Ja Stadt
name_of_student Ja Name des Schülers/der Schülerin
class_name Ja Klassenname (z.B. "5a")
start_date Abhängig vom Typ Startdatum (ISO 8601, z.B. "2025-01-15")
end_date Abhängig vom Typ Enddatum (ISO 8601)
reason Nur bei Entschuldigung "krankheit", "arzttermin", "familiaere_angelegenheiten", "beerdigung" oder "religioser_feiertag"
duration_type Nur bei Sportbefreiung "single_lesson" oder "multiple_days"
single_date Bei single_lesson Datum für einzelne Sportstunde (ISO 8601)
teacher_name Nein Name des Klassenlehrers/der Klassenlehrerin
teacher_salutation Nein "Herr" oder "Frau"
detailed_reason Nein Ausführliche Begründung
medical_certificate Nein Boolean - ob ärztliches Attest beigefügt wird (nur bei Sportbefreiung)

Response

Erfolg: Bei erfolgreicher Generierung wird das PDF direkt als Binary mit Content-Type application/pdf zurückgegeben. Sie können die Datei direkt speichern und öffnen.

Fehler: Bei Fehlern wird ein JSON-Objekt mit dem Feld "error" und einer Fehlerbeschreibung zurückgegeben.

Beispiel Fehler-Response:

{
  "error": "School not found"
}

HTTP-Status-Codes

  • 200 OK - PDF erfolgreich generiert
  • 400 Bad Request - Ungültige oder fehlende Parameter
  • 404 Not Found - Schule nicht gefunden

Siehe auch