Checking the EU VAT Number with an German VAT for non German VAT






4.60/5 (3 votes)
Easy library for checking VAT Numbers of European Companies. Only usable with an German VAT for non German VAT!!!
Introduction
This library and demo project are only usable for German users with a German VAT!!!
The "Bundeszentralamt für Steuern" has made an interface to check VAT Numbers from other countries. More information can be found here.
The Code
The main method is just a call of the XML RPC API over an HTML link:
[XmlRpcUrl("https://evatr.bff-online.de/")]
public interface ISumAndDiff : IXmlRpcProxy
{
[XmlRpcMethod("evatrRPC")]
string testMyClient(string UstId_1, string UstId_2,
string Firmenname, string Ort, string PLZ, string Strasse, string Druck);
}
public int Response(string UstId_1, string UstId_2,
string Firmenname, string Ort, string PLZ, string Strasse, bool Druck)
{
_Message = string.Empty;
_Erg_Name = string.Empty;
_Erg_Ort = string.Empty;
_Erg_PLZ = string.Empty;
_Erg_Str = string.Empty;
_Druck = string.Empty;
int errorCode = 0;
ISumAndDiff proxy = XmlRpcProxyGen.Create<ISumAndDiff>();
string ret = proxy.testMyClient(UstId_1, UstId_2, Firmenname,
Ort, PLZ, Strasse, Druck ? "ja" : "nein");
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(ret);
XmlNodeList elemList = xmlDoc.GetElementsByTagName("string");
int.TryParse(elemList[3].InnerXml.ToString(), out errorCode);
DateTime.TryParse(elemList[23].InnerXml.ToString(), out GueltigAb);
DateTime.TryParse(elemList[25].InnerXml.ToString(), out GueltigBis);
_Erg_Name =elemList[21].InnerText;
_Erg_Ort = elemList[17].InnerText;
_Erg_PLZ = elemList[9].InnerText;
_Erg_Str = elemList[31].InnerText;
_Druck = elemList[7].InnerText;
if (ErrorCodes.Keys.Contains(errorCode))
{
_Message = String.Format(ErrorCodes[errorCode],
GueltigAb.ToShortDateString(), GueltigBis.ToShortDateString());
}
else
{
_Message = string.Empty;
}
return errorCode;
}
Using the Code
To use the code, the DLL has to be added to the project.
The only thing needed to check a UID Number is to call the "Code
" method. It gives as result the ErrorCode
of the API (the code 200 means that the UID is OK) and a message that explains the ErrorCode
.
int code = 0;
UID.Check check = new Check();
code = check.Response
(UstId_1, UstId_2, Firmenname, Ort, PLZ, Strasse, chkQualified.Checked);
lblErg_Fname.Text =check.ParameterMessage(check.Erg_Name);
lblErg_Ort.Text = check.ParameterMessage(check.Erg_Ort);
lblErg_PLZ.Text = check.ParameterMessage(check.Erg_PLZ);
lblErg_Str.Text = check.ParameterMessage(check.Erg_Str);
txtResult.Text = check.Message;
You can find all ErrorCode
s here. (01.12.2014)
History
- 04.12.2014 - Detailed Parameter Results Added
- 12.12.2014 - Using the "
CookComputing.XmlRpc
" Library, the Response recognizes all Company Names