Metadata-Version: 2.4
Name: swikly-sdk-python
Version: 0.1.1
Summary: Unofficial Python SDK for Swikly API v2
Project-URL: Homepage, https://github.com/codelounge-io/swikly-sdk-python
Project-URL: Issues, https://github.com/codelounge-io/swikly-sdk-python/issues
Author-email: "CODELOUNGE (SMC-PRIVATE) LIMITED" <arshad@codelounge.io>
License: MIT
Keywords: deposits,payments,sdk,swikly
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.6.0
Provides-Extra: dev
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pytest-httpx>=0.30.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Requires-Dist: types-python-dateutil; extra == 'dev'
Description-Content-Type: text/markdown

# swikly-sdk (unofficial)

Production-grade Python SDK for Swikly API v2 (sync + async), based on Swikly's OpenAPI spec.

## Install

```bash
pip install swikly-sdk
```

## Quickstart

```python
from swikly import SwiklyClient

client = SwiklyClient(
    token="YOUR_API_TOKEN",
    environment="sandbox",  # or "production"
    user_agent="YourProject/1.0",
)

accounts = client.accounts.list()
account_id = accounts.accounts[0].id

req = client.requests.create(
    account_id=account_id,
    description="My simple deposit request",
    language="fr",
    first_name="John",
    last_name="Doe",
    deposit={"startDate": "2026-06-10", "endDate": "2026-06-12", "amount": 12000},
)
print(req.request.link)
```

## Webhook signature verification

```python
from swikly.webhooks import verify_swikly_signature

ok = verify_swikly_signature(
    secret="ACCOUNT_SECRET",
    signature_header=headers["Swikly-Signature"],
    raw_body=request_raw_body_bytes,
    tolerance_seconds=10 * 60,
)
```

## Notes
- Swikly requires `Accept: application/json`.
- Swikly recommends setting a meaningful `User-Agent` (e.g. `YourProject/1`).
