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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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