Python SDK
One class, four methods — issue, consult, cancel, reissue — typed and validated.
The official Python SDK (pip install stackin-python-sdk, import stackin) wraps the REST API one-to-one: one Invoice class with issue(), consult(), and cancel() — nothing else to instantiate. Each line item is a typed Product, with Brazil-specific tax fields (NCM/CFOP/CEST...) only required where the authorizer actually needs them.
It authenticates the same way as the raw API — a single API key — so switching between SDK and direct HTTP calls later doesn't change how your account or environment is set up.
Errors surface as three distinct types instead of one generic failure: APIError carries the authorizer's own status code and detail, ConnectionFailedError covers network/DNS/timeout failures before a response ever comes back, and a plain ValueError catches client-side validation problems — empty items, or a missing ncm/cfop on an NF-e item — before a request is even sent. APIError and ConnectionFailedError both inherit from InvoiceError, so you can catch both at once.
The SDK is built against the same .code_quality/ configuration and CI shape as every other official stackin SDK, and the same universal API contract, so a Python integration reads the same as the Go one once you know one of them.
See the SDKs section of the API reference for install commands, or the code on GitHub.