Metadata-Version: 2.4
Name: giltiq
Version: 0.1.1
Summary: Python SDK for the Giltiq VAT Validation API
Author-email: Giltiq <hello@giltiq.de>
License-Expression: MIT
Project-URL: Homepage, https://giltiq.de
Project-URL: Documentation, https://giltiq.de/en/guides/quickstart/
Project-URL: Repository, https://github.com/giltiq/giltiq-python
Project-URL: Issues, https://github.com/giltiq/giltiq-python/issues
Keywords: giltiq,vat,vat-validation,vies,bzst,tax,eu,b2b,api
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.25.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: respx; extra == "dev"

# giltiq

Python SDK for the [Giltiq VAT Validation API](https://giltiq.de).

## Installation

```bash
pip install giltiq
```

## Usage

### Synchronous

```python
from giltiq import Giltiq

with Giltiq(api_key="your-api-key") as client:
    # Validate a VAT ID
    result = client.validate("DE123456789")
    print(result.valid, result.company_name)

    # Check usage
    usage = client.usage()
    print(usage.used, usage.remaining)

    # Check API status
    status = client.status()
    print(status.vies_status, status.bzst_status)
```

### Async

```python
from giltiq import AsyncGiltiq

async with AsyncGiltiq(api_key="your-api-key") as client:
    result = await client.validate("DE123456789")
    print(result.valid)
```

### Qualified Confirmation (German BZSt)

```python
from giltiq import Giltiq, ValidateOptions

with Giltiq(api_key="your-api-key") as client:
    result = client.validate(
        "DE123456789",
        options=ValidateOptions(
            requester_vat_id="DE987654321",
            company_name="Example GmbH",
            company_city="Berlin",
            company_zip="10115",
        ),
    )
    if result.qualified_confirmation:
        print(result.qualified_confirmation.company_name)
```

### Error Handling

```python
from giltiq import Giltiq, GiltiqApiError

with Giltiq(api_key="your-api-key") as client:
    try:
        result = client.validate("INVALID")
    except GiltiqApiError as e:
        print(e.code, e.status, str(e))
```

## Configuration

```python
client = Giltiq(
    api_key="your-api-key",
    base_url="https://api.giltiq.de",  # default
    timeout=15.0,  # seconds, default
    retries=2,  # default
)
```

## Documentation

Full API documentation at [giltiq.de/docs](https://giltiq.de/docs).

## License

MIT
