vat_id_validator 0.1.0

A comprehensive library for validating VAT numbers, including format and checksum verification for 30+ countries.
Documentation
# vat_id_validator

# vat_id_validator

**Validate VAT numbers offline with mathematical precision.**

Many libraries only check if a VAT number *looks* right (regex). `vat_id_validator` checks if it **is** right.

It verifies the **checksum** of the VAT number using country-specific algorithms (Luhn, Modulo 97, weighted sums, etc.). This means you can catch typos, transposed digits, and fake numbers **instantly**, without making a single network request to flaky government APIs like VIES.

### Key Benefits
-   **⚡ Instant & Offline**: Zero network latency. No VIES downtime. Works everywhere.
-   **🧮 Mathematical Verification**: Catches invalid numbers that regex would pass (e.g., typos).
-   **🛡️ Type-Safe Rust**: Built for speed and reliability.
-   **🌍 Multi-Country**: Supports 30+ countries including EU, UK, Norway, Switzerland, Serbia, Russia, and Brazil.

## Installation

Add this to your `Cargo.toml`:

```toml
[dependencies]
vat_id_validator = "0.1.0"
```

## Usage

```rust
use vat_id_validator::check_vat;

fn main() {
    // Valid UK VAT number
    assert!(check_vat("GB999999973"));

    // Invalid format
    assert!(!check_vat("GB123"));

    // Valid format but invalid checksum
    assert!(!check_vat("GB999999974"));
}
```

## Supported Countries

*   Andorra (AD)
*   Austria (AT)
*   Belgium (BE)
*   Brazil (BR)
*   Bulgaria (BG)
*   Croatia (HR)
*   Cyprus (CY)
*   Czech Republic (CZ)
*   Denmark (DK)
*   Estonia (EE)
*   Finland (FI)
*   France (FR)
*   Germany (DE)
*   Greece (GR)
*   Hungary (HU)
*   Ireland (IE)
*   Italy (IT)
*   Latvia (LV)
*   Lithuania (LT)
*   Luxembourg (LU)
*   Malta (MT)
*   Netherlands (NL)
*   Norway (NO)
*   Poland (PL)
*   Portugal (PT)
*   Romania (RO)
*   Russia (RU)
*   Serbia (RS)
*   Slovakia (SK)
*   Slovenia (SI)
*   Spain (ES)
*   Sweden (SE)
*   Switzerland (CH)
*   United Kingdom (GB)

## License

MIT / Apache-2.0