Programovací knihovny umožňují vyhledávat údaje o podnikatelích na základě zadaného DIČ EU. V současné době jsou k dispozici knihovny API pro následující programovací jazyky:

  • .NET (C#, Visual Basic)
  • Jáva
  • JavaScript (Node.js)
  • PHP
  • Krajta
  • C/C++

API poskytuje následující funkce:

  • getVIESData – funkce pro potvrzení činnosti DIČ EU přiděleného kterýmkoli členským státem Evropské unie,
  • getAccountStatus –funkce pro získávání aktuálních informací o uživatelském účtu.

Integrace

Všechny knihovny se zdrojovými kódy jsou k dispozici ke stažení na webu Stažení strana. Kromě toho je zdrojový kód knihoven také dostupný v našem oficiálním úložišti na Github.

Způsob integrace knihovny závisí na zvoleném programovacím jazyce. Pro ty jazyky, které podporují správu knihoven založenou na centrálním úložišti, je možné jej použít.

// NuGet Gallery
// https://www.nuget.org/packages/VIESAPI.VIESAPIClient

PM> Install-Package VIESAPI.VIESAPIClient
// No central repository support
// Maven
// https://viesapi.eu/maven/

<repository>
    <id>viesapi</id>
    <url>https://viesapi.eu/maven/releases</url>
</repository>

<dependency>
    <groupId>eu.viesapi</groupId>
    <artifactId>viesapi-client</artifactId>
    <version>1.2.6</version>
</dependency>
// NPM
// https://www.npmjs.com/package/viesapi-client

npm install viesapi-client
// Packagist (Composer)
// https://packagist.org/packages/viesapi/client

composer require viesapi/client
# No central repository support

pip install viesapi-python-client-1.2.6.zip
' No central repository support

Autentizace

Aby bylo možné provést správnou autentizaci, správné hodnoty id a key parametry by měly být poskytnuty během výstavby objektu klienta. The id Parametr by měl obsahovat platný identifikátor klíče používaný pro autorizaci. The key Parametr by měl obsahovat platnou hodnotu klíče použitého pro autorizaci. Identifikátor klíče a klíč vygeneruje uživatel po přihlášení ke svému účtu na viesapi.eu portál. Proces generování klíčů a identifikátorů byl podrobně popsán výše.

Následující příklad ukazuje, jak používat funkce knihovny:

using viesapiLibrary.dll;

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
VIESAPIClient viesapi = new VIESAPIClient("id", "key");
#include "viesapi.h"

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
VIESAPIClient* viesapi = NULL;
viesapi_new_prod(&viesapi, "id", "key");
import pl.viesapi.client.*;

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
VIESAPIClient viesapi = new VIESAPIClient("id", "key");
var VIESAPI = require('viesapiclient');

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
var viesapi = new VIESAPI.VIESAPIClient('id', 'key');
require_once 'VIESAPI/VIESAPIClient.php';

\VIESAPI\VIESAPIClient::registerAutoloader();

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
$viesapi = new \VIESAPI\VIESAPIClient('id', 'key');
from viesapi import *
from pprint import pprint

// Create the service client object
// id - a string representing the API key identifier
// key - a string representing the API key
viesapi = VIESAPIClient('id', 'key')
' Create the service client object
' id - a string representing the API key identifier
' key - a string representing the API key
Dim viesapi As New VIESAPIClient
viesapi.URL = "https://www.viesapi.eu/api"
viesapi.Id = "id"
viesapi.Key = "key"

Pozornost! Během procesu ověřování se používá aktuální čas klientského počítače. V případě problémů s autentizací při pokusu o připojení k systému viesapi.eu se proto nejprve ujistěte, že počítač nebo server, ze kterého je spojení navázáno, má správný aktuální čas a časové pásmo. Více informací o metodě, kterou systém viesapi.eu používá k ověřování dotazů, naleznete tady.

Kontrola čísel DPH EU

Číslo DPH EU je potvrzeno zavoláním na číslo getVIESData() funkce, jejímž parametrem je DIČ EU, které chceme ověřit. Funkce umožňuje ověření EU DIČ vydaných všemi členskými státy Evropské unie.

Následující příklad ukazuje, jak se funkce používají v knihovnách:

// A call to a method that returns data from a VIES system
VIESData vies = viesapi.GetVIESData("PL1234567890");

if (vies != null) {
	Console.WriteLine(vies);
}
else {
	Console.WriteLine("Error: " + viesapi.LastError);
}
// A call to a method that returns data from a VIES system
VIESData* vies = viesapi_get_vies_data(viesapi, "PL1234567890");

if (vies != NULL) {
	printf("Kraj: %s\n", vies->CountryCode);
	printf("VAT ID: %s\n", vies->VATNumber);
	printf("Aktywny: %d\n", vies->Valid);
}
else {
	printf("Error: %s\n", viesapi_get_last_err(viesapi));
}
// A call to a method that returns data from a VIES system
VIESData vies = viesapi.getVIESData("PL1234567890");

if (vies != null) {
	System.out.println(vies);
}
else {
	System.out.println("Error: " + viesapi.getLastError());
}
// A call to a method that returns data from a VIES system
viesapi.getVIESData('PL1234567890').then((vies) => {
	console.log(vies.toString());
}).catch((e) => {
	console.log(e.message);
});
// A call to a method that returns data from a VIES system
$vies = $viesapi->get_vies_data('PL1234567890');

if ($vies) {
	print_r($vies);
}
else {
	echo '<p>Error: ' . $viesapi->get_last_error() . '</p>';
}
# A call to a method that returns data from a VIES system
vies = viesapi.get_vies_data('PL1234567890')

if vies:
    pprint(vars(vies))
else:
    print u'Error: ' + viesapi.get_last_error()
' A call to a method that returns data from a VIES system
Dim vies As VIESData
Set vies = viesapi.GetVIESData("PL1234567890")

If vies Is Nothing Then
	Console.WriteLine("Error: {0}", viesapi.LastError)
Else
	Console.WriteLine(vies.ToString())
End If

Atributy vráceného objektu

Podrobný popis vrácených atributů:

  • uid – jedinečný identifikátor dotazu generovaný viesapi.eu,
  • countryCode – kód země, ve které je registrována společnost spojená s EU DIČ uvedeným v dotazu,
  • vatNumber – EU DIČ ověřené společnosti uvedené v dotazu,
  • valid – odpověď ze služby VIES, informující o aktuálním stavu EU DPH kontrolovaného subjektu:
    • true – je platné EU DIČ uvedené v dotazu,
    • false – DIČ EU uvedené v dotazu není platné,
  • traderName - obchodní jméno společnosti,
  • traderCompanyType – vždy vrátil řetězec znaků '-',
  • traderAddress - adresa společnosti, kde je společnost registrována,
  • id – jedinečný identifikátor dotazu generovaný systémem VIES
  • date – datum provedení dotazu
  • source – zdroj dat, vždy: http://ec.europa.eu

Získání informací o stavu uživatelského účtu

Funkce umožňuje stáhnout všechny základní informace o uživatelském účtu, které se zobrazují po přihlášení k účtu na portálu viesapi.eu. Funkce také vrací informaci o maximálním počtu dotazů dostupných v rámci zvoleného plánu (např. 5 000 u Business plánu) a celkovém počtu všech dotazů podaných v aktuálním měsíci na uživatelském účtu.

Pozornost! Volání funkce ano nezvýšit počet podaných dotazů.

Následující příklad ukazuje, jak používat funkce knihovny.

// Get current account status
AccountStatus account = viesapi.GetAccountStatus();

if (account != null) {
     Console.WriteLine(account);
}
else {
     Console.WriteLine("Error: " + viesapi.LastError);
}
// Get current account status
AccountStatus* account = viesapi_get_account_status(viesapi);

if (account != NULL) {
	printf("Plan name: %s\n", account->BillingPlanName);
	printf("Price: %.2f\n", account->SubscriptionPrice);
	printf("Number of queries: %d\n", account->TotalCount);
}
else {
	printf("Error: %s\n", viesapi_get_last_err(viesapi));
}
// Get current account status
AccountStatus account = viesapi.getAccountStatus();

if (account != null) {
     System.out.println(account);
}
else {
     System.err.println("Error: " + viesapi.getLastError());
}
// Get current account status
viesapi.getAccountStatus().then((account) => {
	console.log(account.toString());
}).catch((e) => {
	console.log(e.message);
});
// Get current account status
$account = $viesapi->get_account_status();

if ($account) {
     echo '<p>' . print_r($account, true) . '</p>';
}
else {
     echo '<p>Error: ' . $viesapi->get_last_error() . '</p>';
}
# Get current account status
account = viesapi.get_account_status()

if account:
    pprint(vars(account))
else:
    print u'Error: ' + viesapi.get_last_error()
'Get current account status
Dim account As AccountStatus
Set account = viesapi.GetAccountStatus()

If account Is Nothing Then
	Console.WriteLine("Error: {0}", viesapi.LastError)
Else
	Console.WriteLine(account.ToString())
End If

Registrace knihovny .NET jako objektu COM

The viesapiLibrary.dll knihovna může být registrována v systému Windows jako tzv COM objekt. Pak lze na funkce knihovny odkazovat z mnoha různých programovacích jazyků a hotových aplikací, vč. Microsoft Excel, Access, SQL Server, Dynamics nebo Visual FoxPro.

Chcete-li zaregistrovat knihovnu jako objekt COM, postupujte takto:

  1. Stáhněte si .NET knihovna archivovat a rozbalit na místní disk na libovolné místo.
  2. Přejděte do adresáře s rozbalenými soubory knihovny a najděte com-register.bat soubor.
  3. Vybrat com-register.bat soubor pomocí myši a vyberte Run as administrator příkaz z kontextové nabídky.

Použití knihovny .NET v MS Excel

Funkce knihovny viesapiLibrary.dll lze použít v aplikaci MS Excel k psaní vlastních funkcí a procedur v Visual Basic Jazyk. Aby to bylo možné, je nutné:

  1. Registrovat a viesapiLibrary.dll knihovna jako a COM objekt na Windows.
  2. Spusťte aplikaci Excel. Vybrat DEVELOPER na pásu karet a poté klikněte na Visual Basic knoflík.
  3. V Visual Basic for Application okno, vyberte Tools a pak References z nabídky. V Available References seznam, vyhledejte a vyberte VIESAPI Service Client for .NET Framework (C#). Svůj výběr potvrďte pomocí OK knoflík.
  4. z Insert menu, vyberte si Module a vložte kód funkce uvedený v příkladech jazyka Visual Basic do nového okna.
  5. Nakonec vhodné hodnoty w for viesapi.ID a viesapi.Key by mělo být nastaveno. Způsob získání klíče a přístupového klíče je popsán v kapitole Generování identifikátoru a přístupového klíče