VIES programavimo bibliotekos

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ą,
  • getVIESDataParsedfunkcija patvirtinti bet kurios Europos Sąjungos valstybės narės suteikto ES PVM mokėtojo numerio veiklą ir grąžinti išnagrinėtą prekiautojo adresą,
  • getVIESDataAsync – asinchroninė funkcija, kuri pagal atsiųstą PVM numerių paketą leidžia gauti esamą ES PVM statusą ir prekybininko duomenis.
  • getVIESDataAsyncResult – funkcija leidžia gauti paketinius rezultatus pagal funkcijos getVIESDataAsync grąžintą prieigos raktą
  • 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 + " (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

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 (konsultacijos numeris)
  • date – užklausos vykdymo data
  • source – duomenų šaltinis, visada: http://ec.europa.eu

ES PVM mokėtojo numerių tikrinimas su išanalizuota prekybininko adresu

ES PVM mokėtojo numerį taip pat galite patvirtinti paskambinę tel getVIESDataParsed funkcija, kurios parametras yra ES PVM mokėtojo kodas, kurį norime patikrinti. Iškvietę šią funkciją, be informacijos apie PVM mokėtojo statusą, gausite ir analizuotą prekybininko adresą.

Pastaba! Dėl VIES pateiktų duomenų trūkumo prekybininkams iš Vokietijos ir Ispanijos, funkcija veikia negrįžti išnagrinėtas prekybininko adresas (traderAddressComponent) šioms šalims.

Svarbus atsakomybės atsisakymas

Analizavimo funkcija naudoja išorinius AI algoritmus ir API, kad automatiškai išskirtų atributus, tokius kaip: miestas, pašto kodas, gatvė su gatvės numeriu (pastato numeris) ir namo numeris, todėl negalime garantuoti, kad 100% tinkamai veikia.

Šis pavyzdys iliustruoja, kaip bibliotekose naudojamos funkcijos:

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

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 (originalus formatas)
  • traderAddressComponentkomponentų grupavimo adreso informacija
    • country – prekiaujančios šalies pavadinimas jos nacionaline kalba
    • postalCode – prekybininko adreso pašto kodas
    • city – prekybininko adreso miestas
    • street - prekybininko adreso gatvė
    • streetNumber – prekybininko adreso gatvės numeris
    • houseNumber – prekybininko adreso namo numeris
  • id – unikalus VIES sistemos sugeneruotas užklausos identifikatorius (konsultacijos numeris)
  • date – užklausos vykdymo data
  • source – duomenų šaltinis, visada: http://ec.europa.eu

Paketas (asinchroninis) ES PVM mokėtojo numerių tikrinimas

getVIESDataAsync – asinchroninė funkcija, kuri pagal atsiųstą PVM numerių paketą leidžia gauti esamą ES PVM statusą ir prekybininko duomenis.
Kaip parametrą pateikite eilučių masyvą su ES PVM mokėtojo numeriais, kurių ES PVM mokėtojo statusas turi būti patikrintas ir atsisiunčiami treiderio duomenys.

Minimalus siunčiamų ES PVM mokėtojo numerių skaičius yra 2, o didžiausias – 99.

Teisingai iškviesta funkcija grąžina prieigos raktą, kuris yra būtinas norint gauti užklausos rezultatus. Šis pavyzdys iliustruoja, kaip bibliotekose naudojamos funkcijos:

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

Dėl funkcijos asinchroninio pobūdžio rezultatus galima gauti maždaug po 2–3 minučių. Nesvarbu, ar prašyme buvo išsiųsti 2 ar 99 ES PVM mokėtojo kodai.

Jei bent vienas užklausoje pateiktas ES PVM mokėtojo kodas yra neteisingo formato, sistema pateikia klaidą „PVM kodas neteisingas“.

Norėdami gauti išsiųstos užklausos rezultatus, skambinkite tel getVIESDataAsyncResult funkcija, pateikdama prieigos rakto reikšmę kaip įvesties parametrą.

Svarbi pastaba!

  1. Funkcija buvo parengta kaip sprendimas dėl VIES sistemos grąžintos klaidos: „The maximum number of concurrent requests has been reached“ (MS_MAX_CONCURRENT_REQ). Rekomenduojame jį naudoti siunčiant užklausas Vokietija (DE) ir Prancūzija (FR), kuri grąžino minėtą klaidą.
  2. Kol nebus baigtas visų prašyme atsiųstų ES PVM numerių tikrinimo procesas, visi tolesni bandymai bus atmesti ir klaida ištaisyta “The maximum number of batch request has been reached, please re-submit your request later“.

getVIESDataAsyncResult– Funkcija leidžia gauti paketinius rezultatus pagal grąžintą prieigos raktą getVIESDataAsync funkcija.

Šis pavyzdys iliustruoja, kaip bibliotekose naudojamos funkcijos:

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

Kiekvienam ES PVM mokėtojo numeriui, gautam per paketinį iškvietimą, atributai atitinka atsakymą į getVIESData funkcija grąžinama.

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