BE NL LU DE FR UK IT ES 100% Offline

The Offline Financial Validation Toolkit for .NET

Validate IBANs, Payment References, and Business Numbers locally.
High Performance. Zero latency. 100% Privacy.

This library performs regex & checksum validation only. It does not verify existence with banks.

Program.cs
using Finova.Core.Accounts;
using Finova.Countries.Italy;

// 1. Validate instantly
bool isValid = ItalyIbanValidator.Validate("IT60X054...");

// 2. Parse details
var details = ItalyIbanParser.Parse("IT60X054...");
Console.WriteLine($"Bank: {details.Abi}, Branch: {details.Cab}");

The Finova Ecosystem

Finova
The complete toolkit (Core + Europe).
Finova.Core
Primitives only. Zero dependencies.
Finova.Extensions...
FluentValidation & other adapters.

Extensible Design

Start with the lightweight core. Add optional extensions (like FluentValidation) only when your enterprise needs grow.

Lightning Fast

Designed for high-throughput applications. Validates thousands of records in milliseconds with zero network latency.

Privacy First

Data never leaves your server. Perfect for GDPR compliance and secure financial environments where data leaks are not an option.

Modular Architecture

Built for the world. Modular architecture allows for easy expansion into any country's financial standards.

Standard Compliant

Implements official checksum algorithms (Mod97, ISO 7064) ensuring your data is technically valid before processing.

using Finova.Core.Validators;

// Validate Credit Card (New in v1.1)
string cardNumber = "4532123456789012";

if (PaymentCardValidator.IsValidLuhn(cardNumber)) 
{
    var brand = PaymentCardValidator.GetBrand(cardNumber);
    Console.WriteLine($"Valid {brand} Card!");
}
using Finova.Countries.Italy;

// Parse Italian IBAN (New in v1.1)
string iban = "IT60X0542811101000000123456";

var details = ItalyIbanParser.Parse(iban);

if (details != null)
{
    Console.WriteLine($"Bank (ABI): {details.Abi}");
    Console.WriteLine($"Branch (CAB): {details.Cab}");
}
using Finova.Core.Validators;

// Generate ISO 11649 Creditor Reference (New in v1.1)
string rawRef = "INVOICE2024";

string isoRef = PaymentReferenceValidator.Generate(rawRef);

// Output: RF88INVOICE2024
// (Calculates Mod97 and prepends RF + Check Digits)

Developer Experience First

Built for every .NET scenario. Seamlessly integrates with ASP.NET Core Dependency Injection for enterprise apps, while exposing zero-setup Static Methods for console tools and scripts.

  • Type-Safe Enums

    No more magic strings. Use strongly typed enums like PaymentReferenceFormat.IsoRf or PaymentReferenceFormat.LocalBelgian.

  • Hybrid Architecture (DI + Static)

    Fully supports Dependency Injection (interfaces included) for testability, OR use static helpers for instant, new-free usage in simple apps.

  • Deep Parsing Support

    Don't just validate "true/false". Extract Branch Codes, Account Numbers, and National Keys from IBANs using our Parsers.

Supported Validations

Comprehensive support for global financial formats and standards.

IBAN Validation

Validates structure, length, and checksums for International Bank Account Numbers.

  • Complete SEPA Coverage (incl. UK, Switzerland, Scandinavia)
  • Global ISO 13616 Compliance (80+ countries)

Payment References

Generate and validate structured remittance information for international invoices.

  • ISO 11649 Creditor References (RF)
  • Domestic Standards (Belgian OGM, Nordic KIDs)
  • QR-Bill & Remittance String Builders

Corporate Identity

Ensure Tax IDs and Enterprise numbers follow correct national check-digit logic.

  • EU VAT Syntax Validation
  • National Systems (SIRET, KVK, BCE)
  • Mod97, Luhn, & Weighted Checksums

Roadmap

v1.0.0 Released

Foundation

  • IBAN Validation (BE, NL, LU, FR, DE, UK)
  • Belgian OGM & ISO 11649 References
v1.1.0 Released

Core Expansion

  • IBAN Parsing for Italy (IT) & Spain (ES)
  • Structural BIC/SWIFT Validation (ISO 9362)
  • Payment Cards (Luhn Algorithm & Brand Detection)
  • RF Creditor Reference Validator (ISO 11649)
v1.2.0 Released

European Unification

A major architectural update to simplify the developer experience.

  • The "Finova.Europe" Wrapper: A unified package for all SEPA countries.
  • New: Smart Routing: Auto-detect country rules via EuropeValidator
  • New: FluentValidation Integration (Extensions package)
v1.3.0 Planned

International VAT

  • EU VAT Checksums (VIES offline syntax)
  • Country-specific rule engine for VAT validation
v1.4.0 Future

National Identity Systems

  • France SIRET/SIREN
  • Belgium KBO/BCE
  • Netherlands KVK & Spain NIF/CIF
v1.5.0 Future

Modern Payment Strings

  • EPC QR Code Payload Builder (SEPA Credit Transfer)
  • Swiss QR Bill String Parser
v1.6.0 Future

Global Routing

  • USA ABA Routing Number (Checksums)
  • Canadian Transit Numbers
  • Australian BSB Number Validation
Horizon Undetermined

Future Exploration

  • WASM (WebAssembly) support for Blazor?
  • AI-assisted anomaly detection (Pattern based)?

Missing a Country or Format?

Finova is open source and community driven. If you need a specific validation rule or found a bug, let us know!

Open an Issue