Programmēšanas bibliotēkas ļauj meklēt uzņēmēju datus pēc ievadītā PVN ES numura. Pašlaik API bibliotēkas ir pieejamas šādām programmēšanas valodām:

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

API nodrošina šādas funkcijas:

  • getVIESData - jebkuras Eiropas Savienības dalībvalsts piešķirtā ES PVN numura darbības apstiprināšanas funkcija,
  • getAccountStatus – funkcija jaunākās informācijas izgūšanai par lietotāja kontu.

Integrācija

Visas bibliotēkas ar pirmkodiem ir pieejamas lejupielādei vietnē Lejupielādēt lappuse. Turklāt bibliotēku pirmkods ir pieejams arī mūsu oficiālajā repozitorijā vietnē Github.

Bibliotēkas integrēšanas veids ir atkarīgs no izvēlētās programmēšanas valodas. Valodām, kas atbalsta bibliotēku pārvaldību, pamatojoties uz centrālo repozitoriju, to var izmantot.

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

Autentifikācija

Lai veiktu pareizu autentifikāciju, ir jāievada pareizās vērtības id un key parametri jānodrošina klienta objekta būvniecības laikā. The id parametram ir jāietver derīgs atslēgas identifikators, ko izmanto autorizācijai. The key parametram ir jāietver derīga autorizācijai izmantotās atslēgas vērtība. Atslēgas identifikatoru un atslēgu ģenerē lietotājs pēc pieteikšanās savā kontā vietnē viesapi.eu portāls. Atslēgu un identifikatoru ģenerēšanas process ir aprakstīts iepriekš.

Šis piemērs parāda, kā izmantot bibliotēkas funkcijas:

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"

Uzmanību! Autentifikācijas procesā tiek izmantots klienta datora pašreizējais laiks. Tāpēc, ja rodas autentifikācijas problēmas, mēģinot pieslēgties sistēmai viesapi.eu, vispirms pārliecinieties, vai datoram vai serverim, no kura tiek izveidots savienojums, ir pareizais pašreizējais laiks un laika josla. Plašāku informāciju par viesapi.eu sistēmas izmantoto metodi pieprasījumu autentifikācijai var atrast šeit.

Pārbauda ES PVN numurus

ES PVN numuru apstiprina, zvanot uz getVIESData() funkcija, kuras parametrs ir ES PVN maksātāja numurs, kuru vēlamies pārbaudīt. Funkcija ļauj pārbaudīt visu Eiropas Savienības dalībvalstu izsniegtos ES PVN numurus.

Šis piemērs parāda, kā funkcijas tiek izmantotas bibliotēkās:

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

Atgrieztā objekta atribūti

Detalizēts atgriezto atribūtu apraksts:

  • uid – unikāls vaicājuma identifikators, ko ģenerē viesapi.eu,
  • countryCode – valsts kods, kurā reģistrēts uzņēmums, kas saistīts ar aptaujā norādīto ES PVN maksātāja numuru,
  • vatNumber – vaicājumā norādītā pārbaudītā uzņēmuma ES PVN maksātāja numurs,
  • valid – atbilde no VIES dienesta, informējot par pārbaudāmās vienības pašreizējo ES PVN statusu:
    • true – pieprasījumā norādītais ES PVN maksātāja numurs ir derīgs,
    • false – pieprasījumā norādītais ES PVN maksātāja numurs nav derīgs,
  • traderName - uzņēmuma tirdzniecības nosaukums,
  • traderCompanyType - vienmēr atgrieza "-" rakstzīmju virkni,
  • traderAddress - uzņēmuma adrese, kurā uzņēmums reģistrēts,
  • id – unikāls vaicājuma identifikators, ko ģenerē VIES sistēma
  • date - vaicājuma izpildes datums
  • source — datu avots, vienmēr: http://ec.europa.eu

Informācijas izgūšana par lietotāja konta statusu

Funkcija ļauj lejupielādēt visu lietotāja konta pamatinformāciju, kas tiek parādīta pēc pieteikšanās kontā portālā viesapi.eu. Funkcija arī atgriež informāciju par maksimālo vaicājumu skaitu, kas ir pieejams saskaņā ar atlasīto plānu (piemēram, 5000 biznesa plānam) un visu kārtējā mēnesī veikto vaicājumu kopējo skaitu lietotāja kontā.

Uzmanību! Funkcijas izsaukšana to dara nepalielināties veikto vaicājumu skaits.

Šis piemērs parāda, kā izmantot bibliotēkas funkcijas.

// 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 bibliotēkas kā COM objekta reģistrēšana

The viesapiLibrary.dll bibliotēku var reģistrēt Windows sistēmā kā t.s COM objektu. Tad uz bibliotēkas funkcijām var atsaukties no daudzām dažādām programmēšanas valodām un gatavām aplikācijām, t.sk. Microsoft Excel, Access, SQL Server, Dynamics vai Visual FoxPro.

Lai reģistrētu bibliotēku kā COM objektu, rīkojieties šādi:

  1. Lejupielādēt .NET bibliotēka arhivējiet un izsaiņojiet to vietējā diskā uz jebkuru vietu.
  2. Dodieties uz direktoriju ar izpakotiem bibliotēkas failiem un atrodiet com-register.bat failu.
  3. Izvēlieties com-register.bat failu ar peli un atlasiet Run as administrator komandu no konteksta izvēlnes.

.NET bibliotēkas izmantošana programmā MS Excel

ViesapiLibrary.dll bibliotēkas funkcijas var izmantot lietojumprogrammā MS Excel, lai ierakstītu savas funkcijas un procedūras Visual Basic valodu. Lai tas būtu iespējams, ir nepieciešams:

  1. Reģistrēties uz viesapiLibrary.dll bibliotēka kā a COM objekts ieslēgts Windows.
  2. Startējiet programmu Excel. Izvēlieties DEVELOPER cilni uz lentes un pēc tam noklikšķiniet uz Visual Basic pogu.
  3. Iekš Visual Basic for Application logu, atlasiet Tools un tad References no izvēlnes. Iekš Available References sarakstu, atrodiet un atlasiet VIESAPI Service Client for .NET Framework (C#). Apstipriniet savu izvēli ar OK pogu.
  4. No Insert izvēlni, izvēlieties Module un ielīmējiet funkcijas kodu, kas parādīts Visual Basic piemēros, jaunajā logā.
  5. Visbeidzot, atbilstošas w vērtības for viesapi.ID un viesapi.Key jāiestata. Atslēgas un piekļuves atslēgas iegūšanas metode ir aprakstīta nodaļā Identifikatora un piekļuves atslēgas ģenerēšana