Skip to main content
Smedley Group maintains two internal Python SDKs. Use them instead of hand-written HTTP or XML calls when a back-office service talks to vivenu or Sage Intacct.
These pages were written in October 2026, when the latest releases were sg-vivenu-sdk v0.8.0 and sg-intacct-xml-sdk v0.5.0. Changes made on main since then are listed under Unreleased in each changelog until the next release.

Overview

Both support Python 3.11 to 3.14, ship sync and async clients, and follow the same SDK Conventions. Code that uses both in one flow reads the same way.

Repositories

Install From a Release Tag

The repositories are private and the SDKs are not published to PyPI. Install a tagged release from GitHub. Your machine or CI runner needs read access to the repository.
pyproject.toml
Or add one directly:
Always pin a tag. Never depend on main or a local copy of the repository. Each release is listed on the repository’s Releases page with its changelog.

Key Files

Each repository has the same entry points.

Several Hubs and Entities

Each hub is its own vivenu seller with its own API key and HMAC secret. Create one vivenu client per hub. Clients can share one httpx.Client, because credentials are applied per request. For Intacct, create one client per entity with client.for_entity(location_id), and bind writes to the entity with prepare_write(calls, location_id=...).
Pass the raw HMAC secret to the vivenu webhook helpers, the same value the receiving platform stores. Do not pass the base64 value pasted into the vivenu dashboard.
Last modified on October 12, 2026