PHP · Packagist

XRechnung in PHP. Ein Composer-Require, valides XML.

Kein Mustang, kein lokales Schematron, kein JRE in der CI. composer require normbill/xrechnung — generate, validate, parse. Schlägt KoSIT fehl, ist der Pfad invoice.buyer_reference, nicht ein XPath.

API-Key holenPackagist

composer require → valides XML

composer require normbill/xrechnung
use Normbill\Xrechnung\NormbillClient;

$nb = new NormbillClient(getenv('NORMBILL_API_KEY'));
$result = $nb->generate([
    'format'  => 'xrechnung-3.0',
    'invoice' => [
        'number'          => 'INV-2026-0001',
        'issue_date'      => '2026-06-15',
        'due_date'        => '2026-07-15',
        'buyer_reference' => '04011000-1234512345-06',
        'seller' => [
            'name'    => 'Muster Lieferant GmbH',
            'vat_id'  => 'DE123456789',
            'address' => ['country' => 'DE', 'city' => 'Berlin', 'postal_code' => '10115'],
            'contact' => ['name' => 'Billing', 'phone' => '+49 30 1234567', 'email' => 'billing@lieferant.example'],
        ],
        'buyer' => [
            'name'    => 'Beispiel Kunde AG',
            'address' => ['country' => 'DE', 'city' => 'Hamburg', 'postal_code' => '20095'],
            'contact' => ['email' => 'ap@kunde.example'],
        ],
        'payment' => ['iban' => 'DE89370400440532013000'],
        'lines'   => [
            ['name' => 'Beratungsleistung', 'qty' => 10, 'unit_price' => 100, 'vat' => 19],
        ],
    ],
]);

$result['xml'] ist KoSIT-validierte XRechnung 3.0. XRechnung API · Dokumentation

Kein Java, kein Schematron lokal

KoSIT läuft bei uns. Ihre CI braucht ext-curl. PHP ≥ 8.1. Kein Mustang, kein JRE, keine gepinnten Schematron-Packs.

horstoeko / xrechnung-kit vs. API

horstoeko und xrechnung-kit sind richtig, wenn Sie XML selbst besitzen wollen. Die API ist richtig, wenn Ihr SaaS Rechnungen für Mandanten ausstellt und Sie KoSIT-Updates nicht selbst pinnen wollen. OSS-Bibliothek vs. API für XRechnung.

Generate / Validate / Parse

Dieselben drei Endpoints wie REST, auf NormbillClient:

  • generate(array $request) — JSON → validiertes XML
  • validate(string $content) — vorhandenes XML prüfen. Kostenlos im Fair-Use.
  • parse(string $content) — Empfangspflicht: XML → Rechnungs-Array

TypeScript-Pendant

npm i @normbill/xrechnung — derselbe Vertrag in TypeScript. REST bleibt die Sprache, die Clients wrappen.

Preise ohne Vertriebsanruf

Free: 50/Monat, KoSIT, Test- und Live-Keys, keine Karte. Paid ab €19. Dieselbe Fläche wie die XRechnung API.

Preise · API-Key holen

Etwas gefunden?

Fehler, fehlende Funktion, falsches Validierungsergebnis — sagen Sie es uns. Die aktuelle Seite wird automatisch mitgeschickt; E-Mail optional.