TBeCbVATVerification
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,
                                    