Auswerten der Umsatzsteuer-identifikation über XML
12.04.2013 11:42:39
Stefan
über die Seite https://evatr.bff-online.de/eVatR/xmlrpc/ kann man per xml-Schnittstelle die überprüfung der UstId abfragen.
Ich habe mit hilfe eines anderen Forums die Abfrage soweit auch hinbekommen. (thread von 2009).
Leider fehlt mir die Auswertung von Datum Ort Straße PLZ
Ich habe folgenden VBA-Code
Public Function CheckUST(strURL As String, Optional ByRef strGueltigVon As String = "", _
Optional ByRef strGueltigBis As String = "") As Integer
Dim oXmlHttp As Object
Dim oXmlDocReponse As Object
Dim strXmlReponse As String
Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")
Set oXmlDocReponse = CreateObject("MSXML2.DOMDocument")
oXmlHttp.Open "GET", strURL, True
oXmlHttp.send Null
Do Until oXmlHttp.readystate = 4: DoEvents: Loop
strXmlReponse = oXmlHttp.responseText
With oXmlDocReponse
.SetProperty "ServerHTTPRequest", True
.async = False
.LoadXML strXmlReponse
End With
CheckUST = oXmlDocReponse.ChildNodes(0).ChildNodes(1).ChildNodes(0).ChildNodes(0).ChildNodes(0). _
_
ChildNodes(1).Text * 1
strGueltigVon = oXmlDocReponse.ChildNodes(0).ChildNodes(11).ChildNodes(0).ChildNodes(0). _
ChildNodes(0).ChildNodes(1).Text
strGueltigBis = oXmlDocReponse.ChildNodes(0).ChildNodes(12).ChildNodes(0).ChildNodes(0). _
ChildNodes(0).ChildNodes(1).Text
Set oXmlHttp = Nothing
Set oXmlDocReponse = Nothing
End Function
Sub CheckFile()
Dim rngRange As Range
Set rngRange = Range("i2:i11")
Dim rngCell As Range, intRes As Integer, strResponse As String, strGueltigVon As String, _
strGueltigBis As String
For Each rngCell In rngRange
intRes = CheckUST(rngCell.Text, strGueltigVon, strGueltigBis)
Select Case intRes
Case 200: strResponse = "Die angefragte USt-IdNr. ist gültig."
Case 201: strResponse = "Die angefragte USt-IdNr. ist ungültig."
Case 202: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie ist nicht in der _
Unternehmerdatei des betreffenden EU-Mitgliedstaates registriert."
Case 203: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie ist erst ab dem " & _
_
strGueltigVon & " gültig."
Case 204: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie war im Zeitraum von _
_
" & strGueltigVon & " bis " & strGueltigBis & " gültig."
Case 205: strResponse = "Ihre Anfrage kann derzeit durch den angefragten EU- _
Mitgliedstaat oder aus anderen Gründen nicht beantwortet werden. Bitte versuchen Sie es später _
noch einmal. Bei wiederholten Problemen wenden Sie sich bitte an das Bundeszentralamt für Steuern - Dienstsitz Saarlouis."
Case 206: strResponse = "Ihre deutsche USt-IdNr. ist ungültig. Eine Bestätigungsanfrage _
_
ist daher nicht möglich. Den Grund hierfür können Sie beim Bundeszentralamt für Steuern - _
Dienstsitz Saarlouis - erfragen."
Case 207: strResponse = "Ihnen wurde die deutsche USt-IdNr. ausschliesslich zu Zwecken _
_
der Besteuerung des innergemeinschaftlichen Erwerbs erteilt. Sie sind somit nicht berechtigt, _
Bestätigungsanfragen zu stellen. "
Case 208: strResponse = "Für die von Ihnen angefragte USt-IdNr. läuft gerade eine _
Anfrage von einem anderen Nutzer. Eine Bearbeitung ist daher nicht möglich. Bitte versuchen Sie _
es später noch einmal. "
Case 209: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht _
dem Aufbau der für diesen EU-Mitgliedstaat gilt."
Case 210: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht _
den Prüfziffernregeln die für diesen EU-Mitgliedstaat gelten."
Case 211: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie enthält unzulässige _
_
Zeichen. "
Case 212: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie enthält ein unzulä _
_
ssiges Länderkennzeichen. "
Case 213: strResponse = "Die Abfrage einer deutschen USt-IdNr. ist nicht möglich. "
Case 214: strResponse = "Ihre deutsche USt-IdNr. ist fehlerhaft. Sie beginnt mit 'DE' _
_
gefolgt von 9 Ziffern. "
Case 215: strResponse = "Ihre Anfrage enthält nicht alle notwendigen Angaben für eine _
_
einfache Bestätigungsanfrage (Ihre deutsche USt-IdNr. und die ausl. USt-IdNr.). "
Case 216: strResponse = "Ihre Anfrage enthält nicht alle notwendigen Angaben für eine _
_
qualifizierte Bestätigungsanfrage (Ihre deutsche USt-IdNr., die ausl. USt-IdNr., Firmenname _
einschl. Rechtsform und Ort). Die angefragte USt-IdNr. ist gültig. "
Case 217: strResponse = "Bei der Verarbeitung der Daten aus dem angefragten EU- _
Mitgliedstaat ist ein Fehler aufgetreten. Ihre Anfrage kann deshalb nicht bearbeitet werden. "
Case 218: strResponse = "Eine qualifizierte Bestätigung ist zur Zeit nicht möglich. Es _
_
wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis durchgeführt: Die angefragte USt- _
IdNr. ist gültig. "
Case 219: strResponse = "Bei der Durchführung der qualifizierten Bestätigungsanfrage _
ist ein Fehler aufgetreten. Es wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis _
durchgeführt: Die angefragte USt-IdNr. ist gültig. "
Case 220: strResponse = "Bei der Anforderung der amtlichen Bestätigungsmitteilung ist _
_
ein Fehler aufgetreten. Sie werden kein Schreiben erhalten. "
Case 999: strResponse = "Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich. _
Bitte versuchen Sie es später noch einmal. "
End Select
rngCell.Offset(0, 1) = intRes
rngCell.Offset(0, 2) = strResponse
Next
End Sub
Der ausgewertete Code der Webseite sieht so aus:
UstId_1 DE1111111 ErrorCode 200 UstId_2 SI1111111 Druck ja Erg_PLZ A Ort Rom Datum 12.04.2013 PLZ IT-2500 Erg_Ort A Uhrzeit 09:16:19 Erg_Name A Gueltig_ab Gueltig_bis Strasse Colloseumweg 48 Firmenname Vatikan gmbh Erg_Str A
mit dem obigen Script wird der errorcode ausgelesen und die antwort ausgegeben.
jetzt würde ich gerne in den Excelspalten L= Datum M=Erg_Name ( in dem Fall wäre das "A") N=Erg_Ort O=Erg_PLZ P=Erg_Str ausgegeben bekommen.
könnt Ihr mir helfen?