⚡ JavaScript · Node.js · fetch · FormData

Rechnungen mit JavaScript automatisch analysieren

Binden Sie die Steuerscan API in Ihre JavaScript- oder Node.js-Anwendung ein — mit fetch und FormData, ohne externe Abhängigkeiten.

Zuletzt aktualisiert: 17. März 2026

Voraussetzungen

  • Node.js 18+ — fetch() ist seit Node.js 18 nativ verfügbar
  • API-Schlüssel — kostenlos erstellen unter Dashboard → API-Schlüssel
  • Keine npm-Pakete nötig — fetch und FormData sind in Node.js 18+ und jedem modernen Browser eingebaut

Node.js-Beispiel

import { readFile } from "fs/promises";

const API_KEY = "sk_live_IHR_SCHLÜSSEL"; // oder sk_test_... zum Testen
const API_URL = "https://api.steuerscan.de/api/v1/process";
// Zum Testen: const API_URL = "https://api.steuerscan.de/api/v1/test/process";

async function analyseRechnung(dateipfad, beruf = "") {
  const dateiinhalt = await readFile(dateipfad);
  const dateiname = dateipfad.split("/").pop();

  const formData = new FormData();
  formData.append("file", new Blob([dateiinhalt]), dateiname);
  if (beruf) formData.append("job_description", beruf);

  const response = await fetch(API_URL, {
    method: "POST",
    headers: { "X-API-Key": API_KEY },
    body: formData,
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(`API-Fehler ${response.status}: ${error.detail}`);
  }
  return response.json();
}

// Beispielaufruf
const ergebnis = await analyseRechnung("./rechnung.pdf", "Software Developer");
const { kategorie, absetzbar, grund } = ergebnis.results;
console.log(`Kategorie:  ${kategorie}`);
console.log(`Absetzbar:  ${absetzbar}`);
console.log(`Begründung: ${grund}`);
console.log(`Credits:    ${ergebnis.credits_remaining} verbleibend`);

Browser-Beispiel (File-Input)

Hinweis: Der API-Schlüssel sollte bei produktiven Anwendungen serverseitig gehalten werden, damit er nicht im Browser-Code sichtbar ist.
// HTML: <input type="file" id="datei" accept=".pdf,.jpg,.png">
//       <button onclick="analysieren()">Analysieren</button>

async function analysieren() {
  const input = document.getElementById("datei");
  const datei = input.files[0];
  if (!datei) return alert("Bitte eine Datei auswählen.");

  const formData = new FormData();
  formData.append("file", datei);

  const response = await fetch("https://api.steuerscan.de/api/v1/process", {
    method: "POST",
    headers: { "X-API-Key": "sk_live_IHR_SCHLÜSSEL" },
    body: formData,
  });

  if (!response.ok) {
    const err = await response.json();
    alert(`Fehler: ${err.detail}`);
    return;
  }

  const ergebnis = await response.json();
  const r = ergebnis.results;
  console.log(`${r.kategorie} – ${r.absetzbar ? "absetzbar" : "nicht absetzbar"}`);
}

Antwort-Struktur

Die API gibt ein strukturiertes JSON-Objekt zurück:

{
  "results": {
    "kategorie": "Arbeitsmittel",
    "absetzbar": true,
    "absetzbar_fuer_bestimmte_berufe": false,
    "grund": "Der Laptop ist als ...",
    "bedingungen": [],
    "hinweise": ["GWG bis 800€ ..."]
  },
  "credits_remaining": 42
}

Fehlerbehandlung

async function analyseRechnungMitFehler(dateipfad) {
  try {
    const ergebnis = await analyseRechnung(dateipfad);
    return ergebnis;
  } catch (error) {
    if (error.message.includes("401")) {
      console.error("Ungültiger API-Schlüssel.");
    } else if (error.message.includes("403")) {
      console.error("Keine Credits mehr. Bitte Credits kaufen.");
    } else {
      console.error("Fehler:", error.message);
    }
    return null;
  }
}

Häufige Fragen

Welche Node.js-Version wird benötigt?

Node.js 18 oder neuer. fetch() ist seit Node.js 18 nativ verfügbar — keine zusätzlichen Pakete nötig.

Kann ich die API auch im Browser nutzen?

Ja. Bei Produktivanwendungen sollten Sie den API-Schlüssel über Ihren eigenen Server weiterleiten.

Gibt es ein offizielles JavaScript-SDK?

Nein, aber fetch() und FormData sind in jedem modernen Browser und Node.js 18+ eingebaut.

Jetzt kostenlos starten

Registrieren Sie sich, erhalten Sie 5 Credits gratis und integrieren Sie die Steuerscan API in wenigen Minuten in Ihre JavaScript-Anwendung.