Invoke Port Invoice Validation
Zuletzt geändert: 28.07.2026 10:05

Übersicht

Invoke-PortInvoiceValidation #

ÜBERSICHT #

Validiert eine E-Rechnung (XML oder ZUGFeRD-PDF) über die portinvoice.com API.

SYNTAX #

Invoke-PortInvoiceValidation [-FilePath] <string> [[-ApiToken] <string>] [[-Validators] <string[]>]
    [[-Language] <string>] [[-ResponseFormat] <string>] [[-BaseUrl] <string>] [-Sandbox] [-Raw]
    [<CommonParameters>]

BESCHREIBUNG #

Sendet eine Rechnungsdatei an die portinvoice.com REST-API und gibt das Validierungsergebnis strukturiert zurück. Unterstützt die Validatoren Mustang, KoSIT und Valitool.

Voraussetzung: Ein portinvoice.com-Konto mit Embedded-Edition-Zugang (25 EUR/Monat). Der API-Token wird im Konto unter OpenAPI generiert.

Der Token muss nicht im Skript stehen. Fehlt ‘-ApiToken’, wird er über ‘Get-ObwyseApiToken’ aus der Umgebungsvariablen ‘OBWYSE_API_TOKEN’ geholt. Damit lassen sich Tests und Automatisierungen betreiben, ohne den Token irgendwo abzulegen.

Mit ‘-Sandbox’ geht der Aufruf an den Sandbox-Server. Die Sandbox prüft nicht wirklich, sondern liefert feste Antworten: eine Datei mit dem Namen ’test_invalid.xml’ ergibt ein ungültiges Ergebnis, jede andere Datei ein gültiges. Das ist der saubere Weg, die Anbindung zu testen, ohne Kontingent zu verbrauchen.

Für eine lesbare Ausgabe des Ergebnisses gibt es ‘Format-PortInvoiceValidation’.

PARAMETER #

-FilePath #

Type: string

Pfad zur Rechnungsdatei (XML oder PDF).

-ApiToken #

Type: string

Bearer-Token für die portinvoice.com API (aus dem Konto-Bereich). Optional, Standard ist die Umgebungsvariable ‘OBWYSE_API_TOKEN’.

-Validators #

Type: string[]
Default: @('mustang'

Array der zu verwendenden Validatoren. Standard: alle drei. Mögliche Werte: ‘mustang’, ‘kosit’, ‘valitool’.

-Language #

Type: string
Default: 'de'

Sprache für die Validierungsmeldungen. Standard: ‘de’.

-ResponseFormat #

Type: string
Default: 'xml'

Format der Antwort: ‘xml’ (Standard, wird als Objekt geparst) oder ‘pdf’.

-BaseUrl #

Type: string

Basis-URL der API. Ohne Angabe wird ‘https://portinvoice.obwyse.net/API' verwendet, mit ‘-Sandbox’ stattdessen ‘https://sandbox.obwyse.net/API'. Eine ausdrückliche Angabe hat immer Vorrang.

-Sandbox #

Type: switch

Verwendet den Sandbox-Server. Die Sandbox liefert feste Antworten, siehe Beschreibung.

-Raw #

Type: switch

Gibt die rohe API-Antwort zurück statt eines aufbereiteten Objekts.

AUSGABEN #

PSCustomObject

Objekt mit Specification, Recommendation, Details und RateLimit-Informationen.

BEISPIELE #

Invoke-PortInvoiceValidation -FilePath 'rechnung.pdf' -ApiToken 'eyJ...'
Invoke-PortInvoiceValidation -FilePath 'factur-x.xml' -ApiToken 'eyJ...' -Validators @('kosit')
$result = Invoke-PortInvoiceValidation -FilePath 'zugferd.pdf' -ApiToken $token
if ($result.Specification -eq 'FULLY_VALID') { Write-Host 'Rechnung ist valide' }

HINWEISE #

  • Die Bewertung steht in ‘Specification’ und ‘Recommendation’, die Einzelprüfungen in ‘PreValidation’. Beide Wertelisten sind in der Spezifikation der API beschrieben, siehe .LINK.
  • Für eine lesbare Ausgabe gibt es ‘Format-PortInvoiceValidation’.
  • Das Kontingent füllt sich stündlich wieder auf, der Zeitpunkt steht als Unix-Zeitstempel in ‘RateLimit.Reset’.