Weitere Informationen zur Schnittstelle
Allgemein
Die nachfolgenden Informationen richten sich insbesondere an interessierte Personen mit Programmierkenntnissen.
Die Implementierung der Schnittstelle ist in unterschiedlichen Programmiersprachen und auf unterschiedlichen Systemplattformen möglich. Der Transport der Daten erfolgt mit dem sicheren Übertragungsprotokoll HTTPS (TLS 1.2) und die Darstellung der übertragenen Daten geschieht in der Extensible Markup Language (XML). Weitere Informationen erhalten Sie auf der XML-RPC Homepage.
Die Anfragen (Requests) und Antworten (Responses) werden jeweils in Echtzeit an den entsprechenden EU-Mitgliedstaat geschickt. Die Aufbereitung der Anfragen erfolgt ebenfalls in Echtzeit. Es handelt sich um eine synchrone Kommunikation. Das heißt, dass nach jeder Anfrage sofort eine Antwort generiert wird. Es werden nur Einzelabfragen verarbeitet. Diese werden nacheinander abgearbeitet. Jede Anfrage erfordert eine Antwort.
Hier finden Sie Informationen zu:
Schnittstelle Aufruf
Nachfolgend finden Sie die für den Aufruf notwendigen Parameter:
Server-URL: | https://evatr.bff-online.de/ |
Funktion mit Parametern: | evatrRPC(UstId_1, UstId_2, Firmenname, Ort, PLZ, Strasse) |
Unabhängig von der Art der Bestätigung (einfach oder qualifiziert) sind immer alle Parameter anzugeben.
Welche Parameter für welche Bestätigung mit Werten zu übergeben sind, entnehmen Sie bitte der folgenden Tabelle:
Parameter | Datentyp | Case Sensitive | Beschreibung | einfache Bestätigung | qualifizierte Bestätigung | qualifizierte Bestätigung |
---|---|---|---|---|---|---|
Pflicht | Pflicht | Optional | ||||
UstId_1 | String | ja | Ihre deutsche USt-IdNr. | X | X | |
UstId_2 | String | ja | Anzufragende ausländische USt-IdNr. | X | X | |
Firmenname | String | nein | Name der anzufragenden Firma einschl. Rechtsform | X | ||
Ort | String | nein | Ort der anzufragenden Firma | X | ||
PLZ | String | nein | Postleitzahl der anzufragenden Firma | X | ||
Strasse | String | nein | Strasse und Hausnummer der anzufragenden Firma | X |
HTTPS - Aufruf
(Bei diesen Beispielen wird kein gültiges Ergebnis produziert!)
Beispielsyntax für eine einfache Bestätigungsanfrage:
https://evatr.bff-online.de/evatrRPC?UstId_1=DE123456789&UstId_2=AB1234567890&Firmenname=&Ort=&PLZ=&Strasse=
Beispielsyntax für eine qualifizierte Bestätigungsanfrage mit Anforderung einer Bestätigungsmitteilung:
https://evatr.bff-online.de/evatrRPC?UstId_1=DE123456789&UstId_2=AB1234567890&Firmenname=Firmenname einschl. Rechtsform&Ort=Ort der Firma&PLZ=12345&Strasse=Strasse der Firma
Bei gewünschter SSL-Verschlüsselung ist das Hypertext Transfer Protocol Secure (HTTPS) zu verwenden.
Antwort - Aufbau
Datum | Das Datum der Anfrage (Format: tt.mm.jjjj) |
Uhrzeit | Uhrzeit der Anfrage (Format: hh:mm:ss) |
ErrorCode | Fehlernummer der Anfrage (Siehe Übersicht ErrorCodes) |
UstId_1 | Ihre deutsche USt-IdNr. |
UstId_2 | Angefragte ausländische USt-IdNr. |
Firmenname | Der von Ihnen angefragte Firmenname |
Ort | Der von Ihnen angefragte Ort der Firma |
PLZ | Die von Ihnen angefragte Postleitzahl der Firma |
Strasse | Die von Ihnen angefragte Strasse der Firma |
Werte für die Parameter Erg_Name, Erg_Ort, Erg_PLZ und Erg_StrFolgende Werte sind als Ergebnis möglich:
- A = stimmt überein
- B = stimmt nicht überein
- C = nicht angefragt
- D = vom EU-Mitgliedsstaat nicht mitgeteilt
Erg_Name | Ergebnis für den angefragten Namen der Firma |
Erg_Ort | Ergebnis für den angefragten Ort der Firma |
Erg_PLZ | Ergebnis für die angefragte Postleitzahl der Firma |
Erg_Str | Ergebnis für die angefragte Strasse der Firma |
Gueltig_ab | Wird nur beim ErrorCode 203 bzw. 204 angegeben Beginn der Gütigkeit der ausländischen USt-IdNr (Format: tt.mm.jjjj) |
Gueltig_bis | Wird nur beim ErrorCode 204 angegeben Ende der Gütigkeit der ausländischen USt-IdNr (Format: tt.mm.jjjj) |
Übersicht der ErrorCodes
ErrorCode | Beschreibung |
---|---|
200 | Die angefragte USt-IdNr. ist gültig. |
201 | Die angefragte USt-IdNr. ist ungültig. |
202 | Die angefragte USt-IdNr. ist ungültig. Sie ist nicht in der Unternehmerdatei des betreffenden EU-Mitgliedstaates registriert. Hinweis: Ihr Geschäftspartner kann seine gültige USt-IdNr. bei der für ihn zuständigen Finanzbehörde in Erfahrung bringen. Möglicherweise muss er einen Antrag stellen, damit seine USt-IdNr. in die Datenbank aufgenommen wird. |
203 | Die angefragte USt-IdNr. ist ungültig. Sie ist erst ab dem ... gültig (siehe Feld 'Gueltig_ab'). |
204 | Die angefragte USt-IdNr. ist ungültig. Sie war im Zeitraum von ... bis ... gültig (siehe Feld 'Gueltig_ab' und 'Gueltig_bis'). |
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. |
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. |
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. |
209 | Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht dem Aufbau der für diesen EU-Mitgliedstaat gilt. |
210 | Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht den Prüfziffernregeln die für diesen EU-Mitgliedstaat gelten. |
211 | Die angefragte USt-IdNr. ist ungültig. Sie enthält unzulässige Zeichen (wie z.B. Leerzeichen oder Punkt oder Bindestrich usw.). |
212 | Die angefragte USt-IdNr. ist ungültig. Sie enthält ein unzulässiges Länderkennzeichen. |
213 | Sie sind nicht zur Abfrage einer deutschen USt-IdNr. berechtigt. |
214 | Ihre deutsche USt-IdNr. ist fehlerhaft. Sie beginnt mit 'DE' gefolgt von 9 Ziffern. |
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. |
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. |
217 | Bei der Verarbeitung der Daten aus dem angefragten EU-Mitgliedstaat ist ein Fehler aufgetreten. Ihre Anfrage kann deshalb nicht bearbeitet werden. |
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. |
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. |
221 | Die Anfragedaten enthalten nicht alle notwendigen Parameter oder einen ungültigen Datentyp. Weitere Informationen erhalten Sie bei den Hinweisen zum Schnittstellen - Aufruf (s.o.) |
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. |
999 | Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich. Bitte versuchen Sie es später noch einmal. |
Antwort - Beispiel
Das Ergebnis hat folgendes Format:
Datum 27.07.2006 Uhrzeit 13:35:53 ErrorCode 200 UstId_1 DE123456789 UstId_2 AB1234567890 Firmenname Firma XY Rechtsform Ort Firmenort PLZ 1234 Strasse Firmenstrasse Erg_Name A Erg_Ort A Erg_PLZ A Erg_Str A Gueltig_ab Gueltig_bis
<params>
<param>
<value><array><data>
<value><string>Datum</string></value>
<value><string>27.07.2006</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Uhrzeit</string></value>
<value><string>13:35:53</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>ErrorCode</string></value>
<value><string>200</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>UstId_1</string></value>
<value><string>DE123456789</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>UstId_2</string></value>
<value><string>AB1234567890</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Firmenname</string></value>
<value><string>Firma XY Rechtsform</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Ort</string></value>
<value><string>Firmenort</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>PLZ</string></value>
<value><string>1234</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Strasse</string></value>
<value><string>Firmenstrasse</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Erg_Name</string></value>
<value><string>A</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Erg_Ort</string></value>
<value><string>A</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Erg_PLZ</string></value>
<value><string>A</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Erg_Str</string></value>
<value><string>A</string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Gueltig_ab</string></value>
<value><string></string></value>
</data></array></value>
</param>
<param>
<value><array><data>
<value><string>Gueltig_bis</string></value>
<value><string></string></value>
</data></array></value>
</param>
</params>
Python - Beispiel
Nachfolgendes Beispiel ist in der Programmiersprache Python (Version 2.7) verfasst. Die entsprechenden Aufrufparameter müssen natürlich noch durch reale Werte ersetzt werden.
Als Basis wird die nachfolgende XML-RPC-Bibliothek genutzt:
import xmlrpclib
server_url = 'https://evatr.bff-online.de/'
server = xmlrpclib.Server(server_url)
# daten zum testen
UstId_1 = 'DE123456789'
UstId_2 = 'AB123456789012'
Firmenname = 'Firmenname einschl. Rechtsform'
Ort = 'Ort'
PLZ = '1234567'
Strasse = 'Strasse und Hausnummer'
rpc = server.evatrRPC(UstId_1, UstId_2, Firmenname, Ort, PLZ, Strasse)
print rpc
Technische Hinweise
Ihre Bestätigungsabfrage läuft über das Internet und damit mehr oder weniger - von der Auslastung des Netzes und von den benutzen Verbindungen abhängig - schnell zum Bundeszentralamt für Steuern. Hier wird Ihre Anfrage maschinell bearbeitet und geprüft, ob alle Angaben richtig sind.
Ist dies der Fall, wird Ihre Anfrage über eine Netzwerkverbindung an den jeweiligen EU-Mitgliedstaat weitergeleitet. Dort wird eine weitere maschinelle Verarbeitung angestoßen und die Antwort zum Bundeszentralamt für Steuern zurückgesandt. Hier wird diese Antwort aufbereitet und zurück zu Ihnen geschickt.
Die Antwort auf eine von Ihnen gestartete, gültige Abfrage kann also, in Abhängigkeit von Ihrer Internetanbindung und der Antwortzeit des entsprechenden Mitgliedstaates, zwischen einigen Sekunden und mehreren Minuten dauern.