VIES programozási könyvtárak

A programkönyvtárak lehetővé teszik a vállalkozók adatainak keresését a megadott ÁFA EU-szám alapján. Jelenleg az API-könyvtárak a következő programozási nyelvekhez érhetők el:

  • .NET (C#, Visual Basic)
  • Jáva
  • JavaScript (Node.js)
  • PHP
  • Piton
  • C/C++

Az API a következő szolgáltatásokat nyújtja:

  • getVIESData – az Európai Unió bármely tagállama által kiadott EU adószám tevékenységének megerősítésére szolgáló funkció,
  • getVIESDataParsedfunkció, amely megerősíti az Európai Unió bármely tagállama által kiadott EU adószám tevékenységét, és visszaadja az elemzett kereskedői címet,
  • getVIESDataAsync – aszinkron funkció, amely az elküldött áfaszám köteg alapján lehetővé teszi az aktuális EU ÁFA státusz és kereskedő adatok lekérését.
  • getVIESDataAsyncResult – a funkció lehetővé teszi a kötegelt eredmények lekérését a getVIESDataAsync függvény által visszaadott token alapján
  • getAccountStatus – funkció a felhasználói fiókkal kapcsolatos naprakész információk lekérésére.

Integráció

Minden forráskóddal rendelkező könyvtár letölthető a webhelyről Letöltés oldalon. Ezen kívül a könyvtárak forráskódja is elérhető hivatalos tárhelyünkben a következő címen: Github.

A könyvtár integrálásának módja a kiválasztott programozási nyelvtől függ. Azokon a nyelveken, amelyek támogatják a központi tárhelyen alapuló könyvtárkezelést, lehetséges a használata.

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

Hitelesítés

A helyes hitelesítés végrehajtásához a megfelelő értékeket a id és key paramétereket kell megadni az ügyfélobjektum felépítése során. Az id paraméternek tartalmaznia kell az engedélyezéshez használt érvényes kulcsazonosítót. Az key paraméternek tartalmaznia kell az engedélyezéshez használt kulcs érvényes értékét. A kulcsazonosítót és a kulcsot a felhasználó állítja elő, miután bejelentkezett a fiókjába viesapi.eu portál. A kulcsok és azonosítók létrehozásának folyamatát fentebb részleteztük.

A következő példa bemutatja a könyvtári függvények használatát:

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"

Figyelem! A hitelesítési folyamat során az ügyfél számítógépének aktuális ideje kerül felhasználásra. Ezért ha a viesapi.eu rendszerhez való csatlakozáskor hitelesítési problémák lépnek fel, először győződjön meg arról, hogy a számítógép vagy a szerver, amelyről a kapcsolat létrejön, a megfelelő aktuális idővel és időzónával rendelkezik. A viesapi.eu rendszer által a megkeresések hitelesítésére használt módszerről bővebb információ található itt.

EU adószámok ellenőrzése

Az EU-s adószám visszaigazolása a telefonszámon történik getVIESData függvényt, melynek paramétere az ellenőrizni kívánt EU-s áfaszám. A funkció lehetővé teszi az Európai Unió összes tagállama által kibocsátott EU adószámok ellenőrzését.

A következő példa bemutatja a függvények használatát a könyvtárakban:

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

A visszaadott attribútumok részletes leírása:

  • uid – a viesapi.eu által generált egyedi lekérdezési azonosító,
  • countryCode – országkód, amelyben a megkeresésben megadott EU-adószámmal összefüggő céget bejegyezték,
  • vatNumber – a megkeresésben megadott ellenőrzött cég EU adószáma,
  • valid – a VIES szolgáltatás válasza, amely tájékoztat az ellenőrzött entitás aktuális EU ÁFA státuszáról:
    • true – a megkeresésben megadott EU adószám érvényes,
    • false – a megkeresésben megadott EU adószám nem érvényes,
  • traderName - a cég kereskedelmi neve,
  • traderCompanyType – mindig egy „-” karakterláncot adott vissza,
  • traderAddress - a cég címe, ahol a cég be van jegyezve,
  • id – a VIES rendszer által generált egyedi lekérdezési azonosító (Konzultációs szám)
  • date – a lekérdezés végrehajtásának dátuma
  • source – adatforrás, mindig: http://ec.europa.eu

EU adószámok ellenőrzése elemzett kereskedői címmel

Az EU adószámát a telefonszámon is megerősítheti getVIESDataParsed függvényt, melynek paramétere az ellenőrizni kívánt EU-s áfaszám. Ennek a funkciónak a meghívásával az áfa-adózói státuszra vonatkozó információk mellett az elemzett kereskedői címet is megkapja.

Jegyzet! A VIES által a németországi és spanyolországi kereskedőkről visszaküldött adatok hiánya miatt a funkció igen nem tér vissza egy elemzett kereskedő cím (traderAddressComponent) ezen országok esetében.

Fontos Jogi nyilatkozat

Az elemző funkció külső mesterséges intelligencia algoritmusokat és API-kat használ az olyan attribútumok automatikus kinyerésére, mint: város, irányítószám, utca utcaszámmal (épületszám) és házszám, így nem tudjuk garantálni az 100% megfelelő működését.

A következő példa bemutatja a függvények használatát a könyvtárakban:

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

A visszaadott attribútumok részletes leírása:

  • uid – a viesapi.eu által generált egyedi lekérdezési azonosító,
  • countryCode – országkód, amelyben a megkeresésben megadott EU-adószámmal összefüggő céget bejegyezték,
  • vatNumber – a megkeresésben megadott ellenőrzött cég EU adószáma,
  • valid – a VIES szolgáltatás válasza, amely tájékoztat az ellenőrzött entitás aktuális EU ÁFA státuszáról:
    • true – a megkeresésben megadott EU adószám érvényes,
    • false – a megkeresésben megadott EU adószám nem érvényes,
  • traderName - a cég kereskedelmi neve,
  • traderCompanyType – mindig egy „-” karakterláncot adott vissza,
  • traderAddress – a cég címe, ahol a céget bejegyezték (eredeti formátum)
  • traderAddressComponentkomponens csoportosítási cím részletei
    • country – a kereskedő ország neve nemzeti nyelvén
    • postalCode – a kereskedő címének irányítószáma
    • city – a kereskedő címének városa
    • street -a kereskedő címének utcája
    • streetNumber – a kereskedő címének utcaszáma
    • houseNumber – a kereskedő címének házszáma
  • id – a VIES rendszer által generált egyedi lekérdezési azonosító (Konzultációs szám)
  • date – a lekérdezés végrehajtásának dátuma
  • source – adatforrás, mindig: http://ec.europa.eu

EU ÁFA számok kötegelt (aszinkron) ellenőrzése

getVIESDataAsync – aszinkron funkció, amely az elküldött áfaszám köteg alapján lehetővé teszi az aktuális EU ÁFA státusz és kereskedő adatok lekérését.
Paraméterként adjon meg egy olyan EU-s áfaszámokat tartalmazó string tömböt, amelyre vonatkozóan ellenőrizni kell az EU-s áfa-adózó státuszt, és le kell tölteni a taposó adatait.

Az EU-s adószámok minimális száma 2, maximum 99.

A helyesen meghívott függvény egy tokent ad vissza, amely szükséges a kérés eredményeinek lekéréséhez. A következő példa bemutatja a függvények használatát a könyvtárakban:

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

A funkció aszinkron jellege miatt az eredmények körülbelül 2-3 perc múlva visszakereshetők. Nem mindegy, hogy a kérelemben 2 vagy 99 EU-s áfaszámot küldtek.

Ha legalább egy, a kérelemben átadott EU-s adószám formátuma nem megfelelő, a rendszer „Az adószám érvénytelen” hibát ad vissza.

Az elküldött kérés eredményeinek lekéréséhez hívja a getVIESDataAsyncResult függvényt, megadva a token értékét bemeneti paraméterként.

Fontos megjegyzés!

  1. A függvény a VIES rendszer által visszaadott hiba megoldásaként készült: "The maximum number of concurrent requests has been reached” (MS_MAX_CONCURRENT_REQ). Javasoljuk, hogy használja kérések küldésekor Németország (DE) és Franciaország (FR), amely visszaadta a fent említett hibát.
  2. Amíg a kérelemben elküldött összes EU-s áfaszám ellenőrzése be nem fejeződik, minden további próbálkozást elutasítunk, és a hibát kijavítjuk.The maximum number of batch request has been reached, please re-submit your request later“.

getVIESDataAsyncResult– a funkció lehetővé teszi a kötegelt eredmények lekérését a által visszaadott token alapján getVIESDataAsync funkció.

A következő példa bemutatja a függvények használatát a könyvtárakban:

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

A köteghívásban átadott minden EU-s áfaszámhoz a következőre adott válasznak megfelelő attribútumok getVIESData függvényt adják vissza.

Információk lekérése a felhasználói fiók állapotáról

A funkció lehetővé teszi a felhasználói fiókkal kapcsolatos összes alapvető információ letöltését, amely a fiókba való bejelentkezés után jelenik meg a viesapi.eu portálon. A függvény információkat ad vissza a kiválasztott terv keretében elérhető lekérdezések maximális számáról (pl. 5000 az Üzleti tervnél), valamint az aktuális hónapban a felhasználói fiókban végrehajtott összes lekérdezés számáról.

Figyelem! A függvény meghívása igen nem növeli a lekérdezések száma.

A következő példa bemutatja a könyvtári függvények használatát.

// 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-könyvtár regisztrálása COM-objektumként

Az viesapiLibrary.dll könyvtár regisztrálható a Windows rendszerben ún COM tárgy. Ekkor számos programozási nyelvből és kész alkalmazásból hivatkozhatunk a könyvtár funkcióira, pl. Microsoft Excel, Access, SQL Server, Dynamics vagy Visual FoxPro.

Egy könyvtár COM-objektumként történő regisztrálásához kövesse az alábbi lépéseket:

  1. Töltse le a .NET könyvtár archiválja és csomagolja ki egy helyi lemezre tetszőleges helyre.
  2. Lépjen a kicsomagolt könyvtári fájlokat tartalmazó könyvtárba, és keresse meg a com-register.bat fájlt.
  3. Válaszd ki a com-register.bat fájlt az egérrel, és válassza ki a Run as administrator parancsot a helyi menüből.

A .NET könyvtár használata MS Excelben

A viesapiLibrary.dll könyvtár funkciói az MS Excel alkalmazásban használhatók saját függvények és eljárások írására a Visual Basic nyelv. Ahhoz, hogy ez lehetséges legyen, szükséges:

  1. Regisztráció az viesapiLibrary.dll könyvtár, mint a COM tárgy be Windows.
  2. Indítsa el az Excel alkalmazást. Válaszd ki a DEVELOPER fület a szalagon, majd kattintson a gombra Visual Basic gomb.
  3. Ban,-ben Visual Basic for Application ablakban válassza ki Tools és akkor References menüből. Ban,-ben Available References listázza, keresse meg és válassza ki VIESAPI Service Client for .NET Framework (C#). Erősítse meg választását a gombbal OK gomb.
  4. Tól Insert menüből válassza ki Module és illessze be a Visual Basic példáiban bemutatott függvénykódot az új ablakba.
  5. Végül a megfelelő w értékei viesapi.ID és viesapi.Key be kell állítani. A kulcs és a hozzáférési kulcs megszerzésének módját a fejezet ismerteti Az azonosító és a hozzáférési kulcs generálása