VIES programmeringsbiblioteker
Programmeringsbiblioteker giver dig mulighed for at søge efter iværksætterdata baseret på det indtastede EU-momsnummer. I øjeblikket er API-biblioteker tilgængelige for følgende programmeringssprog:
- .NET (C#, Visual Basic)
- Java
- JavaScript (Node.js)
- PHP
- Python
- C/C++
API giver følgende funktioner:
getVIESData
– funktion til at bekræfte aktiviteten af det EU-momsnummer, der er tildelt af en af EU-medlemsstaterne,getVIESDataParsed
– funktion til at bekræfte aktiviteten af det EU-momsnummer, der er tildelt af en af EU-medlemsstaterne, og returnere den parsede forhandleradresse,getVIESDataAsync
– asynkron funktion, som, baseret på den tilsendte batch af momsnumre, giver dig mulighed for at få den aktuelle EU-momsstatus og forhandlerdata.getVIESDataAsyncResult
– funktionen giver dig mulighed for at hente batchresultater baseret på det token, der returneres af funktionen getVIESDataAsyncgetAccountStatus
– funktion til at hente opdaterede oplysninger om brugerkontoen.
Integration
Alle biblioteker med kildekoder er tilgængelige for download på Hent side. Derudover er kildekoden til bibliotekerne også tilgængelig i vores officielle lager på Github.
Måden at integrere biblioteket på afhænger af det valgte programmeringssprog. For de sprog, der understøtter biblioteksstyring baseret på et centralt lager, er det muligt at bruge det.
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
Godkendelse
For at udføre den korrekte godkendelse skal de korrekte værdier af id
og key
parametre skal angives under konstruktionen af klientobjektet. Det id
parameter skal indeholde en gyldig nøgle-id, der bruges til godkendelse. Det key
parameter skal indeholde en gyldig værdi af den nøgle, der bruges til godkendelse. Nøgleidentifikationen og nøglen genereres af brugeren efter at have logget ind på sin konto på viesapi.eu
portal. Processen med at generere nøglerne og identifikatorerne er blevet beskrevet detaljeret ovenfor.
Følgende eksempel illustrerer, hvordan du bruger biblioteksfunktionerne:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
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"
Opmærksomhed! Den aktuelle tid på klientens computer bruges under godkendelsesprocessen. I tilfælde af autentificeringsproblemer, når du forsøger at oprette forbindelse til viesapi.eu-systemet, skal du derfor først sikre dig, at computeren eller serveren, hvorfra forbindelsen er etableret, har den korrekte aktuelle tid og tidszone. Du kan finde flere oplysninger om den metode, som viesapi.eu-systemet bruger til at autentificere forespørgsler her.
Kontrol af EU-momsnumre
EU-momsnummeret bekræftes ved at ringe til getVIESData
funktion, hvis parameter er det EU-momsnummer, som vi ønsker at verificere. Funktionen muliggør verifikation af EU-momsnumre udstedt af alle EU-medlemslande.
Følgende eksempel illustrerer, hvordan funktioner bruges i biblioteker:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
Detaljeret beskrivelse af returnerede attributter:
uid
– unik forespørgsels-id genereret af viesapi.eu,countryCode
– landekode, hvor den virksomhed, der er tilknyttet det EU-momsnummer, der er angivet i forespørgslen, er registreret,vatNumber
– EU-momsnummer for den verificerede virksomhed, der er angivet i forespørgslen,valid
– svar fra VIES-tjenesten, der informerer om den aktuelle EU-momsstatus for den kontrollerede enhed:true
– det EU-momsnummer, der er angivet i forespørgslen, er gyldigt,false
– EU-momsnummeret, der er angivet i forespørgslen, er ikke gyldigt,
traderName
– virksomhedens firmanavn,traderCompanyType
– returnerede altid en streng af '-'-tegn,traderAddress
– virksomhedsadresse, hvor virksomheden er registreret,id
– unik forespørgsels-id genereret af VIES-systemet (Konsultationsnummer)date
– forespørgsels udførelsesdatosource
– datakilde, altid: http://ec.europa.eu
Kontrol af EU-momsnumre med analyseret forhandleradresse
Du kan også bekræfte EU-momsnummeret ved at ringe til getVIESDataParsed
funktion, hvis parameter er det EU-momsnummer, som vi ønsker at verificere. Ved at kalde denne funktion modtager du, udover oplysninger om status som momspligtig, også den parsede erhvervsadresse.
Note! På grund af manglen på data returneret af VIES for handlende fra Tyskland og Spanien, gør funktionen det ikke vende tilbage en analyseret forhandleradresse (traderAddressComponent
) for disse lande.
Vigtig ansvarsfraskrivelse
Parsingsfunktionen bruger eksterne AI-algoritmer og API'er til automatisk at udtrække attributter såsom: by, postnummer, gade med gadenummer (bygningsnummer) og husnummer, så vi kan ikke garantere, at dens 100% fungerer korrekt.
Følgende eksempel illustrerer, hvordan funktioner bruges i biblioteker:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
Detaljeret beskrivelse af returnerede attributter:
uid
– unik forespørgsels-id genereret af viesapi.eu,countryCode
– landekode, hvor den virksomhed, der er tilknyttet det EU-momsnummer, der er angivet i forespørgslen, er registreret,vatNumber
– EU-momsnummer for den verificerede virksomhed, der er angivet i forespørgslen,valid
– svar fra VIES-tjenesten, der informerer om den aktuelle EU-momsstatus for den kontrollerede enhed:true
– det EU-momsnummer, der er angivet i forespørgslen, er gyldigt,false
– EU-momsnummeret, der er angivet i forespørgslen, er ikke gyldigt,
traderName
– virksomhedens firmanavn,traderCompanyType
– returnerede altid en streng af '-'-tegn,traderAddress
– virksomhedsadresse, hvor virksomheden er registreret (originalt format)traderAddressComponent
– komponentgrupperingsadresseoplysningercountry
– navnet på det erhvervsdrivende land på dets nationale sprogpostalCode
– postnummer på den erhvervsdrivendes adressecity
– by for den erhvervsdrivendes adressestreet
-gade for den erhvervsdrivendes adressestreetNumber
– vejnummer på den erhvervsdrivendes adressehouseNumber
– husnummer på den erhvervsdrivendes adresse
id
– unik forespørgsels-id genereret af VIES-systemet (Konsultationsnummer)date
– forespørgsels udførelsesdatosource
– datakilde, altid: http://ec.europa.eu
Batch (asynkron) kontrol af EU-momsnumre
getVIESDataAsync
– asynkron funktion, som, baseret på den tilsendte batch af momsnumre, giver dig mulighed for at få den aktuelle EU-momsstatus og forhandlerdata.
Som en parameter skal du angive et string-array, der indeholder EU-momsnumre, for hvilke EU-momsskatteyderstatus skal kontrolleres, og treader-data skal downloades.
Minimumsantallet af sendt EU-momsnumre er 2, og det maksimale er 99.
En korrekt kaldt funktion returnerer et token, som er nødvendigt for at hente anmodningsresultaterne. Følgende eksempel illustrerer, hvordan funktioner bruges i biblioteker:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
På grund af funktionens asynkrone karakter kan resultaterne hentes efter ca. 2-3 minutter. Det er ligegyldigt, om der blev sendt 2 eller 99 EU-momsnumre i anmodningen.
Hvis mindst ét EU-momsnummer, der er sendt i anmodningen, har et forkert format, returnerer systemet fejlen "Momsnummeret er ugyldigt".
For at hente resultaterne for den sendte anmodning, ring til getVIESDataAsyncResult
funktion, der angiver tokenværdien som inputparameter.
Vigtig bemærkning!
- Funktionen blev forberedt som en løsning på fejlen returneret af VIES-systemet: "
The maximum number of concurrent requests has been reached
"(MS_MAX_CONCURRENT_REQ
). Vi anbefaler at bruge det, når du sender anmodninger om Tyskland (DE) og Frankrig (FR), som returnerede ovennævnte fejl. - Indtil processen med at kontrollere alle EU-momsnumre sendt i anmodningen er afsluttet, vil alle efterfølgende forsøg blive afvist, og fejlen vil blive rettet "
The maximum number of batch request has been reached, please re-submit your request later
“.
getVIESDataAsyncResult
– funktionen giver dig mulighed for at hente batchresultater baseret på det token, der returneres af getVIESDataAsync
fungere.
Følgende eksempel illustrerer, hvordan funktioner bruges i biblioteker:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
For hvert EU-momsnummer, der sendes i batch-opkaldet, stemmer attributter med svaret på getVIESData
funktion returneres.
Henter oplysninger om brugerens kontostatus
Funktionen giver dig mulighed for at downloade al den grundlæggende information om brugerkontoen, som vises efter at du er logget ind på kontoen på viesapi.eu-portalen. Funktionen returnerer også information om det maksimale antal forespørgsler, der er tilgængelige under den valgte plan (f.eks. 5.000 for forretningsplanen) og det samlede antal af alle forespørgsler foretaget i den aktuelle måned på brugerens konto.
Opmærksomhed! Kald funktionen gør ikke stige antallet af stillede forespørgsler.
Følgende eksempel illustrerer, hvordan du bruger biblioteksfunktionerne.
- C#
- C/C++
- Java
- JavaScript
- PHP
- Python
- Visual Basic
// 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
Registrering af et .NET-bibliotek som et COM-objekt
Det viesapiLibrary.dll
bibliotek kan registreres i Windows-systemet som det såkaldte COM
objekt. Så kan bibliotekets funktioner refereres fra mange forskellige programmeringssprog og færdige applikationer, inkl. Microsoft Excel, Access, SQL Server, Dynamics eller Visual FoxPro.
Følg disse trin for at registrere et bibliotek som et COM-objekt:
- Download .NET bibliotek arkivere og pakke den ud på en lokal disk til et hvilket som helst sted.
- Gå til mappen med udpakkede biblioteksfiler og find
com-register.bat
fil. - Vælg
com-register.bat
fil med musen og vælgRun as administrator
kommando fra kontekstmenuen.
Brug af .NET-biblioteket i MS Excel
Funktionerne i biblioteket viesapiLibrary.dll kan bruges i MS Excel-applikationen til at skrive dine egne funktioner og procedurer i Visual Basic
Sprog. For at gøre det muligt er det nødvendigt at:
- Tilmeld det
viesapiLibrary.dll
bibliotek som enCOM
objekt påWindows
. - Start Excel-applikationen. Vælg
DEVELOPER
fanen på båndet, og klik derefter påVisual Basic
knap. - I den
Visual Basic for Application
vindue, vælgTools
og såReferences
fra menuen. I denAvailable References
liste, find og vælgVIESAPI Service Client for .NET Framework (C#)
. Bekræft dit valg medOK
knap. - Fra
Insert
menu, vælgModule
og indsæt funktionskoden præsenteret i eksemplerne for Visual Basic i det nye vindue. - Endelig passende værdier af w for
viesapi.ID
ogviesapi.Key
skal indstilles. Metoden til at få nøglen og adgangsnøglen er beskrevet i kapitlet Generering af identifikator og adgangsnøgle