Programmeerimisraamatukogud võimaldavad otsida ettevõtjate andmeid sisestatud KMKR-numbri alusel. Praegu on API-teegid saadaval järgmiste programmeerimiskeelte jaoks:

  • .NET (C#, Visual Basic)
  • Java
  • JavaScript (Node.js)
  • PHP
  • Python
  • C/C++

API pakub järgmisi funktsioone:

  • getVIESData – funktsioon, mis kinnitab mis tahes Euroopa Liidu liikmesriigi antud EL käibemaksukohustuslase numbri toimimist,
  • getAccountStatus – funktsioon kasutajakonto kohta ajakohase teabe hankimiseks.

Integratsioon

Kõik lähtekoodidega teegid on allalaadimiseks saadaval saidil Lae alla lehel. Lisaks on teekide lähtekood saadaval ka meie ametlikus hoidlas aadressil Github.

Teegi integreerimise viis sõltub valitud programmeerimiskeelest. Nende keelte puhul, mis toetavad kesksel hoidlal põhinevat raamatukoguhaldust, on seda võimalik kasutada.

// 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

Autentimine

Õige autentimise teostamiseks tuleb määrata õiged väärtused id ja key parameetrid tuleks esitada kliendiobjekti ehitamise ajal. The id parameeter peaks sisaldama kehtivat autoriseerimiseks kasutatavat võtmeidentifikaatorit. The key parameeter peaks sisaldama autoriseerimiseks kasutatud võtme kehtivat väärtust. Võtmeidentifikaatori ja võtme genereerib kasutaja pärast oma kontole sisselogimist viesapi.eu portaal. Võtmete ja identifikaatorite genereerimise protsessi on üksikasjalikult kirjeldatud eespool.

Järgmine näide illustreerib teegi funktsioonide kasutamist.

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"

Tähelepanu! Autentimisprotsessis kasutatakse kliendi arvuti praegust aega. Seega, kui viesapi.eu süsteemiga ühenduse loomisel tekib autentimisprobleeme, veendu esmalt, et arvutil või serveril, kust ühendus luuakse, on õige praegune kellaaeg ja ajavöönd. Lisateavet meetodi kohta, mida süsteem viesapi.eu päringute autentimiseks kasutab, leiate siin.

EL käibemaksukohustuslase numbrite kontrollimine

EL KMKR numbri kinnitamiseks helistage getVIESData() funktsioon, mille parameetriks on EL-i käibemaksukohustuslase number, mida tahame kontrollida. Funktsioon võimaldab kontrollida kõigi Euroopa Liidu liikmesriikide poolt väljastatud EL käibemaksukohustuslase numbreid.

Järgmine näide illustreerib, kuidas funktsioone teekides kasutatakse:

// 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

Tagastatud objekti atribuudid

Tagastatud atribuutide üksikasjalik kirjeldus:

  • uid – viesapi.eu loodud kordumatu päringu identifikaator,
  • countryCode – riigikood, kus päringus esitatud EL käibemaksukohustuslase numbriga seotud ettevõte on registreeritud,
  • vatNumber – päringus esitatud kontrollitud ettevõtte EL-i käibemaksukohuslase number,
  • valid – VIES-teenuse vastus, mis teavitab kontrollitava üksuse praegusest EL-i käibemaksustaatusest:
    • true – päringus esitatud EL käibemaksukohustuslase number on kehtiv,
    • false – päringus esitatud EL käibemaksukohuslase number ei ole kehtiv,
  • traderName - ettevõtte ärinimi,
  • traderCompanyType – tagastas alati '-' tähemärkide jada,
  • traderAddress - ettevõtte aadress, kus ettevõte on registreeritud,
  • id – VIES-süsteemi poolt genereeritud kordumatu päringu identifikaator
  • date - päringu täitmise kuupäev
  • source – andmeallikas, alati: http://ec.europa.eu

Kasutaja konto oleku teabe hankimine

Funktsioon võimaldab laadida alla kogu kasutajakonto põhiteabe, mis kuvatakse peale kontole sisselogimist portaalis viesapi.eu. Funktsioon tagastab ka teavet valitud plaani raames saadaolevate päringute maksimaalse arvu kohta (nt Äriplaani puhul 5000) ja kõigi jooksval kuul tehtud päringute koguarvu kohta kasutaja kontol.

Tähelepanu! Funktsiooni kutsumine teeb seda mitte suurendada tehtud päringute arv.

Järgmine näide illustreerib teegi funktsioonide kasutamist.

// 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

NET-i teegi registreerimine COM-objektina

The viesapiLibrary.dll raamatukogu saab registreerida Windowsi süsteemis nn COM objektiks. Siis saab raamatukogu funktsioone viidata paljudest erinevatest programmeerimiskeeltest ja valmisrakendustest, sh. Microsoft Excel, Access, SQL Server, Dynamics või Visual FoxPro.

Teegi registreerimiseks COM-objektina toimige järgmiselt.

  1. Laadige alla .NET raamatukogu arhiivige ja pakkige see kohalikule kettale mis tahes asukohta lahti.
  2. Minge lahtipakkitud teegifailidega kataloogi ja leidke üles com-register.bat faili.
  3. Valige com-register.bat faili hiirega ja valige Run as administrator kontekstimenüüst.

.NET teegi kasutamine MS Excelis

ViesapiLibrary.dll teegi funktsioone saab kasutada MS Exceli rakenduses oma funktsioonide ja protseduuride kirjutamiseks Visual Basic keel. Et see oleks võimalik, on vaja:

  1. Registreeri a viesapiLibrary.dll raamatukogu kui a COM objekt peal Windows.
  2. Käivitage Exceli rakendus. Valige DEVELOPER vahekaarti lindil ja seejärel klõpsake nuppu Visual Basic nuppu.
  3. Aastal Visual Basic for Application aken, valige Tools ja siis References menüüst. Aastal Available References loend, otsige ja valige VIESAPI Service Client for .NET Framework (C#). Kinnitage oma valik nupuga OK nuppu.
  4. Alates Insert menüü, valige Module ja kleepige uude aknasse Visual Basicu näidetes esitatud funktsioonikood.
  5. Lõpuks sobivad w väärtused jaoks viesapi.ID ja viesapi.Key tuleks määrata. Võtme ja juurdepääsuvõtme saamise meetodit kirjeldatakse peatükis Identifikaatori ja juurdepääsuvõtme genereerimine