Zum Hauptinhalt springen

USt-IdNr. Validierung

Mit der VatValidator Klasse können Umsatzsteuer-Identifikationsnummer validiert und formatiert werden. Neben der 'einfachen' Validierung über Regex-Patterns, steht auch eine Validierung über den Online Webservice der Europäischen Kommission MwSt-Informationsaustauschsystem (MIAS) und der Bundeszentralamt für Steuern zur Verfügung.

vorsicht

Die Online-Validierungen rufen einen 3rd-Party-Webservice auf. Im Prozess muss daher unbedingt sichergestellt werden, dass bei Nichterreichbarkeit der Services der Prozess den Endanwender nicht blockiert (beispielsweise über verschiedene Status in der Mappe).

context.enableModules();
const { VatValidator } = require("ou.sp.validation.VatValidator");

const isValid = VatValidator.isValidByPattern("de-306219982");
// isValid = true

Statische Funktionen

isValidByPattern : boolean

Über diese Funktion wird eine USt-IdNr. validiert. Die Validierung erfolgt dabei lokal über ein Standardsatz an Regulären Ausdrücken. Es werden keine HTTP-Request abgesetzt.

VatValidator.isValidByPattern(vat: string): boolean;

Beispiel:

// returns true
VatValidator.isValidByPattern("de-306219982");
VatValidator.isValidByPattern("DE-306219982");

// returns false
VatValidator.isValidByPattern("DEU-306219982");
hinweis

Diese Funktion wird keine Exception werfen, wenn z. B. das Land nicht erkannt wird.

isValidByUsingEUService : boolean

Bei dieser Funktion wird die USt-IdNr. über den EU-Webservice (MIAS) validiert.

vorsicht

Dies ist eine asynchrone Funktion, welche einen 3rd-Party-Webservice verwendet. Im Prozess muss unbedingt sichergestellt werden, dass bei Nichterreichbarkeit des Services der Prozess den Endanwender nicht blockiert (beispielsweise über verschiedene Status in der Mappe).

VatValidator.isValidByUsingEUService(vat: string): boolean;

Beispiel:

// returns true
VatValidator.isValidByUsingEUService("de-306219982", true);
VatValidator.isValidByUsingEUService("DE-306219982", true);

// returns false
VatValidator.isValidByUsingEUService("DEU-306219982", true);
hinweis

Diese Funktion wird keine Exception werfen, wenn z. B. der Service nicht erreichbar ist!

isValidByUsingBzStService : boolean

Bei dieser Funktion wird die USt-IdNr. über den Webservice des Bundeszentralamts für Steuern validiert.

vorsicht

Dies ist eine asynchrone Funktion, welche einen 3rd-Party-Webservice verwendet. Im Prozess muss unbedingt sichergestellt werden, dass bei Nichterreichbarkeit des Services der Prozess den Endanwender nicht blockiert (beispielsweise über verschiedene Status in der Mappe).

public static isValidByUsingEUService(ownerVat: string, companyVat: string): boolean;
VatValidator.isValidByUsingEUService(
ownerVat: string,
companyVat: string,
companyName: string,
companyCity: string,
companyZipCode?: string,
companyStreet?: string
): boolean;

Beispiel:

// returns true
VatValidator.isValidByUsingBzStService("DE306219982", "NL809075349B01");
VatValidator.isValidByUsingBzStService("DE306219982", "NL809075349B01", "WILDLANDS Adventure Zoo Emmen B.V", "Emmen", "Raadhuisplein 99");
hinweis

Diese Funktion wird keine Exception werfen, wenn z. B. der Service nicht erreichbar ist!

validateByPattern : boolean

Über diese Funktion wird eine USt-IdNr. validiert. Die Validierung erfolgt dabei lokal über ein Standardsatz an Regulären Ausdrücken. Es werden keine HTTP-Request abgesetzt.

vorsicht

Der Unterschied zur isValidByPattern Funktion ist, dass diese Funktion eine Exception wirft.

VatValidator.validateByPattern(vat: string): boolean;

Beispiel einfache Validierung einer USt-IdNr. über Regex-Patterns.

try {
VatValidator.validateByPattern("DEU-306219982");
} catch (error) {
// error.message = "No country found for DEU-306219982"
}

validateByUsingEUService : boolean

Über diese Funktion wird eine USt-IdNr. über den EU-Webservice MIAS validiert.

vorsicht

Dies ist eine asynchrone Funktion, welche einen 3rd-Party-Webservice verwendet. Im Prozess muss unbedingt sichergestellt werden, dass bei Nichterreichbarkeit des Services der Prozess den Endanwender nicht blockiert (beispielsweise über verschiedene Status in der Mappe).

vorsicht

Der Unterschied zur isValidByUsingEUService Funktion ist, dass diese Funktion eine Exception wirft.

VatValidator.validateByUsingEUService(vat: string): boolean;

Beispiel:

try {
VatValidator.validateByUsingEUService("DEU-306219982");
} catch (error) {
// error.message = "No country found for DEU-306219982"
}

Beispiel Fehler einer USt-IdNr. über den Webservice (MIAS), wenn z. B. zu viele Requests geschickt wurden 😆.

try {
VatValidator.validateByUsingEUService("DEU-306219982", true);
} catch (error) {
// error.message = "Failed to check online vat, error: Service error: MS_MAX_CONCURRENT_REQ"
}

validateByUsingBzStService : boolean

Über diese Funktion wird eine USt-IdNr. über den Webservice des Bundeszentralamts für Steuern validiert.

vorsicht

Dies ist eine asynchrone Funktion, welche einen 3rd-Party-Webservice verwendet. Im Prozess muss unbedingt sichergestellt werden, dass bei Nichterreichbarkeit des Services der Prozess den Endanwender nicht blockiert (beispielsweise über verschiedene Stati in der Mappe).

vorsicht

Der Unterschied zur isValidByUsingBzStService Funktion ist, dass diese Funktion eine Exception wirft.

validateByUsingBzStService(ownerVat: string, companyVat: string): BzStServiceResponse;
validateByUsingBzStService(
ownerVat: string,
companyVat: string,
companyName: string,
companyCity: string,
companyZipCode?: string,
companyStreet?: string
): BzStServiceResponse;

Beispiel:

try {
VatValidator.validateByUsingBzStService("DE306219982", "NL809075349B01");
} catch (error) {
// error.message = "Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich. Bitte versuchen Sie es später noch einmal. (999)"
}
try {
VatValidator.validateByUsingBzStService("DE306219982", "NL809075349B01", "WILDLANDS Adventure Zoo Emmen B.V", "Emmen", "Raadhuisplein 99");
} catch (error) {
// error.message = "Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich. Bitte versuchen Sie es später noch einmal. (999)"
}

format : string

Formatiert eine USt-IdNr. in ein Standard Format.

hinweis

Die USt-IdNr. wird dabei nicht validiert!

VatValidator.format(vat?: string): string | null;
const formatted = VatValidator.format("de-306219982");
// formatted = "DE306219982"