defaults to SECRET_KEY (Paystack signs with the account secret key)
- Stop auto-retrying POST/PUT to prevent duplicate charges/transfers
- Make webhook deduplication race-safe and database-backed
- Correct date filters, dispute event names, bulk-charge verbs,
submit_address field, transfer list filter and reversed-transfer status - Map 401/403 to PaystackAuthenticationError; parse webhook datetimes
- Return a single page from list() (was eagerly loading every page)
Tooling & packaging
- Consolidate build config onto pyproject.toml (remove setup.py/setup.cfg)
- Remove unused python-decouple; raise requests floor to >=2.32.0
- Format the package with black/isort; make CI gates blocking and add a
pip-audit + bandit security workflow - Align tox matrix with CI; unify version at 2.0.1
Authored By: Reuben Sunday reuben@hummingbyte.org