VIES programmeerimisraamatukogud

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,
  • getVIESDataParsedfunktsioon, mis kinnitab mis tahes Euroopa Liidu liikmesriigi antud EL-i käibemaksukohustuslase numbri aktiivsust ja tagastab sõelutud kaupleja aadressi,
  • getVIESDataAsync – asünkroonne funktsioon, mis võimaldab saadetud käibemaksukohustuslaste numbrite partii põhjal saada EL-i kehtiva käibemaksukohustuslase staatuse ja kaupleja andmed.
  • getVIESDataAsyncResult – funktsioon võimaldab hankida partii tulemusi funktsiooni getVIESDataAsync tagastatud märgi alusel
  • 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 + " (code: " + viesapi.LastErrorCode + ")");
}
// 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 (code: %d)\n", viesapi_get_last_err(viesapi), viesapi_get_last_err_code(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() + " (code: " + viesapi.getLastErrorCode() + ")");
}
// 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('Error: ' + viesapi.get_last_error() + ' (code: ' + str(viesapi.get_last_error_code()) + ')')
' 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 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 (konsultatsiooninumber)
  • date - päringu täitmise kuupäev
  • source – andmeallikas, alati: http://ec.europa.eu

EL KMKR numbrite kontrollimine sõelutud kaupleja aadressiga

EL-i käibemaksukohustuslase numbri saate kinnitada ka telefonil getVIESDataParsed funktsioon, mille parameetriks on EL-i käibemaksukohustuslase number, mida tahame kontrollida. Seda funktsiooni kutsudes saate lisaks käibemaksukohustuslase staatuse teabele ka sõelutud kaupleja aadressi.

Märkus! Kuna VIES-i poolt Saksamaa ja Hispaania kauplejatele tagastatud andmed puuduvad, siis funktsioon seda teeb mitte tagasi sõelutud kaupleja aadress (traderAddressComponent) nende riikide jaoks.

Oluline vastutusest loobumine

Sõelumisfunktsioon kasutab väliseid AI-algoritme ja API-sid, et eraldada automaatselt sellised atribuudid nagu linn, sihtnumber, tänav koos tänavanumbriga (hoone number) ja majanumber, seega ei saa me tagada selle 100% õiget toimimist.

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

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

if (vies != null) {
	Console.WriteLine(vies);
}
else {
	Console.WriteLine("Error: " + viesapi.LastError + " (code: " + viesapi.LastErrorCode + ")");
}
// A call to a method that returns data from a VIES system
VIESData* vies = viesapi_get_vies_data_parsed(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 (code: %d)\n", viesapi_get_last_err(viesapi), viesapi_get_last_err_code(viesapi));
}
// A call to a method that returns data from a VIES system
VIESData vies = viesapi.getVIESDataParsed("PL1234567890");

if (vies != null) {
	System.out.println(vies);
}
else {
	System.out.println("Error: " + viesapi.getLastError() + " (code: " + viesapi.getLastErrorCode() + ")");
}
// A call to a method that returns data from a VIES system
viesapi.getVIESDataParsed('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_parsed('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_parsed('PL1234567890')

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

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

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 (algvorm)
  • traderAddressComponentkomponentide rühmitamise aadressi üksikasjad
    • country – kaupleja riigi nimi selle riigikeeles
    • postalCode – kaupleja aadressi postiindeks
    • city – kaupleja aadressi linn
    • street - kaupleja aadressi tänav
    • streetNumber – kaupleja aadressi tänavanumber
    • houseNumber – ettevõtja aadressi majanumber
  • id – VIES-süsteemi poolt genereeritud kordumatu päringu identifikaator (konsultatsiooninumber)
  • date - päringu täitmise kuupäev
  • source – andmeallikas, alati: http://ec.europa.eu

ELi käibemaksunumbrite partii (asünkroonne) kontrollimine

getVIESDataAsync – asünkroonne funktsioon, mis võimaldab saadetud käibemaksukohustuslaste numbrite partii põhjal saada EL-i kehtiva käibemaksukohustuslase staatuse ja kaupleja andmed.
Parameetrina esitage stringi massiiv, mis sisaldab EL-i käibemaksukohustuslase numbreid, mille puhul kontrollitakse EL-i käibemaksukohustuslase staatust ja laaditakse alla tallaja andmed.

Saadetavate EL-i KMKR numbrite minimaalne arv on 2 ja maksimaalne 99.

Õigesti kutsutud funktsioon tagastab loa, mis on vajalik päringu tulemuste toomiseks. Järgmine näide illustreerib, kuidas funktsioone teekides kasutatakse:

// Upload batch of VAT numbers and get their current VAT statuses and traders data
List numbers = new List {
	"PL1234567890,
	"DK64839576",
	"CZ8475630234"
};

string token = viesapi.GetVIESDataAsync(numbers);

if (token != null) {
	Console.WriteLine("Batch token: " + token);
} else {
	Console.WriteLine("Error: " + viesapi.LastError + " (code: " + viesapi.LastErrorCode + ")");
}
// Upload batch of VAT numbers and get their current VAT statuses and traders data
char* numbers[] = {
	"PL1234567890,
	"DK64839576",
	"CZ8475630234"
};

token = viesapi_get_vies_data_async(viesapi, numbers, 3);

if (token != NULL) {
	printf("Batch token:  %s\n", token);
} else {
	printf("Error: %s (code: %d)\n", viesapi_get_last_err(viesapi), viesapi_get_last_err_code(viesapi));
}
// Upload batch of VAT numbers and get their current VAT statuses and traders data
List numbers = new ArrayList<>();
numbers.add("PL1234567890");
numbers.add("DK64839576");
numbers.add("CZ8475630234");

String token = viesapi.getVIESDataAsync(numbers);

if (token != null) {
	System.out.println("Batch token: " + token);
} else {
	System.out.println("Error: " + viesapi.getLastError() + " (code: " + viesapi.getLastErrorCode() + ")");
}
// Upload batch of VAT numbers and get their current VAT statuses and traders data
const numbers = [
	'PL1234567890',
	'DK64839576',
	'CZ8475630234'
];

viesapi.getVIESDataAsync(numbers).then((token) => {
	console.log('Batch token: ' + token);
}).catch((e) => {
	console.log(e.message);
});
// Upload batch of VAT numbers and get their current VAT statuses and traders data
$numbers = array(
	'PL1234567890',
	'DK64839576',
	'CZ7710043187'
);

$token = $viesapi->get_vies_data_async($numbers);

if ($token) {
	echo '<pre>Batch token: ' . $token . '</pre>';
} else {
	echo '<p>Error: ' . $viesapi->get_last_error() . ' (code: ' . $viesapi->get_last_error_code() . ')</p>';
}
# Upload batch of VAT numbers and get their current VAT statuses and traders data
numbers = [
    'PL1234567890',
    'DK64839576',
    'CZ7710043187'
]

token = viesapi.get_vies_data_async(numbers)

if token:
    print('Batch token: ' + token)
else:
    print('Error: ' + viesapi.get_last_error() + ' (code: ' + str(viesapi.get_last_error_code()) + ')')
' Not supported yet

Funktsiooni asünkroonsuse tõttu saab tulemusi kätte saada umbes 2-3 minuti pärast. Pole vahet, kas päringule saadeti 2 või 99 EL KMKR numbrit.

Kui vähemalt üks päringus edastatud EL KMKR number on vale vorminguga, tagastab süsteem veateate “KMKR number on kehtetu”.

Saadetud päringu tulemuste saamiseks helistage numbril getVIESDataAsyncResult funktsiooni, pakkudes sisendparameetrina märgi väärtust.

Oluline märkus!

  1. Funktsioon valmistati ette VIES-süsteemi poolt tagastatud vea lahendamiseks: "The maximum number of concurrent requests has been reached”(MS_MAX_CONCURRENT_REQ). Soovitame seda kasutada päringute saatmisel Saksamaa (DE) ja Prantsusmaa (FR), mis tagastas ülalmainitud vea.
  2. Kuni kõigi taotluses saadetud EL-i KMKR-numbrite kontrollimise protsessi lõpuni lükatakse kõik järgnevad katsed tagasi ja viga parandatakse “The maximum number of batch request has been reached, please re-submit your request later“.

getVIESDataAsyncResult– funktsioon võimaldab hankida partii tulemusi, mis põhinevad kasutaja tagastatud märgil getVIESDataAsync funktsiooni.

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

// Check batch result and download data (at production it usually takes 2-3 min for result to be ready)
BatchResult result;

while ((result = viesapi.GetVIESDataAsyncResult(token)) == null) {
	if (viesapi.LastErrorCode != Error.BATCH_PROCESSING) {
		Console.WriteLine("Error: " + viesapi.LastError + " (code: " + viesapi.LastErrorCode + ")");
		return;
	}

	Console.WriteLine("Batch is still processing, waiting...");
	Thread.Sleep(30000);
}

// Batch result is ready
Console.WriteLine(result);
// Check batch result and download data (at production it usually takes 2-3 min for result to be ready)
while ((result = viesapi_get_vies_data_async_result(viesapi, token)) == NULL) {
	if (viesapi_get_last_err_code(viesapi) != VIESAPI_ERR_BATCH_PROCESSING) {
		printf("Error: %s (code: %d)\n", viesapi_get_last_err(viesapi), viesapi_get_last_err_code(viesapi));
		return;
	}

	printf("Batch is still processing, waiting...\n");
	Sleep(30000);
}

// Batch result is ready
for (i = 0; i < result->NumbersCount; i++) {
	printf("Country:  %s\n", result->Numbers[i]->CountryCode);
	printf("VAT ID:   %s\n", result->Numbers[i]->VATNumber);
	printf("Is valid: %d\n", result->Numbers[i]->Valid);
	printf("\n");
}

for (i = 0; i < result->ErrorsCount; i++) {
	printf("Country:  %s\n", result->Errors[i]->CountryCode);
	printf("VAT ID:   %s\n", result->Errors[i]->VATNumber);
	printf("Error:    %s\n", result->Errors[i]->Error);
	printf("\n");
}
// Check batch result and download data (at production it usually takes 2-3 min for result to be ready)
BatchResult result;

while ((result = viesapi.getVIESDataAsyncResult(token)) == null) {
	if (viesapi.getLastErrorCode() != eu.viesapi.client.Error.BATCH_PROCESSING) {
		System.out.println("Error: " + viesapi.getLastError() + " (code: " + viesapi.getLastErrorCode() + ")");
		return;
	}

	System.out.println("Batch is still processing, waiting...");
	Thread.sleep(30000);
}

// Batch result is ready
System.out.println(result);
// Check batch result and download data (at production it usually takes 2-3 min for result to be ready)
const looper = setInterval(() => {
	viesapi.getVIESDataAsyncResult(token).then((result) => {
		// Batch result is ready
		console.log(result);
		clearInterval(looper);
	}).catch((e) => {
		console.log(e.message);
	});
}, 30000);
// Check batch result and download data (at production it usually takes 2-3 min for result to be ready)
while (($result = $viesapi->get_vies_data_async_result($token)) === false) {
	if ($viesapi->get_last_error_code() !== \VIESAPI\Error::BATCH_PROCESSING) {
		echo '<p>Error: ' . $viesapi->get_last_error() . ' (code: ' . $viesapi->get_last_error_code() . ')</p>';
		die();
	}

	echo '<p>Batch is still processing, waiting...</p>';
	sleep(30);
}

// Batch result is ready
echo '<pre>' . print_r($result, true) . '</pre>';
# Upload batch of VAT numbers and get their current VAT statuses and traders data
numbers = [
    'PL1234567890',
    'DK64839576',
    'CZ7710043187'
]

token = viesapi.get_vies_data_async(numbers)

if token:
    print('Batch token: ' + token)
else:
    print('Error: ' + viesapi.get_last_error() + ' (code: ' + str(viesapi.get_last_error_code()) + ')')
' Not supported yet

Iga pakkkõnes edastatud EL-i käibemaksukohustuslase numbri kohta atribuudid, mis vastavad vastusele getVIESData funktsioon tagastatakse.

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