No description
Find a file
2026-04-17 11:13:33 +02:00
.vscode Add typed Pydantic models for positions and document payments, enhance EasybillClient with pagination and retry handling, and implement unit tests for workflow helpers. 2026-04-17 11:13:33 +02:00
examples Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00
generated Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00
scripts Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00
src/easybill_client Add typed Pydantic models for positions and document payments, enhance EasybillClient with pagination and retry handling, and implement unit tests for workflow helpers. 2026-04-17 11:13:33 +02:00
tests Add typed Pydantic models for positions and document payments, enhance EasybillClient with pagination and retry handling, and implement unit tests for workflow helpers. 2026-04-17 11:13:33 +02:00
.gitignore Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00
pyproject.toml Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00
README.md Add typed Pydantic models for positions and document payments, enhance EasybillClient with pagination and retry handling, and implement unit tests for workflow helpers. 2026-04-17 11:13:33 +02:00
swagger.json Add unit tests for authentication and webhook parsing 2026-04-17 10:20:12 +02:00

easybill client

Python client for the easybill REST API with a generated API layer, Pydantic-based convenience models, and webhook parsing helpers for middleware integration.

Current status

The initial implementation is in place and includes:

  • a project scaffold with packaging and tests
  • sync and async wrapper clients
  • authentication helpers for bearer and basic auth
  • typed Pydantic facades for customers, documents, positions, and document payments
  • pagination helpers and basic retry handling for HTTP 429 rate limits
  • a webhook parser for JSON and form payloads
  • a reproducible generation script based on the provided Swagger specification

Development

Install the local project dependencies and run the tests:

python -m pytest -q

Generate the raw clients from the API description:

python scripts/generate_client.py --mode both

Usage

from easybill_client import EasybillClient

with EasybillClient(api_key="YOUR_API_TOKEN", max_retries=2, retry_backoff=1.0) as client:
    customer_page = client.list_customers(limit=50)
    position = client.get_position(5)
    payment = client.create_document_payment(document_id=10, amount=1999, reference="INV-10")

    for customer in client.iter_all_customers(limit=100):
        print(customer.id, customer.company_name)

Structure

  • src/easybill_client: public package and middleware-friendly helpers
  • tests: focused verification for auth and webhook behavior
  • scripts/generate_client.py: generation entrypoint for the raw REST layer
  • generated: generated sync and async clients derived from the Swagger description