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' }
VERWANDTE LINKS #
- https://developer.obwyse.com/obwyse-api/
- https://developer.obwyse.com/obwyse_api.yaml
- Format-PortInvoiceValidation
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’.