Βιβλιοθήκες Προγραμματισμού VIES

Οι βιβλιοθήκες προγραμματισμού σάς επιτρέπουν να αναζητάτε δεδομένα επιχειρηματιών με βάση τον καταχωρημένο αριθμό ΦΠΑ ΕΕ. Επί του παρόντος, οι βιβλιοθήκες API είναι διαθέσιμες για τις ακόλουθες γλώσσες προγραμματισμού:

  • .NET (C#, Visual Basic)
  • Ιάβα
  • JavaScript (Node.js)
  • PHP
  • Πύθων
  • C/C++

Το API παρέχει τις ακόλουθες δυνατότητες:

  • getVIESData – λειτουργία επιβεβαίωσης της δραστηριότητας του ΑΦΜ ΕΕ που έχει εκχωρηθεί από οποιοδήποτε κράτος μέλος της Ευρωπαϊκής Ένωσης,
  • getVIESDataParsedλειτουργία επιβεβαίωσης της δραστηριότητας του ΑΦΜ ΕΕ που έχει εκχωρηθεί από οποιοδήποτε κράτος μέλος της Ευρωπαϊκής Ένωσης και επιστροφής της αναλυμένης διεύθυνσης εμπόρου,
  • getVIESDataAsync – ασύγχρονη λειτουργία, η οποία, με βάση την απεσταλμένη παρτίδα αριθμών ΦΠΑ, σας επιτρέπει να λαμβάνετε την τρέχουσα κατάσταση ΦΠΑ στην ΕΕ και τα δεδομένα συναλλασσόμενου.
  • getVIESDataAsyncResult – η συνάρτηση σάς επιτρέπει να ανακτάτε αποτελέσματα παρτίδας με βάση το διακριτικό που επιστρέφεται από τη συνάρτηση getVIESDataAsync
  • getAccountStatus – λειτουργία για την ανάκτηση ενημερωμένων πληροφοριών σχετικά με τον λογαριασμό χρήστη.

Ενσωμάτωση

Όλες οι βιβλιοθήκες με πηγαίους κωδικούς είναι διαθέσιμες για λήψη στο Κατεβάστε σελίδα. Επιπλέον, ο πηγαίος κώδικας για τις βιβλιοθήκες είναι επίσης διαθέσιμος στο επίσημο αποθετήριο μας στο Github.

Ο τρόπος ενσωμάτωσης της βιβλιοθήκης εξαρτάται από την επιλεγμένη γλώσσα προγραμματισμού. Για εκείνες τις γλώσσες που υποστηρίζουν τη διαχείριση βιβλιοθήκης με βάση ένα κεντρικό αποθετήριο, είναι δυνατή η χρήση του.

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

Αυθεντικοποίηση

Για να πραγματοποιηθεί ο σωστός έλεγχος ταυτότητας, οι σωστές τιμές του id και key Οι παράμετροι πρέπει να παρέχονται κατά την κατασκευή του αντικειμένου πελάτη. ο id Η παράμετρος πρέπει να περιέχει ένα έγκυρο αναγνωριστικό κλειδιού που χρησιμοποιείται για την εξουσιοδότηση. ο key Η παράμετρος πρέπει να περιέχει μια έγκυρη τιμή του κλειδιού που χρησιμοποιείται για την εξουσιοδότηση. Το αναγνωριστικό κλειδιού και το κλειδί δημιουργούνται από τον χρήστη αφού συνδεθεί στο λογαριασμό του στο viesapi.eu πύλη. Η διαδικασία δημιουργίας των κλειδιών και των αναγνωριστικών περιγράφηκε λεπτομερώς παραπάνω.

Το ακόλουθο παράδειγμα επεξηγεί τον τρόπο χρήσης των συναρτήσεων της βιβλιοθήκης:

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"

Προσοχή! Η τρέχουσα ώρα του υπολογιστή του πελάτη χρησιμοποιείται κατά τη διαδικασία ελέγχου ταυτότητας. Επομένως, σε περίπτωση προβλημάτων ελέγχου ταυτότητας κατά την προσπάθεια σύνδεσης στο σύστημα viesapi.eu, βεβαιωθείτε πρώτα ότι ο υπολογιστής ή ο διακομιστής από τον οποίο πραγματοποιείται η σύνδεση έχει τη σωστή τρέχουσα ώρα και ζώνη ώρας. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τη μέθοδο που χρησιμοποιεί το σύστημα viesapi.eu για τον έλεγχο ταυτότητας των ερωτήσεων εδώ.

Έλεγχος αριθμών ΦΠΑ ΕΕ

Ο αριθμός ΦΠΑ ΕΕ επιβεβαιώνεται καλώντας το getVIESData συνάρτηση, η παράμετρος της οποίας είναι ο ΑΦΜ ΕΕ που θέλουμε να επαληθεύσουμε. Η λειτουργία επιτρέπει την επαλήθευση των αριθμών ΦΠΑ ΕΕ που εκδίδονται από όλα τα κράτη μέλη της Ευρωπαϊκής Ένωσης.

Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:

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

Λεπτομερής περιγραφή των επιστρεφόμενων χαρακτηριστικών:

  • uid – μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το viesapi.eu,
  • countryCode – κωδικός χώρας στην οποία είναι εγγεγραμμένη η εταιρεία που σχετίζεται με τον ΑΦΜ της ΕΕ που παρέχεται στο αίτημα,
  • vatNumber – Αριθμός ΦΠΑ ΕΕ της επαληθευμένης εταιρείας που παρέχεται στο ερώτημα,
  • valid – απάντηση από την υπηρεσία VIES, που ενημερώνει για το τρέχον καθεστώς ΦΠΑ ΕΕ της ελεγχόμενης οντότητας:
    • true – ο ΑΦΜ ΕΕ που παρέχεται στο αίτημα είναι έγκυρος,
    • false – ο αριθμός ΦΠΑ ΕΕ που παρέχεται στο αίτημα δεν είναι έγκυρος,
  • traderName – την εμπορική επωνυμία της εταιρείας,
  • traderCompanyType – επέστρεφε πάντα μια σειρά χαρακτήρων '-',
  • traderAddress – διεύθυνση της εταιρείας στην οποία είναι εγγεγραμμένη η εταιρεία,
  • id – μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το σύστημα VIES (Consultation Number)
  • date – ημερομηνία εκτέλεσης ερωτήματος
  • source – πηγή δεδομένων, πάντα: http://ec.europa.eu

Έλεγχος αριθμών ΦΠΑ ΕΕ με αναλυμένη διεύθυνση εμπόρου

Μπορείτε επίσης να επιβεβαιώσετε τον αριθμό ΦΠΑ ΕΕ καλώντας το getVIESDataParsed συνάρτηση, η παράμετρος της οποίας είναι ο ΑΦΜ ΕΕ που θέλουμε να επαληθεύσουμε. Κάνοντας κλήση αυτής της συνάρτησης, εκτός από τις πληροφορίες σχετικά με την κατάσταση φορολογούμενου ΦΠΑ, λαμβάνετε επίσης την αναλυμένη διεύθυνση εμπόρου.

Σημείωμα! Λόγω της έλλειψης δεδομένων που επιστρέφονται από το VIES για εμπόρους από τη Γερμανία και την Ισπανία, η λειτουργία λειτουργεί να μην επιστρέψει μια αναλυμένη διεύθυνση εμπόρου (traderAddressComponent) για αυτές τις χώρες.

Σημαντική Αποποίηση Ευθύνης

Η συνάρτηση ανάλυσης χρησιμοποιεί εξωτερικούς αλγόριθμους AI και API για την αυτόματη εξαγωγή χαρακτηριστικών όπως: πόλη, ταχυδρομικός κώδικας, οδός με αριθμό οδού (αριθμός κτιρίου) και αριθμός σπιτιού, επομένως δεν μπορούμε να εγγυηθούμε τη σωστή λειτουργία του 100%.

Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:

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

Λεπτομερής περιγραφή των επιστρεφόμενων χαρακτηριστικών:

  • uid – μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το viesapi.eu,
  • countryCode – κωδικός χώρας στην οποία είναι εγγεγραμμένη η εταιρεία που σχετίζεται με τον ΑΦΜ της ΕΕ που παρέχεται στο αίτημα,
  • vatNumber – Αριθμός ΦΠΑ ΕΕ της επαληθευμένης εταιρείας που παρέχεται στο ερώτημα,
  • valid – απάντηση από την υπηρεσία VIES, που ενημερώνει για το τρέχον καθεστώς ΦΠΑ ΕΕ της ελεγχόμενης οντότητας:
    • true – ο ΑΦΜ ΕΕ που παρέχεται στο αίτημα είναι έγκυρος,
    • false – ο αριθμός ΦΠΑ ΕΕ που παρέχεται στο αίτημα δεν είναι έγκυρος,
  • traderName – την εμπορική επωνυμία της εταιρείας,
  • traderCompanyType – επέστρεφε πάντα μια σειρά χαρακτήρων '-',
  • traderAddress – διεύθυνση εταιρείας όπου είναι εγγεγραμμένη η εταιρεία (αρχική μορφή)
  • traderAddressComponentΛεπτομέρειες διεύθυνσης ομαδοποίησης στοιχείων
    • country – όνομα της χώρας εμπόρου στην εθνική της γλώσσα
    • postalCode – ταχυδρομικός κώδικας της διεύθυνσης του εμπόρου
    • city – πόλη της διεύθυνσης του εμπόρου
    • street -οδός διεύθυνσης εμπόρου
    • streetNumber – αριθμός οδού της διεύθυνσης του εμπόρου
    • houseNumber – αριθμός κατοικίας της διεύθυνσης του εμπόρου
  • id – μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το σύστημα VIES (Consultation Number)
  • date – ημερομηνία εκτέλεσης ερωτήματος
  • source – πηγή δεδομένων, πάντα: http://ec.europa.eu

Ομαδικός (ασύγχρονος) έλεγχος ΑΦΜ ΕΕ

getVIESDataAsync – ασύγχρονη λειτουργία, η οποία, με βάση την απεσταλμένη παρτίδα αριθμών ΦΠΑ, σας επιτρέπει να λαμβάνετε την τρέχουσα κατάσταση ΦΠΑ στην ΕΕ και τα δεδομένα συναλλασσόμενου.
Ως παράμετρος, παρέχετε έναν πίνακα συμβολοσειρών που περιέχει αριθμούς ΦΠΑ ΕΕ για τους οποίους πρέπει να ελεγχθεί η κατάσταση φορολογούμενου ΦΠΑ στην ΕΕ και να γίνει λήψη των δεδομένων του χρήστη.

Ο ελάχιστος αριθμός αριθμών ΦΠΑ ΕΕ που αποστέλλονται είναι 2 και ο μέγιστος είναι 99.

Μια σωστά καλούμενη συνάρτηση επιστρέφει ένα διακριτικό, το οποίο είναι απαραίτητο για την ανάκτηση των αποτελεσμάτων του αιτήματος. Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:

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

Λόγω της ασύγχρονης φύσης της συνάρτησης, τα αποτελέσματα μπορούν να ανακτηθούν μετά από περίπου 2-3 λεπτά. Δεν έχει σημασία αν στο αίτημα εστάλησαν αριθμοί ΦΠΑ ΕΕ 2 ή 99.

Εάν τουλάχιστον ένας αριθμός ΦΠΑ ΕΕ που έχει διαβιβαστεί στο αίτημα έχει λανθασμένη μορφή, το σύστημα επιστρέφει ένα σφάλμα "Ο αριθμός ΦΠΑ δεν είναι έγκυρος".

Για να ανακτήσετε τα αποτελέσματα για το απεσταλμένο αίτημα, καλέστε το getVIESDataAsyncResult συνάρτηση, παρέχοντας την τιμή διακριτικού ως παράμετρο εισόδου.

Σημαντική Σημείωση!

  1. Η συνάρτηση προετοιμάστηκε ως λύση για το σφάλμα που επιστράφηκε από το σύστημα VIES:The maximum number of concurrent requests has been reached”(MS_MAX_CONCURRENT_REQ). Συνιστούμε να το χρησιμοποιείτε κατά την αποστολή αιτημάτων για Γερμανία (DE) και Γαλλία (Γαλλία), το οποίο επέστρεψε το προαναφερθέν σφάλμα.
  2. Μέχρι να ολοκληρωθεί η διαδικασία ελέγχου όλων των αριθμών ΦΠΑ ΕΕ που αποστέλλονται στο αίτημα, όλες οι επόμενες προσπάθειες θα απορριφθούν και το σφάλμα θα διορθωθεί "The maximum number of batch request has been reached, please re-submit your request later“.

getVIESDataAsyncResult– η λειτουργία σάς επιτρέπει να ανακτήσετε αποτελέσματα παρτίδας με βάση το διακριτικό που επιστράφηκε από το getVIESDataAsync λειτουργία.

Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:

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

Για κάθε αριθμό ΦΠΑ ΕΕ που μεταβιβάζεται στη μαζική κλήση, χαρακτηριστικά που συνάδουν με την απόκριση στο getVIESData η λειτουργία επιστρέφεται.

Ανάκτηση πληροφοριών σχετικά με την κατάσταση του λογαριασμού του χρήστη

Η λειτουργία σάς επιτρέπει να κατεβάσετε όλες τις βασικές πληροφορίες σχετικά με τον λογαριασμό χρήστη, οι οποίες εμφανίζονται μετά τη σύνδεση στον λογαριασμό στην πύλη viesapi.eu. Η συνάρτηση επιστρέφει επίσης πληροφορίες σχετικά με τον μέγιστο αριθμό των διαθέσιμων ερωτημάτων στο πλαίσιο του επιλεγμένου προγράμματος (π.χ. 5.000 για το επιχειρηματικό σχέδιο) και τον συνολικό αριθμό όλων των ερωτημάτων που έγιναν τον τρέχοντα μήνα στον λογαριασμό του χρήστη.

Προσοχή! Η κλήση της συνάρτησης γίνεται να μην αυξηθεί τον αριθμό των ερωτημάτων που έγιναν.

Το ακόλουθο παράδειγμα επεξηγεί τον τρόπο χρήσης των συναρτήσεων της βιβλιοθήκης.

// 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 ως αντικείμενο COM

ο viesapiLibrary.dll βιβλιοθήκη μπορεί να εγγραφεί στο σύστημα των Windows ως το λεγόμενο COM αντικείμενο. Στη συνέχεια, οι λειτουργίες της βιβλιοθήκης μπορούν να αναφερθούν από πολλές διαφορετικές γλώσσες προγραμματισμού και έτοιμες εφαρμογές, συμπεριλαμβανομένων. Microsoft Excel, Access, SQL Server, Dynamics ή Visual FoxPro.

Για να καταχωρήσετε μια βιβλιοθήκη ως αντικείμενο COM, ακολουθήστε τα εξής βήματα:

  1. Κατεβάστε το Βιβλιοθήκη .NET αρχειοθετήστε και αποσυσκευάστε το σε έναν τοπικό δίσκο σε οποιαδήποτε τοποθεσία.
  2. Μεταβείτε στον κατάλογο με μη συσκευασμένα αρχεία βιβλιοθήκης και βρείτε το com-register.bat αρχείο.
  3. Επίλεξε το com-register.bat αρχείο με το ποντίκι και επιλέξτε το Run as administrator εντολή από το μενού περιβάλλοντος.

Χρήση της βιβλιοθήκης .NET στο MS Excel

Οι λειτουργίες της βιβλιοθήκης viesapiLibrary.dll μπορούν να χρησιμοποιηθούν στην εφαρμογή MS Excel για να γράψετε τις δικές σας λειτουργίες και διαδικασίες στο Visual Basic Γλώσσα. Για να καταστεί δυνατό, είναι απαραίτητο:

  1. Κανω ΕΓΓΡΑΦΗ ο viesapiLibrary.dll βιβλιοθήκη ως α COM αντικείμενο επάνω Windows.
  2. Ξεκινήστε την εφαρμογή Excel. Επίλεξε το DEVELOPER καρτέλα στην κορδέλα και, στη συνέχεια, κάντε κλικ στο Visual Basic κουμπί.
  3. Στο Visual Basic for Application παράθυρο, επιλέξτε Tools και μετά References από το μενού. Στο Available References λίστα, βρείτε και επιλέξτε VIESAPI Service Client for .NET Framework (C#). Επιβεβαιώστε την επιλογή σας με το OK κουμπί.
  4. Από το Insert μενού, επιλέξτε Module και επικολλήστε τον κώδικα συνάρτησης που παρουσιάζεται στα παραδείγματα της Visual Basic στο νέο παράθυρο.
  5. Τέλος, κατάλληλες τιμές του w για viesapi.ID και viesapi.Key πρέπει να οριστεί. Η μέθοδος απόκτησης του κλειδιού και του κλειδιού πρόσβασης περιγράφεται στο κεφάλαιο Δημιουργία του αναγνωριστικού και του κλειδιού πρόσβασης