Releases: apideck-libraries/sdk-python
python - v0.31.5 - 2026-03-27 13:06:19
Generated by Speakeasy CLI
Python SDK Changes Detected:
apideck.vault.consumers.create():response.data.connections.[]Changedapideck.vault.consumers.get():response.data.connections.[]Changedapideck.vault.consumers.update():response.data.connections.[]Changed
Generated with Speakeasy CLI 1.656.1
Publishing Completed
python - v0.31.4 - 2026-03-26 13:05:29
Generated by Speakeasy CLI
2026-03-26 13:05:29
Changes
Based on:
- OpenAPI Doc 10.24.9
- Speakeasy CLI 1.656.1 (2.753.1) https://github.com/speakeasy-api/speakeasy
Generated
- [python v0.31.4] .
Releases
- [PyPI v0.31.4] https://pypi.org/project/apideck-unify/0.31.4 - .
Publishing Completed
python - v0.31.3 - 2026-03-26 01:06:29
Python SDK v0.31.4 Changelog
Release Date: March 2026
What's New
This is a maintenance release that synchronizes the SDK with the latest Apideck OpenAPI specification (v10.24.9). No new endpoints or fields have been added, and no existing behavior has changed. The update ensures the SDK accurately reflects the current API surface.
Summary of Changes
| Category | Description | Action Required |
|---|---|---|
| SDK Version | Bumped from 0.31.3 to 0.31.4 | Update dependency |
| OpenAPI Spec | Synced to API spec v10.24.9 (from v10.24.8) | None |
Detailed Changes by API
All APIs
OpenAPI Specification Sync
What changed: The SDK has been regenerated against Apideck API spec v10.24.9. This is an internal spec revision with no user-facing API changes.
Impact: None — fully backward compatible. Existing code requires no changes.
Migration Checklist
- Update dependency to v0.31.4
pip install apideck-unify==0.31.4
# or with uv
uv add apideck-unify==0.31.4- Run your test suite
python - v0.31.2 - 2026-03-23 09:21:20
Python SDK v0.31.2 Changelog
Release Date: March 2026
What's New
This release adds new optional fields to the Journal Entries API and introduces employee-related accounting capabilities. The tax_type field on JournalEntry is now deprecated in favor of a more granular tax_type on individual JournalEntryLineItem objects.
Summary of Changes
| Category | Description | Action Required |
|---|---|---|
| New Fields | tax_type and employee added to JournalEntryLineItem |
None |
| New Models | LinkedEmployee model for journal entry line items |
None |
| New Enum | TaxType enum (sales, purchase) |
None |
| New Enum Value | EMPLOYEE added to LinkedFinancialAccountAccountType |
None |
| Deprecation | JournalEntry.tax_type deprecated (use line-item level instead) |
Optional migration |
Detailed Changes by API
Journal Entries
Line-Item Tax Type
What changed: JournalEntryLineItem and JournalEntryLineItemInput now support a tax_type field with values sales or purchase, allowing tax classification at the individual line-item level.
Impact: None — new optional field with default UNSET.
from apideck_unify.models import components
line_item = components.JournalEntryLineItemInput(
type=components.JournalEntryLineItemType.DEBIT,
tax_type=components.TaxType.SALES,
)Line-Item Employee
What changed: JournalEntryLineItem and JournalEntryLineItemInput now support an employee field linking to a LinkedEmployee.
Impact: None — new optional field.
Root-Level Tax Type Deprecated
What changed: JournalEntry.tax_type and JournalEntryInput.tax_type are now marked as deprecated. Use the line-item level tax_type instead.
Impact: Existing code continues to work. A deprecation warning will be emitted by Pydantic.
Financial Accounts
Employee Account Type
What changed: LinkedFinancialAccountAccountType now includes an EMPLOYEE value for employee payable accounts.
Impact: None — new enum value on an open enum.
Migration Checklist
- Update dependency:
uv add apideck-unify==0.31.2orpip install apideck-unify==0.31.2 - Run your test suite
- (Optional) Migrate from
JournalEntry.tax_typetoJournalEntryLineItem.tax_type
python - v0.31.1 - 2026-03-18 23:39:35
Python SDK v0.31.1 Changelog
Release Date: March 2026
What's New
This release updates the JournalEntryLineItem.type field to be nullable across the Journal Entries API, aligning the SDK with the actual API behavior where this field may be absent. It also adds bank_account support to the Accounting Employees API, allowing you to retrieve and set banking details for employees.
Summary of Changes
| Category | Description | Action Required |
|---|---|---|
journal_entries.list() / journal_entries.get(): line_items[].type changed from required enum to Optional |
Update code that assumes .type is always present |
|
journal_entries.create() / journal_entries.update(): line_items[].type input field is now Optional |
No action if you were already omitting it | |
| New field | bank_account added to Accounting Employee responses and request inputs |
None — new optional field |
Detailed Changes by API
Accounting — Journal Entries
line_items[].type is now Optional (Breaking)
What changed: The type field on JournalEntryLineItem has changed from a required non-nullable enum to Optional[JournalEntryLineItemType]. This affects responses from journal_entries.list() and journal_entries.get(), and input objects for journal_entries.create() and journal_entries.update().
Impact: If your code accesses .type directly without a null check, it may raise an AttributeError at runtime when the field is absent.
# Before — unsafe
for item in entry.line_items:
print(item.type.value) # may raise AttributeError
# After — safe
for item in entry.line_items:
if item.type is not None:
print(item.type.value)Accounting — Employees
bank_account field added
What changed: A new bank_account field is available on AccountingEmployee objects returned by employees.list() and employees.get(). You can also supply it when creating or updating employees.
Impact: None — new optional field, existing code continues to work.
employee = apideck.accounting.employees.get(id="12345").data
if employee.bank_account:
print(employee.bank_account.account_number)Migration Checklist
- Update dependency:
uv add apideck-unify==0.31.1 - Search your codebase for
.typeaccess onJournalEntryLineItemobjects - Add null guards where
line_items[].typeis accessed - Run your test suite
python - v0.31.0 - 2026-03-11 15:13:20
Generated by Speakeasy CLI
Python SDK Changes Detected:
apideck.accounting.refunds.list(): Addedapideck.accounting.refunds.create(): Addedapideck.accounting.refunds.get(): Addedapideck.accounting.refunds.update(): Addedapideck.accounting.refunds.delete(): Addedapideck.accounting.companies.list(): Addedapideck.ats.jobs.create(): Addedapideck.ats.jobs.update(): Addedapideck.ats.jobs.delete(): Addedapideck.accounting.tax_rates.list():request.company_idAddedapideck.accounting.tax_rates.create():request.company_idAddedapideck.accounting.tax_rates.get():request.company_idAddedapideck.accounting.tax_rates.update():request.company_idAddedapideck.accounting.tax_rates.delete():request.company_idAddedapideck.accounting.bills.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.bills.create():request.terms_idAddedapideck.accounting.bills.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.bills.update():request.terms_idAddedapideck.accounting.invoices.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.invoices.create():requestChangedapideck.accounting.invoices.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.invoices.update():request.terms_idAddedapideck.accounting.ledger_accounts.list():request.company_idAddedapideck.accounting.ledger_accounts.create():request.company_idAddedapideck.accounting.ledger_accounts.get():request.company_idAddedapideck.accounting.ledger_accounts.update():request.company_idAddedapideck.accounting.ledger_accounts.delete():request.company_idAddedapideck.accounting.invoice_items.list():request.company_idAddedapideck.accounting.invoice_items.create():request.company_idAddedapideck.accounting.invoice_items.get():request.company_idAddedapideck.accounting.credit_notes.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.credit_notes.create():requestChangedapideck.accounting.credit_notes.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.credit_notes.update():request.terms_idAddedapideck.accounting.customers.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.customers.create():requestChangedapideck.accounting.customers.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.customers.update():request.terms_idAddedapideck.accounting.suppliers.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.suppliers.create():requestChangedapideck.accounting.suppliers.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.suppliers.update():requestChangedapideck.accounting.suppliers.delete():request.company_idAddedapideck.accounting.payments.list():request.company_idAddedapideck.accounting.payments.create():request.company_id_paramAddedapideck.accounting.payments.get():request.company_idAddedapideck.accounting.payments.update():request.company_id_paramAddedapideck.accounting.payments.delete():request.company_idAddedapideck.accounting.company_info.get():request.company_idAddedapideck.accounting.balance_sheet.get():request.company_idAddedapideck.accounting.profit_and_loss.get():request.company_idAddedapideck.accounting.journal_entries.list():request.company_idAddedapideck.accounting.journal_entries.create():request.company_id_paramAddedapideck.accounting.journal_entries.get():request.company_idAddedapideck.accounting.journal_entries.update():request.company_id_paramAddedapideck.accounting.journal_entries.delete():request.company_idAddedapideck.accounting.purchase_orders.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.purchase_orders.create():requestChangedapideck.accounting.purchase_orders.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.purchase_orders.update():requestChangedapideck.accounting.purchase_orders.delete():request.company_idAddedapideck.accounting.subsidiaries.list():request.company_idAddedapideck.accounting.subsidiaries.create():request.company_idAddedapideck.accounting.subsidiaries.get():request.company_idAddedapideck.accounting.subsidiaries.update():request.company_idAddedapideck.accounting.subsidiaries.delete():request.company_idAddedapideck.accounting.locations.list():request.company_idAddedapideck.accounting.locations.create():request.company_idAddedapideck.accounting.locations.get():request.company_idAddedapideck.accounting.locations.update():request.company_idAddedapideck.accounting.locations.delete():request.company_idAddedapideck.accounting.departments.list():request.company_idAddedapideck.accounting.departments.create():request.company_idAddedapideck.accounting.departments.get():request.company_idAddedapideck.accounting.attachments.list():request.company_idAddedapideck.accounting.attachments.get():request.company_idAddedapideck.accounting.attachments.download():request.company_idAddedapideck.accounting.bank_accounts.list():request.company_idAddedapideck.accounting.bank_accounts.get():request.company_idAddedapideck.accounting.tracking_categories.list():request.company_idAddedapideck.accounting.tracking_categories.create():request.company_idAddedapideck.accounting.tracking_categories.get():request.company_idAddedapideck.accounting.tracking_categories.update():request.company_idAddedapideck.accounting.tracking_categories.delete():request.company_idAddedapideck.accounting.bill_payments.list():request.company_idAddedapideck.accounting.bill_payments.create():request.company_id_paramAddedapideck.accounting.bill_payments.get():request.company_idAddedapideck.accounting.expenses.list():requestChangedapideck.accounting.expenses.create():request.company_id_paramAddedapideck.accounting.expenses.get():request.company_idAddedapideck.accounting.aged_creditors.get():request.company_idAddedapideck.accounting.aged_debtors.get():request.company_idAddedapideck.accounting.bank_feed_accounts.list():request.company_idAddedapideck.accounting.bank_feed_accounts.get():request.company_idAddedapideck.accounting.bank_feed_statements.list():request.company_idAddedapideck.accounting.bank_feed_statements.create():request.company_idAddedapideck.accounting.bank_feed_statements.get():request.company_idAddedapideck.accounting.categories.list():request.company_idAddedapideck.accounting.categories.get():request.company_idAddedapideck.accounting.quotes.list():request.company_idAddedresponse.data.[].terms_idAdded
apideck.accounting.quotes.create():requestChangedapideck.accounting.quotes.get():request.company_idAddedresponse.data.terms_idAdded
apideck.accounting.quotes.update():requestChangedapideck.accounting.quotes.delete():request.company_idAddedapideck.accounting.projects.list():request.company_idAddedapideck.accounting.projects.create():request.company_id_paramAddedapideck.accounting.projects.get():request.company_idAddedapideck.accounting.projects.update():request.company_id_paramAddedapideck.accounting.projects.delete():request.company_idAddedapideck.vault.consumers.list():request.filterAdded
Generated with Speakeasy CLI 1.656.1
Publishing Completed
python - v0.30.3 - 2026-02-26 11:02:00
Generated by Speakeasy CLI
Python SDK Changes Detected:
apideck.accounting.employees.list(): Addedapideck.accounting.employees.create(): Addedapideck.accounting.employees.get(): Addedapideck.accounting.employees.update(): Addedapideck.accounting.employees.delete(): Addedapideck.accounting.expense_categories.list(): Addedapideck.accounting.expense_categories.create(): Addedapideck.accounting.expense_categories.get(): Addedapideck.accounting.expense_categories.update(): Addedapideck.accounting.expense_categories.delete(): Addedapideck.accounting.expense_reports.list(): Addedapideck.accounting.expense_reports.create(): Addedapideck.accounting.expense_reports.get(): Addedapideck.accounting.expense_reports.update(): Addedapideck.accounting.expense_reports.delete(): Added
Generated with Speakeasy CLI 1.656.1
Publishing Completed
python - v0.30.2 - 2026-02-16 10:14:36
Generated by Speakeasy CLI
Python SDK Changes Detected:
apideck.ecommerce.customers.list():request.filterChanged Breaking⚠️ error.downstream_errorsAdded
apideck.proxy.get(): Addedapideck.proxy.options(): Addedapideck.proxy.post(): Addedapideck.proxy.put(): Addedapideck.proxy.patch(): Addedapideck.proxy.delete(): Addedapideck.accounting.tax_rates.list():error.downstream_errorsAddedapideck.accounting.tax_rates.create():error.downstream_errorsAddedapideck.accounting.tax_rates.get():error.downstream_errorsAddedapideck.accounting.tax_rates.update():error.downstream_errorsAddedapideck.accounting.tax_rates.delete():error.downstream_errorsAddedapideck.accounting.bills.list():error.downstream_errorsAddedapideck.accounting.bills.create():error.downstream_errorsAddedapideck.accounting.bills.get():error.downstream_errorsAddedapideck.accounting.bills.update():error.downstream_errorsAddedapideck.accounting.bills.delete():error.downstream_errorsAddedapideck.accounting.invoices.list():error.downstream_errorsAddedapideck.accounting.invoices.create():error.downstream_errorsAddedapideck.accounting.invoices.get():error.downstream_errorsAddedapideck.accounting.invoices.update():error.downstream_errorsAddedapideck.accounting.invoices.delete():error.downstream_errorsAddedapideck.accounting.ledger_accounts.list():error.downstream_errorsAddedapideck.accounting.ledger_accounts.create():error.downstream_errorsAddedapideck.accounting.ledger_accounts.get():error.downstream_errorsAddedapideck.accounting.ledger_accounts.update():error.downstream_errorsAddedapideck.accounting.ledger_accounts.delete():error.downstream_errorsAddedapideck.accounting.invoice_items.list():request.filterChangederror.downstream_errorsAdded
apideck.accounting.invoice_items.create():error.downstream_errorsAddedapideck.accounting.invoice_items.get():error.downstream_errorsAddedapideck.accounting.invoice_items.update():error.downstream_errorsAddedapideck.accounting.invoice_items.delete():error.downstream_errorsAddedapideck.accounting.credit_notes.list():error.downstream_errorsAddedapideck.accounting.credit_notes.create():error.downstream_errorsAddedapideck.accounting.credit_notes.get():error.downstream_errorsAddedapideck.accounting.credit_notes.update():error.downstream_errorsAddedapideck.accounting.credit_notes.delete():error.downstream_errorsAddedapideck.accounting.customers.list():error.downstream_errorsAddedapideck.accounting.customers.create():error.downstream_errorsAddedapideck.accounting.customers.get():error.downstream_errorsAddedapideck.accounting.customers.update():error.downstream_errorsAddedapideck.accounting.customers.delete():error.downstream_errorsAddedapideck.accounting.suppliers.list():error.downstream_errorsAddedapideck.accounting.suppliers.create():error.downstream_errorsAddedapideck.accounting.suppliers.get():error.downstream_errorsAddedapideck.accounting.suppliers.update():error.downstream_errorsAddedapideck.accounting.suppliers.delete():error.downstream_errorsAddedapideck.accounting.payments.list():error.downstream_errorsAddedapideck.accounting.payments.create():error.downstream_errorsAddedapideck.accounting.payments.get():error.downstream_errorsAddedapideck.accounting.payments.update():error.downstream_errorsAddedapideck.accounting.payments.delete():error.downstream_errorsAddedapideck.accounting.company_info.get():error.downstream_errorsAddedapideck.accounting.balance_sheet.get():error.downstream_errorsAddedapideck.accounting.profit_and_loss.get():error.downstream_errorsAddedapideck.accounting.journal_entries.list():error.downstream_errorsAddedapideck.accounting.journal_entries.create():error.downstream_errorsAddedapideck.accounting.journal_entries.get():error.downstream_errorsAddedapideck.accounting.journal_entries.update():error.downstream_errorsAddedapideck.accounting.journal_entries.delete():error.downstream_errorsAddedapideck.accounting.purchase_orders.list():error.downstream_errorsAddedapideck.accounting.purchase_orders.create():error.downstream_errorsAddedapideck.accounting.purchase_orders.get():error.downstream_errorsAddedapideck.accounting.purchase_orders.update():error.downstream_errorsAddedapideck.accounting.purchase_orders.delete():error.downstream_errorsAddedapideck.accounting.subsidiaries.list():error.downstream_errorsAddedapideck.accounting.subsidiaries.create():error.downstream_errorsAddedapideck.accounting.subsidiaries.get():error.downstream_errorsAddedapideck.accounting.subsidiaries.update():error.downstream_errorsAddedapideck.accounting.subsidiaries.delete():error.downstream_errorsAddedapideck.accounting.locations.list():error.downstream_errorsAddedapideck.accounting.locations.create():error.downstream_errorsAddedapideck.accounting.locations.get():error.downstream_errorsAddedapideck.accounting.locations.update():error.downstream_errorsAddedapideck.accounting.locations.delete():error.downstream_errorsAddedapideck.accounting.departments.list():error.downstream_errorsAddedapideck.accounting.departments.create():error.downstream_errorsAddedapideck.accounting.departments.get():error.downstream_errorsAddedapideck.accounting.departments.update():error.downstream_errorsAddedapideck.accounting.departments.delete():error.downstream_errorsAddedapideck.accounting.attachments.list():error.downstream_errorsAddedapideck.accounting.attachments.upload():error.downstream_errorsAddedapideck.accounting.attachments.get():error.downstream_errorsAddedapideck.accounting.attachments.delete():error.downstream_errorsAddedapideck.accounting.attachments.download():error.downstream_errorsAddedapideck.accounting.bank_accounts.list():error.downstream_errorsAddedapideck.accounting.bank_accounts.create():error.downstream_errorsAddedapideck.accounting.bank_accounts.get():error.downstream_errorsAddedapideck.accounting.bank_accounts.update():error.downstream_errorsAddedapideck.accounting.bank_accounts.delete():error.downstream_errorsAddedapideck.accounting.tracking_categories.list():error.downstream_errorsAddedapideck.accounting.tracking_categories.create():error.downstream_errorsAddedapideck.accounting.tracking_categories.get():error.downstream_errorsAddedapideck.accounting.tracking_categories.update():error.downstream_errorsAddedapideck.accounting.tracking_categories.delete():error.downstream_errorsAddedapideck.accounting.bill_payments.list():error.downstream_errorsAddedapideck.accounting.bill_payments.create():error.downstream_errorsAddedapideck.accounting.bill_payments.get():error.downstream_errorsAddedapideck.accounting.bill_payments.update():error.downstream_errorsAddedapideck.accounting.bill_payments.delete():error.downstream_errorsAddedapideck.accounting.expenses.list():error.downstream_errorsAddedapideck.accounting.expenses.create():error.downstream_errorsAddedapideck.accounting.expenses.get():error.downstream_errorsAddedapideck.accounting.expenses.update():error.downstream_errorsAddedapideck.accounting.expenses.delete():error.downstream_errorsAddedapideck.accounting.aged_creditors.get():error.downstream_errorsAddedapideck.accounting.aged_debtors.get():error.downstream_errorsAddedapideck.accounting.bank_feed_accounts.list():error.downstream_errorsAddedapideck.accounting.bank_feed_accounts.create():error.downstream_errorsAddedapideck.accounting.bank_feed_accounts.get():error.downstream_errorsAddedapideck.accounting.bank_feed_accounts.update():error.downstream_errorsAddedapideck.accounting.bank_feed_accounts.delete():error.downstream_errorsAddedapideck.accounting.bank_feed_statements.list():error.downstream_errorsAddedapideck.accounting.bank_feed_statements.create():error.downstream_errorsAddedapideck.accounting.bank_feed_statements.get():error.downstream_errorsAddedapideck.accounting.bank_feed_statements.update():error.downstream_errorsAddedapideck.accounting.bank_feed_statements.delete():error.downstream_errorsAddedapideck.accounting.categories.list():error.downstream_errorsAddedapideck.accounting.categories.get():error.downstream_errorsAddedapideck.accounting.quotes.list():error.downstream_errorsAddedapideck.accounting.quotes.create():error.downstream_errorsAddedapideck.accounting.quotes.get():error.downstream_errorsAddedapideck.accounting.quotes.update():error.downstream_errors...
python - v0.30.1 - 2026-02-05 18:26:15
Generated by Speakeasy CLI
Python SDK Changes Detected:
apideck.ecommerce.customers.list():request.filterChanged
Generated with Speakeasy CLI 1.656.1
Publishing Completed
python - v0.30.0 - 2026-01-22 07:52:57
Generated by Speakeasy CLI
2026-01-22 07:52:57
Changes
Based on:
- OpenAPI Doc 10.23.10
- Speakeasy CLI 1.656.1 (2.753.1) https://github.com/speakeasy-api/speakeasy
Generated
- [python v0.30.0] .
Releases
- [PyPI v0.30.0] https://pypi.org/project/apideck-unify/0.30.0 - .
Publishing Completed