Bibliotecas de programación VIES
Las bibliotecas de programación le permiten buscar datos de empresarios en función del número de IVA de la UE ingresado. Actualmente, las bibliotecas API están disponibles para los siguientes lenguajes de programación:
- .NET (C#, Visual Basic)
- Java
- JavaScript (Node.js)
- PHP
- Pitón
- C/C++
La API proporciona las siguientes características:
getVIESData– función para confirmar la actividad del número de IVA de la UE asignado por cualquiera de los Estados miembros de la Unión Europea,getVIESDataParsed– función para confirmar la actividad del número de IVA de la UE asignado por cualquiera de los Estados miembros de la Unión Europea y devolver la dirección del comerciante analizada,getVIESDataAsync– función asincrónica que, a partir del lote enviado de números de IVA, permite obtener el estado actual del IVA de la UE y los datos del comerciante,getVIESDataAsyncResult– la función le permite recuperar resultados por lotes en función del token devuelto por la función getVIESDataAsync,getAccountStatus– función para recuperar información actualizada sobre la cuenta de usuario,getVIESStatus– función para recuperar información actualizada sobre el propio sistema de referencia VIES.
Integración
Todas las bibliotecas con códigos fuente están disponibles para su descarga en el Descargar página. Además, el código fuente de las bibliotecas también está disponible en nuestro repositorio oficial en Github.
La forma de integrar la biblioteca depende del lenguaje de programación seleccionado. Para aquellos lenguajes que soporten la gestión de bibliotecas en base a un repositorio central, es posible utilizarlo.
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Autenticación
Para realizar la autenticación correcta, los valores correctos de la id y key los parámetros deben proporcionarse durante la construcción del objeto del cliente. los id El parámetro debe contener un identificador de clave válido utilizado para la autorización. los key El parámetro debe contener un valor válido de la clave utilizada para la autorización. El identificador de clave y la clave son generados por el usuario después de iniciar sesión en su cuenta en el viesapi.eu portal. El proceso de generación de claves e identificadores se ha detallado anteriormente.
El siguiente ejemplo ilustra cómo usar las funciones de la biblioteca:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
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"
Atención! La hora actual de la computadora del cliente se usa durante el proceso de autenticación. Por lo tanto, en caso de problemas de autenticación al intentar conectarse al sistema viesapi.eu, primero asegúrese de que la computadora o servidor desde el que se establece la conexión tenga la hora y la zona horaria correctas. Puede encontrar más información sobre el método utilizado por el sistema viesapi.eu para autenticar las consultas. aquí.
Comprobación de los números de IVA de la UE
El número de IVA de la UE se confirma llamando al getVIESData función, cuyo parámetro es el número de IVA de la UE que queremos verificar. La función permite la verificación de los números de IVA de la UE emitidos por todos los estados miembros de la Unión Europea.
El siguiente ejemplo ilustra cómo se utilizan las funciones en las bibliotecas:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Descripción detallada de los atributos devueltos:
uid– identificador de consulta único generado por viesapi.eu,countryCode– código de país en el que está registrada la empresa asociada con el número de IVA de la UE proporcionado en la consulta,vatNumber– Número de IVA de la UE de la empresa verificada proporcionada en la consulta,valid– respuesta del servicio VIES, informando sobre el estado actual del IVA de la UE de la entidad verificada:true– el número de IVA de la UE proporcionado en la consulta es válido,false– el número de IVA de la UE proporcionado en la consulta no es válido,
traderName– nombre comercial de la empresa,traderCompanyType– siempre devolvía una cadena de caracteres '-',traderAddress– dirección de la empresa donde está registrada la empresa,id– identificador único de consulta generado por el sistema VIES (Número de Consulta)date– fecha de ejecución de la consultasource– fuente de datos, siempre: http://ec.europa.eu
Comprobación de los números de IVA de la UE con la dirección del comerciante analizada y la forma jurídica
También puede confirmar el número de IVA de la UE llamando al getVIESDataParsed Función cuyo parámetro es el número de IVA de la UE que queremos verificar. Al llamar a esta función, además de información sobre la condición de contribuyente del IVA, también se recibe la dirección del comerciante analizada.
Nota! Debido a la falta de datos devueltos por VIES para los comerciantes de Alemania y España, la función no... No volver una dirección de comerciante analizada (traderAddressComponent) para estos países.
Descargo de responsabilidad importante
La función de análisis utiliza algoritmos de IA y API externas para extraer automáticamente atributos como: ciudad, código postal, calle con número de calle (número de edificio) y número de casa, por lo que no podemos garantizar su correcto funcionamiento.
El siguiente ejemplo ilustra cómo se utilizan las funciones en las bibliotecas:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Descripción detallada de los atributos devueltos:
uid– identificador de consulta único generado por viesapi.eu,countryCode– código de país en el que está registrada la empresa asociada con el número de IVA de la UE proporcionado en la consulta,vatNumber– Número de IVA de la UE de la empresa verificada proporcionada en la consulta,valid– respuesta del servicio VIES, informando sobre el estado actual del IVA de la UE de la entidad verificada:true– el número de IVA de la UE proporcionado en la consulta es válido,false– el número de IVA de la UE proporcionado en la consulta no es válido,
traderName– nombre de registro de la empresa (formato original),
traderNameComponents– forma jurídica de la empresa agrupadora de componentes:name– nombre de la empresa de traderName (sin forma jurídica),legalForm– nombre de la forma jurídica extraído de traderName (sin nombre de la empresa),legalFormCanonicalId– identificador de diccionario de la forma jurídica,legalFromCanonicalName– nombre del diccionario de la forma jurídica,
traderCompanyType– siempre devolvía una cadena de caracteres '-',traderAddress– dirección de la empresa donde está registrada la empresa (formato original),traderAddressComponent– detalles de la dirección de agrupación de componentes,country– nombre del país del comerciante en su idioma nacional,postalCode– código postal de la dirección del comerciante,city– ciudad del domicilio del comerciante,street-calle del domicilio del comerciante,streetNumber– número de la calle del domicilio del comerciante,houseNumber– número de apartamento/oficina del domicilio del comerciante,other– otros detalles de la dirección (nombre de la zona, nombre del edificio, número de piso, etc.),
id– identificador único de consulta generado por el sistema VIES (Número de Consulta),date– fecha de ejecución de la consulta,source– fuente de datos, siempre: http://ec.europa.eu
| ID canónico del formulario legal | NombreCanónicoFormularioLegal | nombre de enumeración de la biblioteca |
| 0 | Desconocido | DESCONOCIDO |
| 1 | Empresa unipersonal | EMPRESA UNIPERSONAL |
| 2 | Sociedad de responsabilidad limitada | SOCIEDAD DE RESPONSABILIDAD LIMITADA |
| 3 | Sociedad colectiva | ASOCIACIÓN GENERAL |
| 4 | Sociedad anónima | SOCIEDAD ANÓNIMA |
| 5 | Sociedad en comandita | SOCIEDAD EN COMANDITA |
| 6 | Sociedad de responsabilidad limitada privada | SOCIEDAD DE RESPONSABILIDAD LIMITADA PRIVADA |
| 7 | Sociedad anónima unipersonal | SOCIEDAD ANÓNIMA UNIPERSONAL |
| 8 | Sociedad de responsabilidad limitada simple | SOCIEDAD DE RESPONSABILIDAD LIMITADA SIMPLE |
| 9 | Sociedad de responsabilidad limitada unipersonal | SOCIEDAD DE RESPONSABILIDAD LIMITADA DE UN SOLO MIEMBRO |
| 10 | Sociedad anónima simplificada | SOCIEDAD ANÓNIMA SIMPLIFICADA |
| 11 | Pequeña empresa | PEQUEÑA EMPRESA |
| 12 | Sociedad anónima en comandita | SOCIEDAD ANÓNIMA COMÚN |
| 13 | Asociación profesional | ASOCIACIÓN PROFESIONAL |
| 14 | Sociedad de responsabilidad limitada | SOCIEDAD DE RESPONSABILIDAD LIMITADA |
| 15 | Asociación privada | ASOCIACIÓN PRIVADA |
| 16 | Sociedad de responsabilidad limitada Sociedad en comandita | SOCIEDAD DE RESPONSABILIDAD LIMITADA |
| 17 | Sociedad de responsabilidad limitada Sociedad en comandita por acciones | SOCIEDAD DE RESPONSABILIDAD LIMITADA SOCIEDAD ANÓNIMA |
| 18 | Institución pública | INSTITUCIÓN PÚBLICA |
Comprobación por lotes (asincrónica) de números de IVA de la UE
getVIESDataAsync – función asincrónica que, a partir del lote enviado de números de IVA, permite obtener el estado actual del IVA de la UE y los datos del comerciante.
Como parámetro, proporcione una matriz de cadenas que contenga los números de IVA de la UE para los que se debe verificar el estado de contribuyente del IVA de la UE y se deben descargar los datos del lector.
El número mínimo de números de IVA de la UE enviados es 3 y el máximo es 99.
Una función llamada correctamente devuelve un token, necesario para recuperar los resultados de la solicitud. El siguiente ejemplo ilustra cómo se usan las funciones en las bibliotecas:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Debido a la naturaleza asíncrona de la función, los resultados pueden recuperarse en aproximadamente 2 a 10 minutos. Si al menos uno de los números de IVA de la UE incluidos en la solicitud tiene un formato incorrecto, el sistema devuelve el error «El número de IVA no es válido».
Para recuperar los resultados de la solicitud enviada, llame al getVIESDataAsyncResult función, que proporciona el valor del token como parámetro de entrada.
¡Nota importante!
- La función se preparó como solución alternativa al error devuelto por el sistema VIES:
The maximum number of concurrent requests has been reached(MS_MAX_CONCURRENT_REQ). Recomendamos usarlo al enviar solicitudes de Alemania (DE) y Francia (FR), que devolvió el error mencionado anteriormente. - Cree lotes más grandes que contengan más de tres números de IVA. No Incluir su propio número de IVA en un lote será rechazado. Cada lote debe contener una lista de números de IVA únicos.
- Al usar el
getVIESDataAsyncResultPara evitar comprobar el estado del lote con demasiada frecuencia, tenga en cuenta que el procesamiento por lotes suele tardar entre 2 y 10 minutos, por lo que consultar el estado cada segundo es innecesario. Se recomienda comprobar el estado. No más que una vez cada 20-30 segundos. - Los lotes deben enviarse de forma secuencial, no en paralelo. El proceso no es multihilo: se envía un lote, se espera el resultado, se recibe y luego se envía el siguiente. El envío simultáneo de varios lotes puede provocar que el sistema VIES bloquee temporalmente el acceso, impidiendo el envío de más lotes.
- Recuerde que si envía 100 números de IVA de la UE a la función de procesamiento por lotes y recibe un token que confirma que VIES ha aceptado estos números para su verificación, nuestro sistema de facturación le cobrará 100 solicitudes.
getVIESDataAsyncResult– la función le permite recuperar resultados por lotes en función del token devuelto por el getVIESDataAsync función.
El siguiente ejemplo ilustra cómo se utilizan las funciones en las bibliotecas:
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Para cada número de IVA de la UE que se pasa en la llamada por lotes, los atributos son consistentes con la respuesta a la getVIESData Se devuelven las funciones.
Recuperación de información sobre el estado de la cuenta del usuario
La función le permite descargar toda la información básica sobre la cuenta de usuario, que se muestra después de iniciar sesión en la cuenta en el portal viesapi.eu. La función también devuelve información sobre el número máximo de consultas disponibles en el plan seleccionado (por ejemplo, 5.000 para el plan Business) y el número total de todas las consultas realizadas en el mes actual en la cuenta del usuario.
¡Atención! Llamar a la función hace no aumentar el número de consultas realizadas.
El siguiente ejemplo ilustra cómo utilizar las funciones de la biblioteca.
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Recuperación de información sobre el estado del sistema VIES
Esta función permite verificar el estado actual del sistema VIES. Muestra un estado general que indica la disponibilidad, así como una lista de los países miembros, junto con la disponibilidad actual de sus sistemas nacionales.
¡Atención! Llamar a la función hace no aumentar el número de consultas realizadas.
Los siguientes ejemplos ilustran cómo utilizar la función de biblioteca.
- C#
- C/C++
- Java
- JavaScript
- PHP
- Pitón
- básico visual
// 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
Registro de una biblioteca .NET como un objeto COM
los viesapiLibrary.dll biblioteca se puede registrar en el sistema de Windows como el llamado COM objeto. Luego, se puede hacer referencia a las funciones de la biblioteca desde muchos lenguajes de programación diferentes y aplicaciones listas para usar, incl. Microsoft Excel, Access, SQL Server, Dynamics o Visual FoxPro.
Para registrar una biblioteca como un objeto COM, siga estos pasos:
- Descargar el biblioteca .NET archívelo y descomprímalo en un disco local en cualquier ubicación.
- Vaya al directorio con archivos de biblioteca desempaquetados y busque el
com-register.batexpediente. - Selecciona el
com-register.batarchivo con el ratón y seleccione elRun as administratorcomando del menú contextual.
Uso de la biblioteca .NET en MS Excel
Las funciones de la biblioteca viesapiLibrary.dll se pueden utilizar en la aplicación MS Excel para escribir sus propias funciones y procedimientos en el Visual Basic idioma. Para hacerlo posible, es necesario:
- Registro la
viesapiLibrary.dllbiblioteca como unCOMobjeto enWindows. - Inicie la aplicación Excel. Selecciona el
DEVELOPERpestaña en la cinta y luego haga clic en elVisual Basicbotón. - En el
Visual Basic for Applicationventana, seleccioneToolsy entoncesReferencesdel menú. En elAvailable Referencesenumerar, buscar y seleccionarVIESAPI Service Client for .NET Framework (C#). Confirme su selección con elOKbotón. - Desde el
Insertmenú, eligeModuley pegue el código de función presentado en los ejemplos para Visual Basic en la nueva ventana. - Finalmente, los valores apropiados de w para
viesapi.IDyviesapi.Keydebe establecerse. El método para obtener la clave y la clave de acceso se describe en el capítulo Generación del identificador y clave de acceso