waccy-quickbooks
WACCY extension for QuickBooks Online integration.
Status
This package provides fixture-first QuickBooks/QBO-shaped extraction, the entry point for ExtractorRegistry discovery, and a small typed live-pull helper for OAuth-backed QBO reports. The live helper intentionally returns raw QBO JSON; WACCY's model-building contract still begins after source data is normalized into WACCY records. The v0.1.0 work is tracked in:
Installation
uv pip install waccy-quickbooks
Or install with the core platform:
uv pip install "waccy[quickbooks]"
Fixture Usage
from waccy.extraction import ExtractorRegistry
registry = ExtractorRegistry()
extractor = registry.get_extractor("qbo")()
print(extractor.name)
Live QBO Report Pull
Use Intuit OAuth to create or refresh a token, then pull raw company info, chart of accounts, and reports. Store the token cache in a caller-owned path; do not commit it.
from datetime import date
from waccy_quickbooks import (
FileTokenCache,
QuickBooksApiClient,
QuickBooksOAuthConfig,
)
config = QuickBooksOAuthConfig(
client_id="...",
client_secret="...",
redirect_uri="http://localhost:8765/callback",
environment="sandbox",
)
cache = FileTokenCache("~/.waccy/qbo-token.json")
client = QuickBooksApiClient.from_token_cache(cache, config)
pull = client.pull_financial_reports(
start_date=date(2024, 1, 1),
end_date=date(2024, 12, 31),
)
The returned QuickBooksReportPull carries raw CompanyInfo, Account, ProfitAndLoss, BalanceSheet, and CashFlow payloads. Convert that raw pull into WACCY source records with the report normalizer:
from waccy_quickbooks import QuickBooksExtractor, QuickBooksReportNormalizer
fixture = QuickBooksReportNormalizer().to_fixture(pull)
extracted = QuickBooksExtractor().extract({"fixture": fixture})
The normalizer preserves QBO report provenance in record metadata, detects NoReportData reports, and emits source-completeness diagnostics for missing required statements. Keep live pull artifacts and token caches out of git. Use sanitized raw fixtures for repeatable CI/local smoke tests.
Development
This package is part of the WACCY monorepo. See the main README for development setup.
Metadata
Release files for waccy-quickbooks 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| waccy_quickbooks-0.1.1.tar.gz | 10.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| waccy_quickbooks-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / waccy_quickbooks-0.1.1.tar.gz
| Download URL | waccy_quickbooks-0.1.1.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
86991bd11e2e16c72658f518394937e8b175b9760a9ec6369120a5827082d03a
|
|
BLAKE2b-256 checksum How to use checksums |
84e99f4be2e659e04bb05e8302447d160334cac9492f18e00333492d69fb73ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / waccy_quickbooks-0.1.1-py3-none-any.whl
| Download URL | waccy_quickbooks-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
60c39c076ed4a1683648aa2f4ba4924bef7015119887cecf0c7168910d2ed54f
|
|
BLAKE2b-256 checksum How to use checksums |
ad16bec2180e6ef4b781875794677afc31518a7e7f57060b2f2fed529aad9a24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|