Metadata-Version: 2.4
Name: makky-acb-api
Version: 0.1.0
Summary: Unofficial Python client for ACB account balances and transaction history
Author: Makky
Maintainer: Makky
Project-URL: Homepage, https://github.com/Makky/ACB-API
Project-URL: Repository, https://github.com/Makky/ACB-API
Project-URL: Issues, https://github.com/Makky/ACB-API/issues
Keywords: acb,banking,api,transactions,payments
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.31.0
Requires-Dist: python-dotenv>=1.0.0

# makky-acb-api

**🇺🇸 English** | [🇻🇳 Tiếng Việt](README_VI.md)

Unofficial Python client for ACB account balances and transaction history, packaged for local installation and future PyPI publication.

## Features

- Authenticate with ACB using username and password
- Fetch balances for payment accounts
- Retrieve recent transaction history for a selected account
- Use as a Python library or from a CLI command

## Installation

### Local development install

```bash
pip install -r requirements.txt
pip install -e .
```

### After publication to PyPI

```bash
pip install makky-acb-api
```

## Environment variables

Create a `.env` file in the project root:

```env
ACB_USERNAME=your_username
ACB_PASSWORD=your_password
```

> [!WARNING]
> This project uses an unofficial ACB API. Protect your credentials and use it at your own risk.

## Python usage

```python
from acb_api import ACBClient

client = ACBClient(username="your_username", password="your_password")
balances = client.get_balances()
print(balances)

account = balances["balances"][0]["accountNumber"]
transactions = client.get_transactions(rows=5, account_number=account)
print(transactions)
```

## CLI usage

After `pip install -e .`, run:

```bash
acb-api --action all --rows 5
```

Other examples:

```bash
acb-api --action balances
acb-api --action transactions --account 19527581 --rows 10
acb-api --action all --debug
```

## Local demo script

For backward-compatible local testing:

```bash
python main.py
```

## Project structure

```text
ACB-API/
├── src/acb_api/
│   ├── __init__.py
│   ├── cli.py
│   ├── client.py
│   ├── config.py
│   ├── exceptions.py
│   └── models.py
├── main.py
├── pyproject.toml
└── README.md
```

## Packaging notes

- Distribution/package name: `makky-acb-api`
- Import package name: `acb_api`
- Author / maintainer: `Makky`

To build distributable artifacts locally:

```bash
python -m build
```

## Credits

This packaged version is maintained by **Makky**.

Inspired by earlier community work around ACB unofficial integrations, including:
- [anhnmt/ACB](https://github.com/anhnmt/ACB)

## Disclaimer

This is an unofficial client and is not affiliated with ACB. APIs, headers, and authentication flows may change without notice. Use at your own risk.
