Metadata-Version: 2.4
Name: timbro-protocol
Version: 0.10.0
Summary: Shared runtime of the Timbro Python SDKs: transport, errors, retries, pagination, and Standard Webhooks verification
Author: Timbro contributors
License-Expression: Apache-2.0
Project-URL: Homepage, https://timbro.do
Project-URL: Source, https://github.com/indexa-labs/checkout/tree/main/python/timbro-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<1,>=0.27
Dynamic: license-file

# timbro-protocol

The shared runtime of the Timbro Python SDKs. Install `timbro-payments` or `timbro-invoices` instead; each depends on this package and re-exports its errors.

This package owns:

- The error hierarchy: `TimbroError`, `APIError` and its status subclasses, `APIConnectionError`, `APITimeoutError`, `UnexpectedResponseError`, and `WebhookVerificationError`.
- `verify_webhook_signature` and `sign_webhook`, for Standard Webhooks deliveries.
- `timbro_protocol.runtime`, the surface Timbro SDK packages build on: `Operation`; the `SyncAPIClient` and `AsyncAPIClient` executors, which apply the contract's retry and idempotency rules, never follow redirects, read at most 10 MiB per response, authenticate one call with a grant's `access_token`, refuse an answer about another resource, and return file downloads as `FileResponse`; `derive_idempotency_key` and `same_identifier`; the `text_header` and `integer_header` readers for a download's declared metadata headers; the `iterate_pages` and `async_iterate_pages` cursor walkers; and `verify_webhook_event`, which checks a delivery's envelope against a package's event table.

It reads no environment variables, writes no files, and logs only at `DEBUG` on the `timbro_protocol` logger, without bodies or headers.

## License

No license has been granted for this package yet. The license will be declared before the first public release.
