Dinaup.Validations
Comprueba datos fiscales y geográficos en segundos desde tu código
Cuando estás construyendo lógica fiscal, es clave asegurarte de que los datos que recibes del usuario son coherentes. Dinaup ofrece una serie de validaciones listas para usar, divididas en dos áreas principales.
Validaciones de Geo Localización
IsSpanishPostalCode(string postalCode)
IsSpanishPostalCode(string postalCode)
Verifica si un código postal pertenece al sistema de códigos postales español. Acepta exactamente 5 dígitos válidos.
Console.WriteLine(ValidationUtils.IsSpanishPostalCode("03201")); // True
Console.WriteLine(ValidationUtils.IsSpanishPostalCode("99999")); // False
GetSpainProvinceFromPostalCode(string postalCode)
GetSpainProvinceFromPostalCode(string postalCode)
Devuelve el nombre de la provincia asociada a un código postal español. Si no se reconoce, devuelve una cadena vacía.
EditarConsole.WriteLine(ValidationUtils.GetSpainProvinceFromPostalCode("28013")); // Madrid
NormalizeLocationName(string name)
NormalizeLocationName(string name)
Convierte nombres de ciudades regionales o en lenguas cooficiales al nombre estándar español.
EditarConsole.WriteLine(ValidationUtils.NormalizeLocationName("elx")); // Elche
Console.WriteLine(ValidationUtils.NormalizeLocationName("Bilbo")); // Bilbao
SearchCountry(string query)
SearchCountry(string query)
Busca países por nombre (en inglés o español), ISO2. Devuelve una lista de coincidencias parciales.
var results = ValidationUtils.SearchCountry("ES");
foreach (var c in results)
{
Console.WriteLine($"{c.ISO2} - {c.ESName} / {c.ENName}");
}
// ES - España / Spain
GetCountry(string countryNameOrCode)
GetCountry(string countryNameOrCode)
Obtiene un país concreto por ISO o nombre. Útil cuando ya se tiene el identificador o el país escrito completo.
var spain1 = ValidationUtils.GetCountry("ES");
Console.WriteLine($"{spain1.ISO2} - {spain1.ENName}"); // ES - Spain
var spain2 = ValidationUtils.GetCountry("España");
Console.WriteLine($"{spain2.ISO2} - {spain2.ENName}"); // ES - Spain
IsEuCountryCode(string isoCode)
IsEuCountryCode(string isoCode)
Devuelve true
si el código ISO de país pertenece a la Unión Europea. La comparación no distingue mayúsculas.
Console.WriteLine(ValidationUtils.IsEuCountryCode("DE")); // True
Console.WriteLine(ValidationUtils.IsEuCountryCode("US")); // False
Validaciones de NIF / VAT
IsVIESVatFormat(string vatID)
IsVIESVatFormat(string vatID)
Valida si el NIF está en un formato aceptado por el sistema VIES. Solo valida estructura, no existencia.
Console.WriteLine(ValidationUtils.IsVIESVatFormat("ES123456789")); // True
Console.WriteLine(ValidationUtils.IsVIESVatFormat("US123456789")); // False
IsSpanishBusinessNIFFormat(string vatID)
IsSpanishBusinessNIFFormat(string vatID)
Valida si un NIF tiene formato de empresa española. Es una validación débil pensada para autocompletado o sugerencias.
Console.WriteLine(ValidationUtils.IsSpanishBusinessNIFFormat("B12345678")); // True
Console.WriteLine(ValidationUtils.IsSpanishBusinessNIFFormat("X1234567")); // False
CheckVATViesAsync(session, vatID)
(async)
CheckVATViesAsync(session, vatID)
(async)Consulta a VIES si un NIF está dado de alta como operador intracomunitario. Necesita una sesión Dinaup válida.
var result = await dinaupClient.CheckVATViesAsync(dinaupClient.DefaultSession, "ESB09689647");
Console.WriteLine(result.Value); // True
CheckVATAEATAsync(session, vatID, name)
(async)
CheckVATAEATAsync(session, vatID, name)
(async)Consulta a la AEAT si el NIF y el nombre coinciden. Útil para validación de facturas en España.
var result = await dinaupClient.CheckVATAEATAsync(dinaupClient.DefaultSession, "74381925V", "Angel Albaladejo Belmonte");
Console.WriteLine(result.Identificado); // True
ClassifyVatTerritoriality(vatID, countryCode, postalCode, isVies)
ClassifyVatTerritoriality(vatID, countryCode, postalCode, isVies)
Clasifica la operación fiscal según el lugar de tributación del IVA: nacional, exportación, intracomunitaria, etc.
var tipo = ValidationUtils.ClassifyVatTerritoriality("B12345678", "ES", "03201", false);
Console.WriteLine(tipo); // National
var tipo2 = ValidationUtils.ClassifyVatTerritoriality("DE267602842", "DE", "81549", true);
Console.WriteLine(tipo2); // IntraCommunity
Tipos posibles:
Unknown
Simplified
National
OutOfVatTerritory
IntraCommunity
OneStopShop
Export
Última actualización