Programavimo bibliotekos leidžia ieškoti verslininkų duomenų pagal įvestą PVM mokėtojo ES numerį. Šiuo metu API bibliotekos yra prieinamos šioms programavimo kalboms:

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

API suteikia šias funkcijas:

  • getVIESData – funkcija, patvirtinanti bet kurios Europos Sąjungos valstybės narės suteikto ES PVM mokėtojo numerio veiklą,
  • getAccountStatus – funkcija, skirta gauti naujausią informaciją apie vartotojo abonementą.

Integracija

Visas bibliotekas su šaltinio kodais galima atsisiųsti iš parsisiųsti puslapį. Be to, bibliotekų šaltinio kodas taip pat yra mūsų oficialioje saugykloje adresu Github.

Bibliotekos integravimo būdas priklauso nuo pasirinktos programavimo kalbos. Tomis kalbomis, kurios palaiko bibliotekos valdymą, pagrįstą centrine saugykla, ją galima naudoti.

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

Autentifikavimas

Norint atlikti teisingą autentifikavimą, reikia nustatyti teisingas reikšmes id ir key parametrai turėtų būti pateikti statant kliento objektą. The id parametre turi būti galiojantis rakto identifikatorius, naudojamas autorizacijai. The key parametre turi būti galiojanti autorizacijai naudojamo rakto reikšmė. Rakto identifikatorių ir raktą sugeneruoja vartotojas, prisijungęs prie savo paskyros viesapi.eu portalas. Raktų ir identifikatorių generavimo procesas buvo išsamiai aprašytas aukščiau.

Šis pavyzdys iliustruoja, kaip naudoti bibliotekos 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"

Dėmesio! Autentifikavimo procese naudojamas esamas kliento kompiuterio laikas. Todėl iškilus autentifikavimo problemoms bandant prisijungti prie viesapi.eu sistemos, pirmiausia įsitikinkite, kad kompiuteryje ar serveryje, iš kurio užmezgamas ryšys, yra teisingas dabartinis laikas ir laiko juosta. Daugiau informacijos apie viesapi.eu sistemos naudojamą užklausų autentifikavimo būdą rasite čia.

ES PVM mokėtojo numerių tikrinimas

ES PVM mokėtojo kodas patvirtinamas paskambinus tel getVIESData() funkcija, kurios parametras yra ES PVM mokėtojo kodas, kurį norime patikrinti. Funkcija leidžia patikrinti visų Europos Sąjungos valstybių narių išduotus ES PVM mokėtojo kodus.

Šis pavyzdys iliustruoja, kaip bibliotekose naudojamos funkcijos:

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

Grąžinamo objekto atributai

Išsamus grąžintų atributų aprašymas:

  • uid – unikalus užklausos identifikatorius, sugeneruotas viesapi.eu,
  • countryCode – šalies kodas, kurioje registruota įmonė, susijusi su užklausoje nurodytu ES PVM mokėtojo numeriu,
  • vatNumber – užklausoje nurodytas patikrintos įmonės ES PVM mokėtojo kodas,
  • valid – VIES tarnybos atsakymas, informuojantis apie esamą tikrinamo subjekto ES PVM statusą:
    • true – galioja užklausoje nurodytas ES PVM mokėtojo kodas,
    • false – užklausoje pateiktas ES PVM mokėtojo kodas negalioja,
  • traderName - įmonės prekės pavadinimas,
  • traderCompanyType – visada grąžindavo „-“ simbolių eilutę,
  • traderAddress – įmonės adresas, kuriame įmonė įregistruota,
  • id – unikalus VIES sistemos sugeneruotas užklausos identifikatorius
  • date – užklausos vykdymo data
  • source – duomenų šaltinis, visada: http://ec.europa.eu

Gaunama informacija apie vartotojo paskyros būseną

Funkcija leidžia parsisiųsti visą pagrindinę informaciją apie vartotojo paskyrą, kuri rodoma prisijungus prie paskyros portale viesapi.eu. Funkcija taip pat grąžina informaciją apie maksimalų užklausų skaičių pagal pasirinktą planą (pvz., 5000 verslo planui) ir bendrą visų užklausų, pateiktų einamąjį mėnesį vartotojo paskyroje, skaičių.

Dėmesio! Funkcijos iškvietimas veikia nepadidinti pateiktų užklausų skaičius.

Šis pavyzdys iliustruoja, kaip naudotis bibliotekos funkcijomis.

// 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 bibliotekos registravimas kaip COM objektas

The viesapiLibrary.dll biblioteka gali būti registruojama Windows sistemoje kaip vadinamoji COM objektas. Tada bibliotekos funkcijas galima remtis iš daugelio skirtingų programavimo kalbų ir paruoštų programų, įskaitant. „Microsoft Excel“, „Access“, „SQL Server“, „Dynamics“ arba „Visual FoxPro“.

Norėdami užregistruoti biblioteką kaip COM objektą, atlikite šiuos veiksmus:

  1. Atsisiųskite .NET biblioteka archyvuokite ir išpakuokite jį į vietinį diską į bet kurią vietą.
  2. Eikite į katalogą su išpakuotais bibliotekos failais ir raskite com-register.bat failą.
  3. Pasirinkite com-register.bat failą su pele ir pasirinkite Run as administrator komandą iš kontekstinio meniu.

.NET bibliotekos naudojimas programoje MS Excel

ViesapiLibrary.dll bibliotekos funkcijas galima naudoti MS Excel programoje, kad galėtumėte įrašyti savo funkcijas ir procedūras Visual Basic kalba. Kad tai būtų įmanoma, būtina:

  1. Registruotis į viesapiLibrary.dll biblioteka kaip a COM objektas įjungtas Windows.
  2. Paleiskite „Excel“ programą. Pasirinkite DEVELOPER skirtuką ant juostelės, tada spustelėkite Visual Basic mygtuką.
  3. Viduje Visual Basic for Application langą, pasirinkite Tools ir tada References iš meniu. Viduje Available References sąrašą, suraskite ir pasirinkite VIESAPI Service Client for .NET Framework (C#). Patvirtinkite savo pasirinkimą mygtuku OK mygtuką.
  4. Nuo Insert meniu, pasirinkite Module ir naujame lange įklijuokite funkcijos kodą, pateiktą Visual Basic pavyzdžiuose.
  5. Galiausiai atitinkamos w reikšmės for viesapi.ID ir viesapi.Key turėtų būti nustatytas. Rakto ir prieigos rakto gavimo būdas aprašytas skyriuje Identifikatoriaus ir prieigos rakto generavimas