Skip to content

Releases: apideck-libraries/sdk-python

python - v0.31.5 - 2026-03-27 13:06:19

27 Mar 13:06
7212263

Choose a tag to compare

Generated by Speakeasy CLI

apideck-unify 0.31.5

Python SDK Changes Detected:

  • apideck.vault.consumers.create(): response.data.connections.[] Changed
  • apideck.vault.consumers.get(): response.data.connections.[] Changed
  • apideck.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

26 Mar 13:05
a082a5a

Choose a tag to compare

Generated by Speakeasy CLI

2026-03-26 13:05:29

Changes

Based on:

Generated

  • [python v0.31.4] .

Releases

Publishing Completed

python - v0.31.3 - 2026-03-26 01:06:29

26 Mar 01:06
c45fa2c

Choose a tag to compare

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

23 Mar 09:21
c9cc6f6

Choose a tag to compare

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.2 or pip install apideck-unify==0.31.2
  • Run your test suite
  • (Optional) Migrate from JournalEntry.tax_type to JournalEntryLineItem.tax_type

python - v0.31.1 - 2026-03-18 23:39:35

18 Mar 23:39
745e4a9

Choose a tag to compare

Python SDK v0.31.1 Changelog

Release Date: March 2026

apideck-unify 0.31.1 on PyPI


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
⚠️ Breaking journal_entries.list() / journal_entries.get(): line_items[].type changed from required enum to Optional Update code that assumes .type is always present
⚠️ Breaking 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 .type access on JournalEntryLineItem objects
  • Add null guards where line_items[].type is accessed
  • Run your test suite

python - v0.31.0 - 2026-03-11 15:13:20

11 Mar 15:13
e7348b8

Choose a tag to compare

Generated by Speakeasy CLI

apideck-unify 0.31.0

Python SDK Changes Detected:

  • apideck.accounting.refunds.list(): Added
  • apideck.accounting.refunds.create(): Added
  • apideck.accounting.refunds.get(): Added
  • apideck.accounting.refunds.update(): Added
  • apideck.accounting.refunds.delete(): Added
  • apideck.accounting.companies.list(): Added
  • apideck.ats.jobs.create(): Added
  • apideck.ats.jobs.update(): Added
  • apideck.ats.jobs.delete(): Added
  • apideck.accounting.tax_rates.list(): request.company_id Added
  • apideck.accounting.tax_rates.create(): request.company_id Added
  • apideck.accounting.tax_rates.get(): request.company_id Added
  • apideck.accounting.tax_rates.update(): request.company_id Added
  • apideck.accounting.tax_rates.delete(): request.company_id Added
  • apideck.accounting.bills.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.bills.create(): request.terms_id Added
  • apideck.accounting.bills.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.bills.update(): request.terms_id Added
  • apideck.accounting.invoices.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.invoices.create(): request Changed
  • apideck.accounting.invoices.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.invoices.update(): request.terms_id Added
  • apideck.accounting.ledger_accounts.list(): request.company_id Added
  • apideck.accounting.ledger_accounts.create(): request.company_id Added
  • apideck.accounting.ledger_accounts.get(): request.company_id Added
  • apideck.accounting.ledger_accounts.update(): request.company_id Added
  • apideck.accounting.ledger_accounts.delete(): request.company_id Added
  • apideck.accounting.invoice_items.list(): request.company_id Added
  • apideck.accounting.invoice_items.create(): request.company_id Added
  • apideck.accounting.invoice_items.get(): request.company_id Added
  • apideck.accounting.credit_notes.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.credit_notes.create(): request Changed
  • apideck.accounting.credit_notes.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.credit_notes.update(): request.terms_id Added
  • apideck.accounting.customers.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.customers.create(): request Changed
  • apideck.accounting.customers.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.customers.update(): request.terms_id Added
  • apideck.accounting.suppliers.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.suppliers.create(): request Changed
  • apideck.accounting.suppliers.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.suppliers.update(): request Changed
  • apideck.accounting.suppliers.delete(): request.company_id Added
  • apideck.accounting.payments.list(): request.company_id Added
  • apideck.accounting.payments.create(): request.company_id_param Added
  • apideck.accounting.payments.get(): request.company_id Added
  • apideck.accounting.payments.update(): request.company_id_param Added
  • apideck.accounting.payments.delete(): request.company_id Added
  • apideck.accounting.company_info.get(): request.company_id Added
  • apideck.accounting.balance_sheet.get(): request.company_id Added
  • apideck.accounting.profit_and_loss.get(): request.company_id Added
  • apideck.accounting.journal_entries.list(): request.company_id Added
  • apideck.accounting.journal_entries.create(): request.company_id_param Added
  • apideck.accounting.journal_entries.get(): request.company_id Added
  • apideck.accounting.journal_entries.update(): request.company_id_param Added
  • apideck.accounting.journal_entries.delete(): request.company_id Added
  • apideck.accounting.purchase_orders.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.purchase_orders.create(): request Changed
  • apideck.accounting.purchase_orders.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.purchase_orders.update(): request Changed
  • apideck.accounting.purchase_orders.delete(): request.company_id Added
  • apideck.accounting.subsidiaries.list(): request.company_id Added
  • apideck.accounting.subsidiaries.create(): request.company_id Added
  • apideck.accounting.subsidiaries.get(): request.company_id Added
  • apideck.accounting.subsidiaries.update(): request.company_id Added
  • apideck.accounting.subsidiaries.delete(): request.company_id Added
  • apideck.accounting.locations.list(): request.company_id Added
  • apideck.accounting.locations.create(): request.company_id Added
  • apideck.accounting.locations.get(): request.company_id Added
  • apideck.accounting.locations.update(): request.company_id Added
  • apideck.accounting.locations.delete(): request.company_id Added
  • apideck.accounting.departments.list(): request.company_id Added
  • apideck.accounting.departments.create(): request.company_id Added
  • apideck.accounting.departments.get(): request.company_id Added
  • apideck.accounting.attachments.list(): request.company_id Added
  • apideck.accounting.attachments.get(): request.company_id Added
  • apideck.accounting.attachments.download(): request.company_id Added
  • apideck.accounting.bank_accounts.list(): request.company_id Added
  • apideck.accounting.bank_accounts.get(): request.company_id Added
  • apideck.accounting.tracking_categories.list(): request.company_id Added
  • apideck.accounting.tracking_categories.create(): request.company_id Added
  • apideck.accounting.tracking_categories.get(): request.company_id Added
  • apideck.accounting.tracking_categories.update(): request.company_id Added
  • apideck.accounting.tracking_categories.delete(): request.company_id Added
  • apideck.accounting.bill_payments.list(): request.company_id Added
  • apideck.accounting.bill_payments.create(): request.company_id_param Added
  • apideck.accounting.bill_payments.get(): request.company_id Added
  • apideck.accounting.expenses.list(): request Changed
  • apideck.accounting.expenses.create(): request.company_id_param Added
  • apideck.accounting.expenses.get(): request.company_id Added
  • apideck.accounting.aged_creditors.get(): request.company_id Added
  • apideck.accounting.aged_debtors.get(): request.company_id Added
  • apideck.accounting.bank_feed_accounts.list(): request.company_id Added
  • apideck.accounting.bank_feed_accounts.get(): request.company_id Added
  • apideck.accounting.bank_feed_statements.list(): request.company_id Added
  • apideck.accounting.bank_feed_statements.create(): request.company_id Added
  • apideck.accounting.bank_feed_statements.get(): request.company_id Added
  • apideck.accounting.categories.list(): request.company_id Added
  • apideck.accounting.categories.get(): request.company_id Added
  • apideck.accounting.quotes.list():
    • request.company_id Added
    • response.data.[].terms_id Added
  • apideck.accounting.quotes.create(): request Changed
  • apideck.accounting.quotes.get():
    • request.company_id Added
    • response.data.terms_id Added
  • apideck.accounting.quotes.update(): request Changed
  • apideck.accounting.quotes.delete(): request.company_id Added
  • apideck.accounting.projects.list(): request.company_id Added
  • apideck.accounting.projects.create(): request.company_id_param Added
  • apideck.accounting.projects.get(): request.company_id Added
  • apideck.accounting.projects.update(): request.company_id_param Added
  • apideck.accounting.projects.delete(): request.company_id Added
  • apideck.vault.consumers.list(): request.filter Added

Generated with Speakeasy CLI 1.656.1

Publishing Completed

python - v0.30.3 - 2026-02-26 11:02:00

26 Feb 11:02
3b42303

Choose a tag to compare

Generated by Speakeasy CLI

apideck-unify 0.30.3

Python SDK Changes Detected:

  • apideck.accounting.employees.list(): Added
  • apideck.accounting.employees.create(): Added
  • apideck.accounting.employees.get(): Added
  • apideck.accounting.employees.update(): Added
  • apideck.accounting.employees.delete(): Added
  • apideck.accounting.expense_categories.list(): Added
  • apideck.accounting.expense_categories.create(): Added
  • apideck.accounting.expense_categories.get(): Added
  • apideck.accounting.expense_categories.update(): Added
  • apideck.accounting.expense_categories.delete(): Added
  • apideck.accounting.expense_reports.list(): Added
  • apideck.accounting.expense_reports.create(): Added
  • apideck.accounting.expense_reports.get(): Added
  • apideck.accounting.expense_reports.update(): Added
  • apideck.accounting.expense_reports.delete(): Added

Generated with Speakeasy CLI 1.656.1

Publishing Completed

python - v0.30.2 - 2026-02-16 10:14:36

16 Feb 10:14
5ff178a

Choose a tag to compare

Generated by Speakeasy CLI

apideck-unify 0.30.2

Python SDK Changes Detected:

  • apideck.ecommerce.customers.list():
    • request.filter Changed Breaking ⚠️
    • error.downstream_errors Added
  • apideck.proxy.get(): Added
  • apideck.proxy.options(): Added
  • apideck.proxy.post(): Added
  • apideck.proxy.put(): Added
  • apideck.proxy.patch(): Added
  • apideck.proxy.delete(): Added
  • apideck.accounting.tax_rates.list(): error.downstream_errors Added
  • apideck.accounting.tax_rates.create(): error.downstream_errors Added
  • apideck.accounting.tax_rates.get(): error.downstream_errors Added
  • apideck.accounting.tax_rates.update(): error.downstream_errors Added
  • apideck.accounting.tax_rates.delete(): error.downstream_errors Added
  • apideck.accounting.bills.list(): error.downstream_errors Added
  • apideck.accounting.bills.create(): error.downstream_errors Added
  • apideck.accounting.bills.get(): error.downstream_errors Added
  • apideck.accounting.bills.update(): error.downstream_errors Added
  • apideck.accounting.bills.delete(): error.downstream_errors Added
  • apideck.accounting.invoices.list(): error.downstream_errors Added
  • apideck.accounting.invoices.create(): error.downstream_errors Added
  • apideck.accounting.invoices.get(): error.downstream_errors Added
  • apideck.accounting.invoices.update(): error.downstream_errors Added
  • apideck.accounting.invoices.delete(): error.downstream_errors Added
  • apideck.accounting.ledger_accounts.list(): error.downstream_errors Added
  • apideck.accounting.ledger_accounts.create(): error.downstream_errors Added
  • apideck.accounting.ledger_accounts.get(): error.downstream_errors Added
  • apideck.accounting.ledger_accounts.update(): error.downstream_errors Added
  • apideck.accounting.ledger_accounts.delete(): error.downstream_errors Added
  • apideck.accounting.invoice_items.list():
    • request.filter Changed
    • error.downstream_errors Added
  • apideck.accounting.invoice_items.create(): error.downstream_errors Added
  • apideck.accounting.invoice_items.get(): error.downstream_errors Added
  • apideck.accounting.invoice_items.update(): error.downstream_errors Added
  • apideck.accounting.invoice_items.delete(): error.downstream_errors Added
  • apideck.accounting.credit_notes.list(): error.downstream_errors Added
  • apideck.accounting.credit_notes.create(): error.downstream_errors Added
  • apideck.accounting.credit_notes.get(): error.downstream_errors Added
  • apideck.accounting.credit_notes.update(): error.downstream_errors Added
  • apideck.accounting.credit_notes.delete(): error.downstream_errors Added
  • apideck.accounting.customers.list(): error.downstream_errors Added
  • apideck.accounting.customers.create(): error.downstream_errors Added
  • apideck.accounting.customers.get(): error.downstream_errors Added
  • apideck.accounting.customers.update(): error.downstream_errors Added
  • apideck.accounting.customers.delete(): error.downstream_errors Added
  • apideck.accounting.suppliers.list(): error.downstream_errors Added
  • apideck.accounting.suppliers.create(): error.downstream_errors Added
  • apideck.accounting.suppliers.get(): error.downstream_errors Added
  • apideck.accounting.suppliers.update(): error.downstream_errors Added
  • apideck.accounting.suppliers.delete(): error.downstream_errors Added
  • apideck.accounting.payments.list(): error.downstream_errors Added
  • apideck.accounting.payments.create(): error.downstream_errors Added
  • apideck.accounting.payments.get(): error.downstream_errors Added
  • apideck.accounting.payments.update(): error.downstream_errors Added
  • apideck.accounting.payments.delete(): error.downstream_errors Added
  • apideck.accounting.company_info.get(): error.downstream_errors Added
  • apideck.accounting.balance_sheet.get(): error.downstream_errors Added
  • apideck.accounting.profit_and_loss.get(): error.downstream_errors Added
  • apideck.accounting.journal_entries.list(): error.downstream_errors Added
  • apideck.accounting.journal_entries.create(): error.downstream_errors Added
  • apideck.accounting.journal_entries.get(): error.downstream_errors Added
  • apideck.accounting.journal_entries.update(): error.downstream_errors Added
  • apideck.accounting.journal_entries.delete(): error.downstream_errors Added
  • apideck.accounting.purchase_orders.list(): error.downstream_errors Added
  • apideck.accounting.purchase_orders.create(): error.downstream_errors Added
  • apideck.accounting.purchase_orders.get(): error.downstream_errors Added
  • apideck.accounting.purchase_orders.update(): error.downstream_errors Added
  • apideck.accounting.purchase_orders.delete(): error.downstream_errors Added
  • apideck.accounting.subsidiaries.list(): error.downstream_errors Added
  • apideck.accounting.subsidiaries.create(): error.downstream_errors Added
  • apideck.accounting.subsidiaries.get(): error.downstream_errors Added
  • apideck.accounting.subsidiaries.update(): error.downstream_errors Added
  • apideck.accounting.subsidiaries.delete(): error.downstream_errors Added
  • apideck.accounting.locations.list(): error.downstream_errors Added
  • apideck.accounting.locations.create(): error.downstream_errors Added
  • apideck.accounting.locations.get(): error.downstream_errors Added
  • apideck.accounting.locations.update(): error.downstream_errors Added
  • apideck.accounting.locations.delete(): error.downstream_errors Added
  • apideck.accounting.departments.list(): error.downstream_errors Added
  • apideck.accounting.departments.create(): error.downstream_errors Added
  • apideck.accounting.departments.get(): error.downstream_errors Added
  • apideck.accounting.departments.update(): error.downstream_errors Added
  • apideck.accounting.departments.delete(): error.downstream_errors Added
  • apideck.accounting.attachments.list(): error.downstream_errors Added
  • apideck.accounting.attachments.upload(): error.downstream_errors Added
  • apideck.accounting.attachments.get(): error.downstream_errors Added
  • apideck.accounting.attachments.delete(): error.downstream_errors Added
  • apideck.accounting.attachments.download(): error.downstream_errors Added
  • apideck.accounting.bank_accounts.list(): error.downstream_errors Added
  • apideck.accounting.bank_accounts.create(): error.downstream_errors Added
  • apideck.accounting.bank_accounts.get(): error.downstream_errors Added
  • apideck.accounting.bank_accounts.update(): error.downstream_errors Added
  • apideck.accounting.bank_accounts.delete(): error.downstream_errors Added
  • apideck.accounting.tracking_categories.list(): error.downstream_errors Added
  • apideck.accounting.tracking_categories.create(): error.downstream_errors Added
  • apideck.accounting.tracking_categories.get(): error.downstream_errors Added
  • apideck.accounting.tracking_categories.update(): error.downstream_errors Added
  • apideck.accounting.tracking_categories.delete(): error.downstream_errors Added
  • apideck.accounting.bill_payments.list(): error.downstream_errors Added
  • apideck.accounting.bill_payments.create(): error.downstream_errors Added
  • apideck.accounting.bill_payments.get(): error.downstream_errors Added
  • apideck.accounting.bill_payments.update(): error.downstream_errors Added
  • apideck.accounting.bill_payments.delete(): error.downstream_errors Added
  • apideck.accounting.expenses.list(): error.downstream_errors Added
  • apideck.accounting.expenses.create(): error.downstream_errors Added
  • apideck.accounting.expenses.get(): error.downstream_errors Added
  • apideck.accounting.expenses.update(): error.downstream_errors Added
  • apideck.accounting.expenses.delete(): error.downstream_errors Added
  • apideck.accounting.aged_creditors.get(): error.downstream_errors Added
  • apideck.accounting.aged_debtors.get(): error.downstream_errors Added
  • apideck.accounting.bank_feed_accounts.list(): error.downstream_errors Added
  • apideck.accounting.bank_feed_accounts.create(): error.downstream_errors Added
  • apideck.accounting.bank_feed_accounts.get(): error.downstream_errors Added
  • apideck.accounting.bank_feed_accounts.update(): error.downstream_errors Added
  • apideck.accounting.bank_feed_accounts.delete(): error.downstream_errors Added
  • apideck.accounting.bank_feed_statements.list(): error.downstream_errors Added
  • apideck.accounting.bank_feed_statements.create(): error.downstream_errors Added
  • apideck.accounting.bank_feed_statements.get(): error.downstream_errors Added
  • apideck.accounting.bank_feed_statements.update(): error.downstream_errors Added
  • apideck.accounting.bank_feed_statements.delete(): error.downstream_errors Added
  • apideck.accounting.categories.list(): error.downstream_errors Added
  • apideck.accounting.categories.get(): error.downstream_errors Added
  • apideck.accounting.quotes.list(): error.downstream_errors Added
  • apideck.accounting.quotes.create(): error.downstream_errors Added
  • apideck.accounting.quotes.get(): error.downstream_errors Added
  • apideck.accounting.quotes.update(): error.downstream_errors ...
Read more

python - v0.30.1 - 2026-02-05 18:26:15

05 Feb 18:26
2724149

Choose a tag to compare

Generated by Speakeasy CLI

apideck-unify 0.30.1

Python SDK Changes Detected:

  • apideck.ecommerce.customers.list(): request.filter Changed

Generated with Speakeasy CLI 1.656.1

Publishing Completed

python - v0.30.0 - 2026-01-22 07:52:57

22 Jan 07:53
ce816d4

Choose a tag to compare

Generated by Speakeasy CLI

2026-01-22 07:52:57

Changes

Based on:

Generated

  • [python v0.30.0] .

Releases

Publishing Completed