Βιβλιοθήκες Προγραμματισμού VIES
Οι βιβλιοθήκες προγραμματισμού σάς επιτρέπουν να αναζητάτε δεδομένα επιχειρηματιών με βάση τον καταχωρημένο αριθμό ΦΠΑ ΕΕ. Επί του παρόντος, οι βιβλιοθήκες API είναι διαθέσιμες για τις ακόλουθες γλώσσες προγραμματισμού:
- .NET (C#, Visual Basic)
- Ιάβα
- JavaScript (Node.js)
- PHP
- Πύθων
- C/C++
Το API παρέχει τις ακόλουθες δυνατότητες:
getVIESData– λειτουργία επιβεβαίωσης της δραστηριότητας του ΑΦΜ ΕΕ που έχει εκχωρηθεί από οποιοδήποτε κράτος μέλος της Ευρωπαϊκής Ένωσης,getVIESDataParsed– λειτουργία επιβεβαίωσης της δραστηριότητας του αριθμού ΦΠΑ ΕΕ που έχει εκχωρηθεί από οποιοδήποτε από τα κράτη μέλη της Ευρωπαϊκής Ένωσης και επιστροφής της αναλυμένης διεύθυνσης του εμπόρου,getVIESDataAsync– ασύγχρονη λειτουργία, η οποία, με βάση την αποσταλμένη παρτίδα αριθμών ΦΠΑ, σας επιτρέπει να λάβετε την τρέχουσα κατάσταση ΦΠΑ της ΕΕ και τα δεδομένα του εμπόρου,getVIESDataAsyncResult– η συνάρτηση σάς επιτρέπει να ανακτήσετε αποτελέσματα παρτίδας με βάση το διακριτικό που επιστρέφεται από τη συνάρτηση getVIESDataAsync,getAccountStatus– λειτουργία για την ανάκτηση ενημερωμένων πληροφοριών σχετικά με τον λογαριασμό χρήστη,getVIESStatus– λειτουργία για την ανάκτηση ενημερωμένων πληροφοριών σχετικά με το ίδιο το σύστημα αναφοράς VIES.
Ενσωμάτωση
Όλες οι βιβλιοθήκες με πηγαίους κωδικούς είναι διαθέσιμες για λήψη στο Κατεβάστε σελίδα. Επιπλέον, ο πηγαίος κώδικας για τις βιβλιοθήκες είναι επίσης διαθέσιμος στο επίσημο αποθετήριο μας στο Github.
Ο τρόπος ενσωμάτωσης της βιβλιοθήκης εξαρτάται από την επιλεγμένη γλώσσα προγραμματισμού. Για εκείνες τις γλώσσες που υποστηρίζουν τη διαχείριση βιβλιοθήκης με βάση ένα κεντρικό αποθετήριο, είναι δυνατή η χρήση του.
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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.3.0</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.3.0.zip
' No central repository support
Αυθεντικοποίηση
Για να πραγματοποιηθεί ο σωστός έλεγχος ταυτότητας, οι σωστές τιμές του id και key Οι παράμετροι πρέπει να παρέχονται κατά την κατασκευή του αντικειμένου πελάτη. ο id Η παράμετρος πρέπει να περιέχει ένα έγκυρο αναγνωριστικό κλειδιού που χρησιμοποιείται για την εξουσιοδότηση. ο key Η παράμετρος πρέπει να περιέχει μια έγκυρη τιμή του κλειδιού που χρησιμοποιείται για την εξουσιοδότηση. Το αναγνωριστικό κλειδιού και το κλειδί δημιουργούνται από τον χρήστη αφού συνδεθεί στο λογαριασμό του στο viesapi.eu πύλη. Η διαδικασία δημιουργίας των κλειδιών και των αναγνωριστικών περιγράφηκε λεπτομερώς παραπάνω.
Το ακόλουθο παράδειγμα επεξηγεί τον τρόπο χρήσης των συναρτήσεων της βιβλιοθήκης:
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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"
Προσοχή! Η τρέχουσα ώρα του υπολογιστή του πελάτη χρησιμοποιείται κατά τη διαδικασία ελέγχου ταυτότητας. Επομένως, σε περίπτωση προβλημάτων ελέγχου ταυτότητας κατά την προσπάθεια σύνδεσης στο σύστημα viesapi.eu, βεβαιωθείτε πρώτα ότι ο υπολογιστής ή ο διακομιστής από τον οποίο πραγματοποιείται η σύνδεση έχει τη σωστή τρέχουσα ώρα και ζώνη ώρας. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τη μέθοδο που χρησιμοποιεί το σύστημα viesapi.eu για τον έλεγχο ταυτότητας των ερωτήσεων εδώ.
Έλεγχος αριθμών ΦΠΑ ΕΕ
Ο αριθμός ΦΠΑ ΕΕ επιβεβαιώνεται καλώντας το getVIESData συνάρτηση, η παράμετρος της οποίας είναι ο ΑΦΜ ΕΕ που θέλουμε να επαληθεύσουμε. Η λειτουργία επιτρέπει την επαλήθευση των αριθμών ΦΠΑ ΕΕ που εκδίδονται από όλα τα κράτη μέλη της Ευρωπαϊκής Ένωσης.
Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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
Λεπτομερής περιγραφή των επιστρεφόμενων χαρακτηριστικών:
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%.
Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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
Λεπτομερής περιγραφή των επιστρεφόμενων χαρακτηριστικών:
uid– μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το viesapi.eu,countryCode– κωδικός χώρας στην οποία είναι εγγεγραμμένη η εταιρεία που σχετίζεται με τον ΑΦΜ της ΕΕ που παρέχεται στο αίτημα,vatNumber– Αριθμός ΦΠΑ ΕΕ της επαληθευμένης εταιρείας που παρέχεται στο ερώτημα,valid– απάντηση από την υπηρεσία VIES, που ενημερώνει για το τρέχον καθεστώς ΦΠΑ ΕΕ της ελεγχόμενης οντότητας:true– ο ΑΦΜ ΕΕ που παρέχεται στο αίτημα είναι έγκυρος,false– ο αριθμός ΦΠΑ ΕΕ που παρέχεται στο αίτημα δεν είναι έγκυρος,
traderName– όνομα εγγραφής εταιρείας (αρχική μορφή),
traderNameComponents– νομική μορφή εταιρείας ομαδοποίησης εξαρτημάτων:name– επωνυμία εταιρείας από traderName (χωρίς νομική μορφή),legalForm– όνομα νομικής μορφής που εξάγεται από το traderName (χωρίς επωνυμία εταιρείας),legalFormCanonicalId– αναγνωριστικό λεξικού νομικής μορφής,legalFromCanonicalName– όνομα νομικής μορφής στο λεξικό,
traderCompanyType– επέστρεφε πάντα μια σειρά χαρακτήρων '-',traderAddress– διεύθυνση εταιρείας όπου είναι εγγεγραμμένη η εταιρεία (αρχική μορφή),traderAddressComponent– λεπτομέρειες διεύθυνσης ομαδοποίησης στοιχείων,country– το όνομα της χώρας-εμπορευτή στην εθνική της γλώσσα,postalCode– ταχυδρομικός κώδικας της διεύθυνσης του εμπόρου,city– πόλη της διεύθυνσης του εμπόρου,street-οδός της διεύθυνσης του εμπόρου,streetNumber– αριθμός οδού και κτιρίου της διεύθυνσης του εμπόρου,houseNumber– αριθμός διαμερίσματος/γραφείου της διεύθυνσης του εμπόρου,other– άλλα στοιχεία διεύθυνσης (όνομα περιοχής, όνομα κτιρίου, αριθμός ορόφου κ.λπ.),id– μοναδικό αναγνωριστικό ερωτήματος που δημιουργείται από το σύστημα VIES (Consultation Number),date– ημερομηνία εκτέλεσης του ερωτήματος,source– πηγή δεδομένων, πάντα: http://ec.europa.eu
| legalFormCanonicalId | legalFormCanonicalName | όνομα απαρίθμησης βιβλιοθήκης |
| 0 | Αγνωστος | ΑΓΝΩΣΤΟΣ |
| 1 | Ατομική επιχείρηση | ΜΟΝΑΔΙΚΗ ΙΔΙΟΚΤΗΣΙΑ |
| 2 | Εταιρεία περιορισμένης ευθύνης | ΕΤΑΙΡΕΙΑ ΠΕΡΙΟΡΙΣΜΕΝΗΣ_ΕΥΘΥΝΗΣ |
| 3 | Ομόρρυθμη εταιρεία | ΓΕΝΙΚΗ_ΣΥΝΕΤΑΙΡΙΚΗ ΣΥΝΕΡΓΑΣΙΑ |
| 4 | Ανώνυμη εταιρεία | ΚΟΙΝΗ_ΜΕΤΑΦΟΡΙΚΗ_ΕΤΑΙΡΕΙΑ |
| 5 | Ετερόρρυθμη εταιρεία | ΠΕΡΙΟΡΙΣΜΕΝΗ_ΣΥΝΕΤΑΙΡΙΣΜΟΣ |
| 6 | Ιδιωτική εταιρεία περιορισμένης ευθύνης | ΙΔΙΩΤΙΚΗ_ΕΤΑΙΡΕΙΑ_ΠΕΡΙΟΡΙΣΜΕΝΗΣ_ΕΥΘΥΝΗΣ |
| 7 | Μονοπρόσωπη ανώνυμη εταιρεία | ΜΟΝΗ_ΜΕΛΗ_ΚΟΙΝΗ_ΜΕΤΟΧΙΚΗ_ΕΤΑΙΡΕΙΑ |
| 8 | Απλή εταιρεία περιορισμένης ευθύνης | ΑΠΛΗ_ΕΤΑΙΡΕΙΑ_ΠΕΡΙΟΡΙΣΜΕΝΗΣ_ΕΥΘΥΝΗΣ |
| 9 | Μονοπρόσωπη εταιρεία περιορισμένης ευθύνης | ΕΤΑΙΡΕΙΑ ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΕΥΘΥΝΗΣ ΕΝΟΣ ΜΕΛΟΥΣ |
| 10 | Απλοποιημένη ανώνυμη εταιρεία | ΑΠΛΟΠΟΙΗΜΕΝΗ_ΚΟΙΝΗ_ΕΤΑΙΡΕΙΑ_ΜΕΤΑΦΟΡΑΣ |
| 11 | Μικρή εταιρεία | ΜΙΚΡΗ_ΕΤΑΙΡΕΙΑ |
| 12 | Περιορισμένης ευθύνης ανώνυμη εταιρεία | ΠΕΡΙΟΡΙΣΜΕΝΗ_ΚΟΙΝΗ_ΣΥΝΕΤΑΙΡΙΣΗ_ΜΕ_ΑΠΟΘΕΜΑΤΙΚΟ_ΚΑΤΑΣΤΗΜΑ |
| 13 | Επαγγελματική συνεργασία | ΕΠΑΓΓΕΛΜΑΤΙΚΗ_ΣΥΝΕΤΑΙΡΙΣΜΟΣ |
| 14 | Εταιρεία περιορισμένης ευθύνης | ΠΕΡΙΟΡΙΣΜΕΝΗ_ΕΥΘΥΝΗ_ΣΥΝΕΤΑΙΡΙΣΜΟΣ |
| 15 | Ιδιωτική συνεργασία | ΙΔΙΩΤΙΚΗ_ΣΥΝΕΤΑΙΡΙΣΜΟΣ |
| 16 | Εταιρεία περιορισμένης ευθύνης | ΕΤΑΙΡΕΙΑ_ΠΕΡΙΟΡΙΣΜΕΝΗΣ_ΕΥΘΥΝΗΣ_ΠΕΡΙΟΡΙΣΜΕΝΗ_ΣΥΝΕΤΑΙΡΙΣΜΟΣ |
| 17 | Εταιρεία περιορισμένης ευθύνης | ΕΤΑΙΡΕΙΑ_ΠΕΡΙΟΡΙΣΜΕΝΗΣ_ΕΥΘΥΝΗΣ_ΠΕΡΙΟΡΙΣΜΕΝΗ_ΚΟΙΝΗ_ΣΥΝΕΤΑΙΡΙΣΗ |
| 18 | Δημόσιο ίδρυμα | ΔΗΜΟΣΙΟ_ΙΔΡΥΜΑ |
Ομαδικός (ασύγχρονος) έλεγχος ΑΦΜ ΕΕ
getVIESDataAsync – ασύγχρονη λειτουργία, η οποία, με βάση την απεσταλμένη παρτίδα αριθμών ΦΠΑ, σας επιτρέπει να λαμβάνετε την τρέχουσα κατάσταση ΦΠΑ στην ΕΕ και τα δεδομένα συναλλασσόμενου.
Ως παράμετρος, παρέχετε έναν πίνακα συμβολοσειρών που περιέχει αριθμούς ΦΠΑ ΕΕ για τους οποίους πρέπει να ελεγχθεί η κατάσταση φορολογούμενου ΦΠΑ στην ΕΕ και να γίνει λήψη των δεδομένων του χρήστη.
Ο ελάχιστος αριθμός αριθμών ΦΠΑ ΕΕ που αποστέλλονται είναι 3 και ο μέγιστος είναι 99.
Μια σωστά καλούμενη συνάρτηση επιστρέφει ένα διακριτικό, το οποίο είναι απαραίτητο για την ανάκτηση των αποτελεσμάτων του αιτήματος. Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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
Λόγω της ασύγχρονης φύσης της συνάρτησης, τα αποτελέσματα μπορούν να ανακτηθούν μετά από περίπου 2-10 λεπτά. Εάν τουλάχιστον ένας αριθμός ΦΠΑ ΕΕ που καταχωρήθηκε στο αίτημα έχει λανθασμένη μορφή, το σύστημα επιστρέφει το σφάλμα "Ο αριθμός ΦΠΑ δεν είναι έγκυρος".
Για να ανακτήσετε τα αποτελέσματα για το απεσταλμένο αίτημα, καλέστε το getVIESDataAsyncResult συνάρτηση, παρέχοντας την τιμή διακριτικού ως παράμετρο εισόδου.
Σημαντική σημείωση!
- Η συνάρτηση προετοιμάστηκε ως λύση για το σφάλμα που επέστρεψε το σύστημα VIES:
The maximum number of concurrent requests has been reached(MS_MAX_CONCURRENT_REQ). Συνιστούμε να το χρησιμοποιείτε κατά την αποστολή αιτημάτων για Γερμανία (DE) και Γαλλία (Γαλλία), το οποίο επέστρεψε το προαναφερθέν σφάλμα. - Δημιουργήστε μεγαλύτερες παρτίδες που περιέχουν περισσότερους από τρεις ΑΦΜ. Μην συμπεριλάβετε τον δικό σας ΑΦΜ σε μια παρτίδα, καθώς θα απορριφθεί. Κάθε παρτίδα πρέπει να περιέχει μια λίστα με μοναδικούς ΑΦΜ.
- Όταν χρησιμοποιείτε το
getVIESDataAsyncResultλειτουργία, αποφύγετε τον πολύ συχνό έλεγχο της κατάστασης της παρτίδας. Δεδομένου ότι η επεξεργασία παρτίδας διαρκεί συνήθως μεταξύ 2 και 10 λεπτών, η δειγματοληψία της κατάστασης κάθε δευτερόλεπτο δεν είναι απαραίτητη. Συνιστάται να ελέγχετε την κατάσταση όχι περισσότερο από μία φορά κάθε 20-30 δευτερόλεπτα. - Οι παρτίδες πρέπει να αποστέλλονται διαδοχικά και όχι παράλληλα. Η διαδικασία δεν είναι πολυνηματική – στείλτε μία παρτίδα, περιμένετε το αποτέλεσμα, λάβετε το και, στη συνέχεια, στείλτε την επόμενη. Η ταυτόχρονη αποστολή πολλαπλών παρτίδων μπορεί να προκαλέσει προσωρινό αποκλεισμό της πρόσβασης από το σύστημα VIES, αποτρέποντας περαιτέρω υποβολές παρτίδων.
getVIESDataAsyncResult– η λειτουργία σάς επιτρέπει να ανακτήσετε αποτελέσματα παρτίδας με βάση το διακριτικό που επιστράφηκε από το getVIESDataAsync λειτουργία.
Το ακόλουθο παράδειγμα επεξηγεί πώς χρησιμοποιούνται οι συναρτήσεις στις βιβλιοθήκες:
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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
Για κάθε αριθμό ΦΠΑ ΕΕ που μεταβιβάζεται στη μαζική κλήση, χαρακτηριστικά που συνάδουν με την απόκριση στο getVIESData η λειτουργία επιστρέφεται.
Ανάκτηση πληροφοριών σχετικά με την κατάσταση του λογαριασμού του χρήστη
Η λειτουργία σάς επιτρέπει να κατεβάσετε όλες τις βασικές πληροφορίες σχετικά με τον λογαριασμό χρήστη, οι οποίες εμφανίζονται μετά τη σύνδεση στον λογαριασμό στην πύλη viesapi.eu. Η συνάρτηση επιστρέφει επίσης πληροφορίες σχετικά με τον μέγιστο αριθμό των διαθέσιμων ερωτημάτων στο πλαίσιο του επιλεγμένου προγράμματος (π.χ. 5.000 για το επιχειρηματικό σχέδιο) και τον συνολικό αριθμό όλων των ερωτημάτων που έγιναν τον τρέχοντα μήνα στον λογαριασμό του χρήστη.
Προσοχή! Η κλήση της συνάρτησης κάνει να μην αυξηθεί τον αριθμό των ερωτημάτων που έγιναν.
Το ακόλουθο παράδειγμα επεξηγεί τον τρόπο χρήσης των συναρτήσεων της βιβλιοθήκης.
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- 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
Ανάκτηση πληροφοριών σχετικά με την κατάσταση του συστήματος VIES
Αυτή η συνάρτηση σάς επιτρέπει να επαληθεύσετε την τρέχουσα κατάσταση του συστήματος VIES. Επιστρέφει μια συνολική κατάσταση που υποδεικνύει τη διαθεσιμότητα, καθώς και μια λίστα με τις μεμονωμένες χώρες-μέλη μαζί με την τρέχουσα κατάσταση διαθεσιμότητας των εθνικών τους συστημάτων.
Προσοχή! Η κλήση της συνάρτησης κάνει να μην αυξηθεί τον αριθμό των ερωτημάτων που έγιναν.
Τα παρακάτω παραδείγματα δείχνουν πώς να χρησιμοποιήσετε τη συνάρτηση βιβλιοθήκης.
- C#
- C/C++
- Ιάβα
- JavaScript
- PHP
- Πύθων
- Visual Basic
// Get current EU VIES system status
VIESStatus viesStatus = viesapi.GetVIESStatus();
if (viesStatus != null)
{
Console.WriteLine(viesStatus);
} else {
Console.WriteLine("Error: " + viesapi.LastError + " (code: " + viesapi.LastErrorCode + ")");
}
// Get current EU VIES system status
vies_status = viesapi_get_vies_status(viesapi);
if (vies_status != NULL) {
printf("VIES is available: %s\n", vies_status->Available ? "Yes" : "No");
printf("\n");
for (i = 0; i < vies_status->CountriesCount; i++) {
printf("Country code: %s\n", vies_status->Countries[i]->CountryCode);
printf("Status: %s\n", vies_status->Countries[i]->Status);
printf("\n");
}
} else {
printf("Error: %s (code: %d)\n", viesapi_get_last_err(viesapi), viesapi_get_last_err_code(viesapi));
}
// Get current EU VIES system status
VIESStatus viesStatus = viesapi.getVIESStatus();
if (viesStatus != null) {
System.out.println(viesStatus);
} else {
System.out.println("Error: " + viesapi.getLastError() + " (code: " + viesapi.getLastErrorCode() + ")");
}
// Get current EU VIES system status
viesapi.getVIESStatus().then((vies) => {
console.log(vies.toString());
}).catch((e) => {
console.log(e.message);
});
// Get current EU VIES system status
$vies_system = $viesapi->get_vies_status();
if ($vies_system) {
echo '<pre>' . print_r($vies_system, true) . '</pre>';
} else {
echo '<p>Error: ' . $viesapi->get_last_error() . ' (code: ' . $viesapi->get_last_error_code() . ')</p>';
}
# Get current EU VIES system status
vies_status = viesapi.get_vies_status()
if vies_status:
print(vies_status)
else:
print('Error: ' + viesapi.get_last_error() + ' (code: ' + str(viesapi.get_last_error_code()) + ')')
'Get current EU VIES system status
Dim status As VIESStatus
Set status = viesapi.GetVIESStatus()
If status Is Nothing Then
Console.WriteLine("Error: {0}", viesapi.LastError)
Else
Console.WriteLine(status.ToString())
End If
Καταχώρηση μιας βιβλιοθήκης .NET ως αντικείμενο COM
ο viesapiLibrary.dll βιβλιοθήκη μπορεί να εγγραφεί στο σύστημα των Windows ως το λεγόμενο COM αντικείμενο. Στη συνέχεια, οι λειτουργίες της βιβλιοθήκης μπορούν να αναφερθούν από πολλές διαφορετικές γλώσσες προγραμματισμού και έτοιμες εφαρμογές, συμπεριλαμβανομένων. Microsoft Excel, Access, SQL Server, Dynamics ή Visual FoxPro.
Για να καταχωρήσετε μια βιβλιοθήκη ως αντικείμενο COM, ακολουθήστε τα εξής βήματα:
- Κατεβάστε το Βιβλιοθήκη .NET αρχειοθετήστε και αποσυσκευάστε το σε έναν τοπικό δίσκο σε οποιαδήποτε τοποθεσία.
- Μεταβείτε στον κατάλογο με μη συσκευασμένα αρχεία βιβλιοθήκης και βρείτε το
com-register.batαρχείο. - Επίλεξε το
com-register.batαρχείο με το ποντίκι και επιλέξτε τοRun as administratorεντολή από το μενού περιβάλλοντος.
Χρήση της βιβλιοθήκης .NET στο MS Excel
Οι λειτουργίες της βιβλιοθήκης viesapiLibrary.dll μπορούν να χρησιμοποιηθούν στην εφαρμογή MS Excel για να γράψετε τις δικές σας λειτουργίες και διαδικασίες στο Visual Basic Γλώσσα. Για να καταστεί δυνατό, είναι απαραίτητο:
- Κανω ΕΓΓΡΑΦΗ ο
viesapiLibrary.dllβιβλιοθήκη ως αCOMαντικείμενο επάνωWindows. - Ξεκινήστε την εφαρμογή Excel. Επίλεξε το
DEVELOPERκαρτέλα στην κορδέλα και, στη συνέχεια, κάντε κλικ στοVisual Basicκουμπί. - Στο
Visual Basic for Applicationπαράθυρο, επιλέξτεToolsκαι μετάReferencesαπό το μενού. ΣτοAvailable Referencesλίστα, βρείτε και επιλέξτεVIESAPI Service Client for .NET Framework (C#). Επιβεβαιώστε την επιλογή σας με τοOKκουμπί. - Από το
Insertμενού, επιλέξτεModuleκαι επικολλήστε τον κώδικα συνάρτησης που παρουσιάζεται στα παραδείγματα της Visual Basic στο νέο παράθυρο. - Τέλος, κατάλληλες τιμές του w για
viesapi.IDκαιviesapi.Keyπρέπει να οριστεί. Η μέθοδος απόκτησης του κλειδιού και του κλειδιού πρόσβασης περιγράφεται στο κεφάλαιο Δημιουργία του αναγνωριστικού και του κλειδιού πρόσβασης