Automatisierte Umsatzsteuer ID Abfrage

Lassen Sie von Workflow+ automatisch die Umsatzsteuer-Identifikationsnummer Ihres Kunden prüfen. Mit dem automatisierten Abgleich, wird die entsprechende Nummer und der Firmennamen mit den Angaben beim Bundeszentralamt für Steuern verglichen. Nach der Prüfung wird Ihnen direkt angezeigt, ob die Angaben passen oder ein Fehler aufgetreten ist. Mit untenstehendem Code können Sie eine einfach Prüfung vornehmen. Eine mögliche Erweiterung wäre eine Mailbenachrichtung oder die Sperrung des Vorgangs. Probieren Sie es doch gleich aus!

Declare lTemp as String
Declare lURL as String
Declare lXml as XmlElement
Declare lXml2 as XmlElement
Declare lXmlList as XmlElementList
Declare lXmlList2 as XmlElementList
Declare lEigeneUstID as String
Declare lKundeUstID as String
Declare lFirma as String
Declare lOrt as String
Declare lPLZ as String
Declare lStrasse as String
Declare lMandant as String
Declare lAntwortCode as String
Declare lIndex as Integer
Declare lIndex2 as Integer
Declare lFehler as String
Declare lFehlercodes as Dictionary


lFehlercodes["200"] = "Die angefragte USt-IdNr. ist gültig."
lFehlercodes["201"] = "Die angefragte USt-IdNr. ist ungültig."
lFehlercodes["202"] = "Die angefragte USt-IdNr. ist ungültig. Sie ist nicht in der Unternehmerdatei des betreffenden EU-Mitgliedstaates registriert."
lFehlercodes["203"] = "Die angefragte USt-IdNr. ist noch nicht gültig."
lFehlercodes["204"] = "Die angefragte USt-IdNr. ist nicht mehr gültig."
lFehlercodes["205"] = "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."
lFehlercodes["206"] = "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."
lFehlercodes["208"] = "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."
lFehlercodes["209"] = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht dem Aufbau der für diesen EU-Mitgliedstaat gilt."
lFehlercodes["210"] = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht den Prüfziffernregeln die für diesen EU-Mitgliedstaat gelten."
lFehlercodes["211"] = "Die angefragte USt-IdNr. ist ungültig. Sie enthält unzulässige Zeichen (wie z.B. Leerzeichen oder Punkt oder Bindestrich usw.)."
lFehlercodes["212"] = "Die angefragte USt-IdNr. ist ungültig. Sie enthält ein unzulässiges Länderkennzeichen."
lFehlercodes["213"] = "Sie sind nicht zur Abfrage einer deutschen USt-IdNr. berechtigt."
lFehlercodes["214"] = "Ihre deutsche USt-IdNr. ist fehlerhaft. Sie beginnt mit 'DE' gefolgt von 9 Ziffern."
lFehlercodes["215"] = "Ihre Anfrage enthält nicht alle notwendigen Angaben für eine einfache Bestätigungsanfrage (Ihre deutsche USt-IdNr. und die ausl. USt-IdNr.). Ihre Anfrage kann deshalb nicht bearbeitet werden."
lFehlercodes["216"] = "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). Es wurde eine einfache Bestätigungsanfrage durchgeführt mit folgenden Ergebnis: Die angefragte USt-IdNr. ist gültig."
lFehlercodes["217"] = "Bei der Verarbeitung der Daten aus dem angefragten EU-Mitgliedstaat ist ein Fehler aufgetreten. Ihre Anfrage kann deshalb nicht bearbeitet werden."
lFehlercodes["218"] = "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."
lFehlercodes["219"] = "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."
lFehlercodes["221"] = "Die Anfragedaten enthalten nicht alle notwendigen Parameter oder einen ungültigen Datentyp."
lFehlercodes["223"] = "Die angefragte USt-IdNr. ist gültig. Die Druckfunktion steht nicht mehr zur Verfügung, da der Nachweis gem. UStAE zu § 18e.1 zu führen ist."



--Zuerst eigene UstID auslesen
lMandant = GetBueroPlusMandant()
If GetTable("Mandant", "Nr", "MandNr", lMandant)
  lEigeneUstID = Mandant.UStId
  
  --Nur Bestellungen vom Kunden prüfen
  If Vorgang.Art = 30 Then
    If GetTable("Adressen", "Nr", "AdrNr", Vorgang.AdrNr) Then
      
      lFirma = Vorgang.ReNa2
      lOrt = Vorgang.ReOrt
      lPLZ = Vorgang.RePLZ
      lStrasse = Vorgang.ReStr
      lKundeUstID = Replace(Vorgang.UStId, ".", "")
      
      lURL = "https://evatr.bff-online.de/evatrRPC?UstId_1=" + lEigeneUstID + "&UstId_2=" + lKundeUstID + "&Firmenname=" + lFirma + "&Ort=" + lOrt + "&PLZ=" + lPLZ + "&Strasse=" + lStrasse
      
      lTemp = HttpRequest2(lURL, "", "text/xml")
      lXml = XmlElementCreate(lTemp)
      
      lXmlList = XmlGetElementList(lXml, "param")
      
      For lIndex = 0 To MaxIndex(lXmlList)
        
        lXml2 = XmlGetElement(lXmlList[lIndex], "value/array/data")
        lXmlList2 = XmlGetElementList(lXml2, "value")
        lTemp = XmlGettext(lXmlList2[0], "string")
        
        If lTemp = "ErrorCode" Then
          lAntwortCode = XmlGettext(lXmlList2[1], "string")
          
          --Bei Code 999, 205, 208 Abfrage später nochmals ausführen, sonst das Ergebnis der Prüfung eintragen
          If not lAntwortCode = "999" or lAntwortCode = "205" or lAntwortCode = "208" Then
            --Vorgang.SelXYZ = true
            --Vorgang.SelXYZ = lFehlercodes[lAntwortCode]
            --Vorgang.SelXYZ = DateTimeFormat(NowDate, "dd.MM.yyyy")
            --Vorgang.SelXYZ = lURL
            
          EndIf
          ExitFor
        EndIf
      Next
    EndIf
  EndIf
EndIf

 

Copyright 2023 Workflow+