Beschreibung:
Führt online beim Bundeszentralamt für Steuern eine qualifizierte Bestätigungsanfrage einer ausländischen Umsatzsteuer-Identifikationsnummer durch (vgl. §6a Ziff. 3 UstG). Beachten Sie dazu die Hinweise auf der Website des Bundeszentralamt für Steuern.
Was ist der Unterschied zwischen einer einfachen und einer qualifizierten Bestätigung?
Bei einer einfachen Bestätigung erhalten Sie Auskunft darüber, ob eine ausländische USt-IdNr. zum Zeitpunkt der Anfrage in dem Mitgliedstaat, der sie erteilt hat, gültig ist.
Eine einfache Bestätigung muss zwingend vor einer qualifizierten Bestätigung durchgeführt werden.
Bei einer qualifizierten Bestätigung können Sie darüber hinaus abfragen, ob die von Ihnen mitgeteilten Angaben zu
Firmenname (einschließlich der Rechtsform),
Ort,
Postleitzahl,
Straße/Haus-Nr.,
mit den in der Unternehmerdatei des jeweiligen EU-Mitgliedstaates registrierten Daten übereinstimmen.
Wichtig: Zum Aufruf der Methode wird eine Internetverbindung vorausgesetzt.
Parameter:
Die folgenden Parameter gelten für die Abfrage:
|
Parametername |
Typ |
Beschreibung |
Pflicht |
|
VATID_1 |
String |
Ihre deutsche Ust-IdNr. |
Ja |
|
VATID_2 |
String |
Anzufragende ausländische Ust-IdNr. |
Ja |
|
Company |
String |
Name der anzufragenden Firma einschl. Rechtsform |
Ja |
|
City |
String |
Ort der anzufragenden Firma |
Ja |
|
ZIP |
String |
Postleitzahl der anzufragenden Firma |
Nein |
|
Street |
String |
Straße und Hausnummer der anzufragenden Firma |
Nein |
|
<reserviert> |
Bool |
Dieser Parameter ist reserviert. |
Nein |
Die folgenden Parameter werden von der Abfrage mit Ergebniswerten gefüllt, die dann weiterverarbeitet werden können:
|
Parametername |
Typ |
Beschreibung |
|
Date |
String |
Datum der Anfrage (Format: tt.mm.jjjj) |
|
Time |
String |
Uhrzeit der Anfrage (Format: hh:mm:ss) |
|
ErrorCode |
String |
Fehlernummer der Anfrage (Übersicht der ErrorCodes) |
|
ResultName |
String |
Ergebnis für den angefragten Namen der Firma |
|
ResultCity |
String |
Ergebnis für den angefragten Ort der Firma |
|
ResultZIP |
String |
Ergebnis für die angefragte Postleitzahl der Firma |
|
ResultStreet |
String |
Ergebnis für die angefragte Straße der Firma |
|
ValidFrom |
String |
Wird nur bei ErrorCode 203 bzw. 204 angegeben. Beginn der Gültigkeit der ausländischen Ust-IdNr. (Format: tt.mm.jjjj) |
|
ValidTo |
String |
Wird nur bei ErrorCode 204 angegeben. Ende der Gültigkeit der ausländischen Ust-IdNr. (Format: tt.mm.jjjj) |
|
ConnectionError |
String |
Enthält eine Fehlermeldung, wenn es zu einem Fehler während der HTTP-Anfrage gekommen ist |
|
ResponseStream |
String |
Enhält die komplette Antwort, die vom Server zurückgegeben wird |
Folgende Werte sind als Ergebnis für die Parameter ResultName, ResultCity, ResultZIP und ResultStreet möglich:
A = stimmt überein
B = stimmt nicht überein
C = nicht angefragt
D = vom EU-Mitgliedsstaat nicht mitgeteilt
Rückgabewert:
Bool
True: Wird zurückgeliefert, wenn
•der ErrorCode den Wert 200 hat und die Parameter Company, City, ZIP und Street übergeben wurden und die Ergebnisparameter ResultName, ResultCity, ResultZIP und ResultStreet den Wert 'A' haben.
•der ErrorCode den Wert 200 hat und die Ergebnisparameter ResultName und ResultCity den Wert 'A' haben und ResultZIP und ResultStreet den Wert 'C' haben, da sie nicht übergeben wurden.
Beispiel VBScript:
Dim oProject : Set oProject = cRM.CurrentProject
Dim oCurrentInputForm : Set oCurrentInputForm = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(2)
Dim sVATID_1, sVATID_2, sCompany, sCity, sZIP, sStreet, bPrint, sDate, sTime, sErrorCode, sResultName, sResultCity, sResultZIP, sResultStreet, sValidFrom, sValidTo, sConnectionError, sResponseStream
sVATID_1 = oProject.CompanyInfo.VATID
sVATID_2 = oCurrentInputForm.GetContentsByName(sColumnName_VAT_ID)
sCompany = oCurrentInputForm.GetContentsByName(sColumnName_Company)
sCity = oCurrentInputForm.GetContentsByName(sColumnName_City)
sZIP = oCurrentInputForm.GetContentsByName(sColumnName_ZIP)
sStreet = oCurrentInputForm.GetContentsByName(sColumnName_Street)
bPrint = bPrintSetting
Dim bResult : bResult = oProject.CheckVATID(sVATID_1, sVATID_2, sCompany, sCity, sZIP, sStreet, bPrint, sDate, sTime, sErrorCode, sResultName, sResultCity, sResultZIP, sResultStreet, sValidFrom, sValidTo, sConnectionError, sResponseStream)
Set oCurrentInputForm = Nothing
Set oProject = Nothing
Beispiel C#-Script:
Project project = cRM.CurrentProject;
InputForm currentInputForm = project.ActiveViews.ActiveView.CurrentInputForm(2);
string vatID_1 = project.CompanyInfo.VatID;
string vatID_2 = currentInputForm.GetContentsByName("ColumnName_VAT_ID");
string company = currentInputForm.GetContentsByName("ColumnName_Company");
string city = currentInputForm.GetContentsByName("ColumnName_City");
string zip = currentInputForm.GetContentsByName("ColumnName_ZIP");
string street = currentInputForm.GetContentsByName("ColumnName_Street");
bool print = false;
string date = null;
string time = null;
string errorCode = null;
string resultName = null;
string resultCity = null;
string resultZip = null;
string resultStreet = null;
string validFrom = null;
string validTo = null;
string connectionError = null;
string responseStream = null;
bool result = project.CheckVATID(vatID_1, vatID_2, company, city, zip, street, print, string date, time, errorCode, resultName, resultCity, resultZip, resultStreet, validFrom, validTo, connectionError, responseStream);
currentInputForm.Dispose();
project.Dispose();