TBeCbVATVerification
Klasse zur qualifizierten Prüfung von Umstatzsteuer-Nummern (USt-ID) mit integriertem Caching.
Zur qualifizierten Prüfung wird der externe Service des Bundeszentralamt für Steuern (http://evatr.bff-online.de/eVatR/) verwendet.
Für die Prüfung von deutschen USt-IDs oder wenn der Service nicht verfügbar ist, wird eine normale Prüfung über den externen Service der Europäischen Kommission (https://ec.europa.eu/taxation_customs/vies/#/vat-validation) ausgeführt.
Eigenschaften
|
Eigenschaft |
Beschreibung |
|---|---|
|
CbSenderVATID:C |
Eigene USt-ID (engl.: VAT-No.) |
|
CbRequestVATID:C |
USt-ID die geprüft werden soll |
|
CbRequestName:C |
Name der Firma die geprüft werden soll (Pflicht für qual. Prüfung) |
|
CbRequestCity:C |
Ort der Firma die gepüft werden soll (Pflicht für qual. Prüfung, kann auch die PLZ enthalten) |
|
CbRequestPostCode:C |
Postleitzahl der Firma die geprüft werden soll |
|
CbRequestStreet:C |
Straße der Firma die gepüft werden soll |
|
CbRequestPrintedProtocol:L |
Protokoll der Anfrage wird auch als gedruckte Version per Post an die hinterlegte Adresse der CbSenderVATID geschickt
|
|
CbTimeOut:N |
Zeit in Millisekunden bis die Abfrage abbricht, wenn keine Antwort erfolgt
|
|
CbUseSimpleVerificationAfterTimeOut:L |
Einfache Prüfung verwenden, falls qualifizierte Prüfung nicht möglich war
|
|
CbValidCacheDays:N |
Anzahl der Tage wie lange eine bereits erfolgte Prüfung nicht online abgefragt wird
|
|
CbUseCache:L |
Cache-Logik verwenden
|
|
CbUserAgent:C |
UserAgent für den HTTP Request |
|
CbCacheDataSet:O |
Tabelle in welcher die Cache-Einträge gespeichert werden
VATID C NAME C ORT C PLZ C STRASSE C ERG_NAME N ERG_ORT N ERG_PLZ N ERG_STR N GUELTIGAB D GUELTIGBIS D PRUEFDATUM T ERR_CODE N |
|
CbResult_ErrorCode:N |
Ergebnis der Prüfung, siehe http://evatr.bff-online.de/eVatR/xmlrpc/codes |
|
CbResultCode_Name:N |
Ergebnis der Überprüfung des Firmen-Namens
vatrcUnkown nicht definiert vatrcValid stimmt überein vatrcInvalid stimmt nicht überein vatrcNotRequested nicht angefragt vatrcNotSupported vom EU-Mitgliedsstaat nicht mitgeteilt Diese können mittels der Funktion VATResultCodeToText() auch in übersetzbaren Text umgewandelt werden. |
|
CbResultCode_City:N |
Ergebnis der Überprüfung des Firmen-Orts
|
|
CbResultCode_PostCode:N |
Ergebnis der Überprüfung der Firmen-Postleitzahl
|
|
CbResultCode_Street:N |
Ergebnis der Überprüfung der Firmen-Straße
|
|
CbResult_RequestDateTime:D |
Zeitpunkt der Prüfung |
|
CbResult_ValidFrom:D |
Zeitpunkt ab welchem die zu prüfende USt-ID gültig ist |
|
CbResult_ValidUntil:D |
Zeitpunkt bis zu welchem die zu prüfende USt-ID gültig ist |
|
CbVerifyUsingBZST:L |
REST-API für Qualifizierte Anfragen über BZST hernehmen |
|
CbErrorCode_BZST:TbeCbBZSTErrorCode |
Errorcode der REST-API |
Funktionen und Methoden
|
Funktion / Methode |
Beschreibung |
|---|---|
|
CbVerify():L |
Prüfung ausführen. Rückgabe logisch, ob USt-ID generell gültig |
|
CbClearCache() |
kompletten Cache löschen (Achtung: bei zugewiesenem CacheDataSet wird dieses geleert!) |
Beispiel
|oVerify, lResult|
oVerify := CreateObject('TBeCbVATVerification'),
StartSeq
oVerify.CbTimeOut := 3000,
oVerify.CbValidCacheDays := 1,
oVerify.CbUseCache := True,
oVerify.CbUseSimpleVerificationAfterTimeOut := True,
oVerify.CbRequestPrintedProtocol := False,
oVerify.CbSenderVATID := '', // hier die eigene USt-Id eintragen
oVerify.CbRequestVATID := 'IT00348170101',
oVerify.CbRequestName := 'UniCredit S.p.A.',
oVerify.CbRequestCity := '00186 Roma',
oVerify.CbRequestPostCode := '00186',
oVerify.CbRequestStreet := 'Via A. Specchi 16',
lResult := oVerify.CbVerify(),
WriteLn('*** USt-ID generell gültig ***'),
WriteLn('Gültig: ', lResult),
WriteLn('*** Gültigkeits-Informationen ***'),
WriteLn('Code: ', oVerify.CbResult_ErrorCode),
WriteLn('Name: ', oVerify.CbResultCode_Name),
WriteLn('Ort: ', oVerify.CbResultCode_City),
WriteLn('PLZ: ', oVerify.CbResultCode_PostCode),
WriteLn('Strasse: ', oVerify.CbResultCode_Street),
WriteLn('Abfrage Datum: ', oVerify.CbResult_RequestDateTime),
WriteLn('Gültig ab: ', oVerify.CbResult_ValidFrom),
WriteLn('Gültig bis: ', oVerify.CbResult_ValidUntil),
Always
DestroyObject(oVerify),
StopSeq,