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.
- C#
- C/C++
- Jáva
- JavaScript
- PHP
- Krajta
- Visual Basic
// 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:
- C#
- C/C++
- Jáva
- JavaScript
- PHP
- Krajta
- Visual Basic
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:
- C#
- C/C++
- Jáva
- JavaScript
- PHP
- Krajta
- Visual Basic
// 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 VIESdate
– datum provedení dotazusource
– 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.
- C#
- C/C++
- Jáva
- JavaScript
- PHP
- Krajta
- Visual Basic
// 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:
- Stáhněte si .NET knihovna archivovat a rozbalit na místní disk na libovolné místo.
- Přejděte do adresáře s rozbalenými soubory knihovny a najděte
com-register.bat
soubor. - Vybrat
com-register.bat
soubor pomocí myši a vyberteRun 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é:
- Registrovat a
viesapiLibrary.dll
knihovna jako aCOM
objekt naWindows
. - Spusťte aplikaci Excel. Vybrat
DEVELOPER
na pásu karet a poté klikněte naVisual Basic
knoflík. - V
Visual Basic for Application
okno, vyberteTools
a pakReferences
z nabídky. VAvailable References
seznam, vyhledejte a vyberteVIESAPI Service Client for .NET Framework (C#)
. Svůj výběr potvrďte pomocíOK
knoflík. - z
Insert
menu, vyberte siModule
a vložte kód funkce uvedený v příkladech jazyka Visual Basic do nového okna. - Nakonec vhodné hodnoty w for
viesapi.ID
aviesapi.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