Skip to content

Releases: apideck-libraries/sdk-java

java - v0.31.4 - 2026-03-31 13:06:31

31 Mar 13:06
298097d

Choose a tag to compare

Generated by Speakeasy CLI

2026-03-31 13:06:31

Changes

Based on:

Generated

  • [java v0.31.4] .

Releases

Publishing Completed

java - v0.31.3 - 2026-03-27 13:06:30

27 Mar 13:06
cb94ec0

Choose a tag to compare

Generated by Speakeasy CLI

com.apideck.unify 0.31.3

Java SDK Changes:

  • apideck.vault.consumers.create(): response.data.connections[] Changed
  • apideck.vault.consumers.get(): response.data.connections[] Changed
  • apideck.vault.consumers.update(): response.data.connections[] Changed
  • apideck.webhook.webhooks.list(): response.data[].events[] Changed
  • apideck.webhook.webhooks.create():
    • request.createWebhookRequest.events[] Changed
    • response.data.events[] Changed
  • apideck.webhook.webhooks.get(): response.data.events[] Changed
  • apideck.webhook.webhooks.update():
    • request.updateWebhookRequest.events[] Changed
    • response.data.events[] Changed
  • apideck.webhook.webhooks.delete(): response.data.events[] Changed

Generated with Speakeasy CLI 1.759.3

Publishing Completed

java - v0.31.2 - 2026-03-26 13:05:09

26 Mar 13:05
fc25bc6

Choose a tag to compare

Generated by Speakeasy CLI

2026-03-26 13:05:09

Changes

Based on:

Generated

  • [java v0.31.2] .

Releases

Publishing Completed

java - v0.31.1 - 2026-03-23 09:32:47

23 Mar 09:32
39f8236

Choose a tag to compare

Java SDK v0.31.1 Changelog

Release Date: March 2026


What's New

This release enriches journal entry line items with employee linkage and tax type classification, adds bank account support to accounting employees, and introduces a new EMPLOYEE financial account type. The taxType field on JournalEntry and JournalEntryInput has been deprecated in favor of a more granular taxType on individual line items. This release includes breaking changes to JournalEntryLineItem and JournalEntryLineItemInput — the type field is now optional, and the convenience constructors have been replaced with no-arg constructors.


Summary of Changes

Category Description Action Required
Breaking: JournalEntryLineItem.type() Return type changed from JournalEntryLineItemType to Optional<JournalEntryLineItemType> Update code that reads type() to handle Optional
Breaking: JournalEntryLineItemInput.type() Return type changed from JournalEntryLineItemType to Optional<JournalEntryLineItemType> Update code that reads type() to handle Optional
Breaking: JournalEntryLineItem constructor JournalEntryLineItem(JournalEntryLineItemType type) replaced with no-arg JournalEntryLineItem() Update constructor calls to use builder or no-arg constructor
Breaking: JournalEntryLineItemInput constructor JournalEntryLineItemInput(JournalEntryLineItemType type) replaced with no-arg JournalEntryLineItemInput() Update constructor calls to use builder or no-arg constructor
New: LinkedEmployee class Link employees to journal entry line items None (optional to use)
New: TaxType enum Classify tax as SALES or PURCHASE None (optional to use)
New: bankAccount on AccountingEmployee Bank account details on employee records None (optional to use)
New: employee on JournalEntryLineItem Employee linkage on journal entry line items None (optional to use)
New: taxType on JournalEntryLineItem Per-line-item tax type classification None (optional to use)
New: EMPLOYEE enum value New value in LinkedFinancialAccountAccountType None (backward compatible)
Deprecation: JournalEntry.taxType() Deprecated in favor of per-line-item taxType Migrate to line-item taxType when convenient
Deprecation: JournalEntryInput.taxType() Deprecated in favor of per-line-item taxType Migrate to line-item taxType when convenient

Detailed Changes by API

Accounting API

Breaking: JournalEntryLineItem.type() is now Optional

What changed: The type() accessor on JournalEntryLineItem and JournalEntryLineItemInput now returns Optional<JournalEntryLineItemType> instead of JournalEntryLineItemType. The type field is no longer required when constructing line items.

Impact: Any code that calls .type() on a JournalEntryLineItem or JournalEntryLineItemInput and expects a non-optional value will fail to compile. You must update these call sites to handle the Optional wrapper.

Before (v0.31.0):

// Reading type — returned a direct value
JournalEntryLineItem lineItem = ...;
JournalEntryLineItemType type = lineItem.type();
if (type == JournalEntryLineItemType.DEBIT) {
    // handle debit
}

After (v0.31.1):

// Reading type — now returns Optional
JournalEntryLineItem lineItem = ...;
Optional<JournalEntryLineItemType> type = lineItem.type();
type.ifPresent(t -> {
    if (t == JournalEntryLineItemType.DEBIT) {
        // handle debit
    }
});

// Or use orElse for a default
JournalEntryLineItemType typeOrDefault = lineItem.type()
    .orElse(JournalEntryLineItemType.DEBIT);

Breaking: JournalEntryLineItem convenience constructor removed

What changed: The convenience constructor JournalEntryLineItem(JournalEntryLineItemType type) has been replaced with a no-arg constructor JournalEntryLineItem(). The same change applies to JournalEntryLineItemInput.

Impact: Any code that creates line items using the single-argument constructor will fail to compile. Use the no-arg constructor and set the type via the builder pattern instead.

Before (v0.31.0):

// Constructing with required type parameter
JournalEntryLineItem lineItem = new JournalEntryLineItem(
    JournalEntryLineItemType.DEBIT
);

JournalEntryLineItemInput lineItemInput = new JournalEntryLineItemInput(
    JournalEntryLineItemType.CREDIT
);

After (v0.31.1):

// No-arg constructor — set type via builder
JournalEntryLineItem lineItem = JournalEntryLineItem.builder()
    .type(JournalEntryLineItemType.DEBIT)
    .build();

JournalEntryLineItemInput lineItemInput = JournalEntryLineItemInput.builder()
    .type(JournalEntryLineItemType.CREDIT)
    .build();

// Or use the no-arg constructor and setter
JournalEntryLineItem lineItem = new JournalEntryLineItem();
lineItem.type(JournalEntryLineItemType.DEBIT);

New: LinkedEmployee class

What changed: A new LinkedEmployee class allows you to associate employees with journal entry line items. This is available via the new employee field on JournalEntryLineItem and JournalEntryLineItemInput.

Impact: None. This is an optional field.

// Link an employee to a journal entry line item
JournalEntryLineItemInput lineItem = JournalEntryLineItemInput.builder()
    .type(JournalEntryLineItemType.DEBIT)
    .employee(LinkedEmployee.builder()
        .id("emp_456")
        .build())
    .totalAmount(1500.00)
    .build();

New: TaxType enum

What changed: A new TaxType enum with values SALES and PURCHASE is available on journal entry line items. This replaces the deprecated taxType field on the parent JournalEntry and JournalEntryInput, allowing more granular tax classification at the line-item level.

Impact: None. This is an optional field. The deprecated JournalEntry.taxType() continues to work.

// Set tax type per line item (new, preferred approach)
JournalEntryLineItemInput debitLine = JournalEntryLineItemInput.builder()
    .type(JournalEntryLineItemType.DEBIT)
    .taxType(TaxType.SALES)
    .totalAmount(500.00)
    .build();

JournalEntryLineItemInput creditLine = JournalEntryLineItemInput.builder()
    .type(JournalEntryLineItemType.CREDIT)
    .taxType(TaxType.PURCHASE)
    .totalAmount(500.00)
    .build();

New: bankAccount field on AccountingEmployee

What changed: A new optional bankAccount field is available on AccountingEmployee and AccountingEmployeeInput, allowing you to read and set bank account details for accounting employees.

Impact: None. This is an optional field.

// Reading bank account from an employee
var response = sdk.accounting().employees().get()
    .id("emp_123")
    .call();

response.getAccountingEmployee()
    .bankAccount()
    .ifPresent(account -> {
        System.out.println("Bank: " + account);
    });

New: EMPLOYEE financial account type

What changed: A new EMPLOYEE value has been added to the LinkedFinancialAccountAccountType enum.

Impact: None. This is backward compatible. If you have exhaustive switch statements over LinkedFinancialAccountAccountType, note that the SDK's forward-compatible enum handling (introduced in v0.31.0) will prevent compilation errors for unknown values.


Deprecation: JournalEntry.taxType() and JournalEntryInput.taxType()

What changed: The taxType field on JournalEntry and JournalEntryInput has been marked @Deprecated. Tax type classification should now be set at the line-item level using the new taxType field on JournalEntryLineItem and JournalEntryLineItemInput.

Impact: Existing code using JournalEntry.taxType() will continue to work but will produce deprecation warnings. Plan to migrate to per-line-item taxType at your convenience.

// Deprecated — setting taxType on the journal entry
@SuppressWarnings("deprecation")
JournalEntryInput entry = JournalEntryInput.builder()
    .taxType(someTaxType)  // @Deprecated
    .lineItems(lineItems)
    .build();

// Preferred — setting taxType on individual line items
JournalEntryLineItemInput lineItem = JournalEntryLineItemInput.builder()
    .type(JournalEntryLineItemType.DEBIT)
    .taxType(TaxType.SALES)  // new per-line-item field
    .totalAmount(500.00)
    .build();

Migration Checklist

  • Update dependency to v0.31.1
  • Search for JournalEntryLineItem.type() calls and update to handle Optional<JournalEntryLineItemType>
  • Search for JournalEntryLineItemInput.type() calls and update to handle Optional<JournalEntryLineItemType>
  • Replace new JournalEntryLineItem(JournalEntryLineItemType.*) constructor calls with the builder pattern or no-arg constructor
  • Replace new JournalEntryLineItemInput(JournalEntryLineItemType.*) constructor calls with the builder pattern or no-arg constructor
  • Run mvn clean compile to verify compatibility
  • Run your test suite
  • Optionally migrate from JournalEntry.taxType() to per-line-item taxType
  • Optionally adopt LinkedEmployee for employee-linked journal entries
  • Optionally adopt bankAccount on AccountingEmployee

New Features to Explore

After upgrading and addressing the breaking changes, you can optionally take advantage of:

  1. Employee-linked journal entries — Use LinkedEmployee to associate employees with specific journal entry line items
  2. Per-line-item tax type — Classify each line item as SALES or PURCHASE using the new TaxType enum for more granular tax tracking
  3. Employee bank accounts — Read and set bank account details on accounting employees
  4. Employee financial accounts — Use the new EMPLOYEE account type in LinkedFinancialAccountAccountType

De...

Read more

java - v0.31.0 - 2026-03-11 15:11:51

11 Mar 15:12
252869f

Choose a tag to compare

Java SDK v0.31.0 Changelog

Release Date: March 2026


What's New

This release introduces multi-company support via companyId, new Accounting endpoints (Refunds, Companies), ATS job management, automatic Retry-After header support, and a new Jackson module for custom serialization.


Summary of Changes

Category Description Action Required
Retry-After support SDK automatically respects Retry-After headers on retries None (automatic)
Multi-company support New companyId parameter on most Accounting endpoints None (optional)
Jackson module New SpeakeasyJacksonModule and JSON.getMapper() for custom serialization None (optional to use)
Accounting Refunds Full CRUD for refunds None (optional to use)
Accounting Companies New companies().list() endpoint None (optional to use)
ATS Jobs management create(), update(), delete() for jobs None (optional to use)
termsId field New field on Bills, Invoices, Credit Notes, Customers, Suppliers, Purchase Orders, Quotes None (optional to use)
Expense voided status New voided enum value for expense status None (backward compatible)
Vault consumer filtering New filter parameter on vault.consumers.list() None (optional to use)
Forward-compatible enums Enums now handle unknown values without throwing None (backward compatible)

Detailed Changes by API

SDK Infrastructure

Retry-After Header Support

What changed: The SDK now automatically respects Retry-After HTTP headers when retrying failed requests. If an API response includes a Retry-After header (common with 429 Too Many Requests or 503 Service Unavailable), the SDK will wait the specified duration before retrying instead of using the default backoff.

Impact: None. This works automatically with the existing retry configuration. Your retry settings continue to work — Retry-After simply provides smarter wait times when the server tells you how long to wait.

// Retries already configured? Retry-After is now respected automatically.
var sdk = Apideck.builder()
    .apiKey("your-api-key")
    .retryConfig(RetryConfig.builder()
        .maxRetries(3)
        .build())
    .build();

Jackson Module & JSON Mapper Access

What changed: A new SpeakeasyJacksonModule composite Jackson module is available, and JSON.getMapper() provides access to the SDK's configured ObjectMapper for custom serialization needs.

import com.apideck.unify.utils.JSON;

// Access the SDK's pre-configured ObjectMapper
ObjectMapper mapper = JSON.getMapper();

// Use it for custom serialization/deserialization
String json = mapper.writeValueAsString(myObject);

Accounting API

Multi-Company Support (companyId)

What changed: A new optional companyId parameter is available on most Accounting request builders. It scopes the request to a specific company for connectors that support multi-company setups.

Affected methods: All CRUD operations across Tax Rates, Bills, Invoices, Ledger Accounts, Invoice Items, Credit Notes, Customers, Suppliers, Payments, Journal Entries, Purchase Orders, Subsidiaries, Locations, Departments, Attachments, Bank Accounts, Tracking Categories, Bill Payments, Expenses, Aged Creditors/Debtors, Bank Feed Accounts/Statements, Categories, Quotes, Projects, Company Info, Balance Sheet, and Profit & Loss.

Impact: None. This is an optional parameter. Your existing code continues to work.

// New capability — scope requests to a specific company
var response = sdk.accounting().bills().list()
    .companyId("company-123")
    .call();

Refunds (New)

What changed: Full CRUD support for accounting refunds.

// List refunds
var response = sdk.accounting().refunds().list()
    .call();

// Create a refund
sdk.accounting().refunds().create()
    .refund(RefundInput.builder()
        .totalAmount(49.99)
        .build())
    .call();

// Get, update, delete also available
sdk.accounting().refunds().get().id("refund_123").call();
sdk.accounting().refunds().update().id("refund_123").refund(...).call();
sdk.accounting().refunds().delete().id("refund_123").call();

Companies (New)

What changed: New endpoint to list companies associated with an accounting connection.

var response = sdk.accounting().companies().list()
    .call();

termsId Field

What changed: New optional termsId field available on Bills, Invoices, Credit Notes, Customers, Suppliers, Purchase Orders, and Quotes. Available in both responses and create/update requests.

// Reading termsId from a response
var bills = sdk.accounting().bills().list().call();
for (var bill : bills.getData()) {
    bill.getTermsId().ifPresent(id -> System.out.println("Terms: " + id));
}

// Setting termsId on create/update
sdk.accounting().bills().create()
    .bill(BillInput.builder()
        .termsId("net-30")
        .build())
    .call();

Expenses

What changed: New voided status value for expenses.

// Expenses can now have a "voided" status
sdk.accounting().expenses().update()
    .id("expense_123")
    .expense(ExpenseInput.builder()
        .status(ExpenseStatus.VOIDED)
        .build())
    .call();

ATS API

Jobs

What changed: Jobs now support full lifecycle management with create(), update(), and delete() operations (previously read-only).

// Create a job
sdk.ats().jobs().create()
    .job(JobInput.builder()
        .title("Senior Engineer")
        .build())
    .call();

// Update a job
sdk.ats().jobs().update()
    .id("job_123")
    .job(JobInput.builder()
        .title("Staff Engineer")
        .build())
    .call();

// Delete a job
sdk.ats().jobs().delete()
    .id("job_123")
    .call();

Vault API

Consumers

What changed: New optional filter parameter on consumers().list().


Migration Checklist

  • Update dependency to v0.31.0
  • Run mvn clean compile to verify compatibility
  • Run your test suite
  • Optionally adopt companyId for multi-company use cases

New Features to Explore

After upgrading, you can optionally take advantage of:

  1. Retry-After support — The SDK now automatically respects server-provided retry delays for smarter rate-limit handling
  2. Multi-company support — Use companyId to scope Accounting requests to a specific company
  3. Refunds management — Full CRUD for accounting refunds
  4. Companies listing — Discover companies associated with an accounting connection
  5. ATS job management — Create, update, and delete jobs (not just read)
  6. Terms tracking — Use termsId on bills, invoices, credit notes, and more
  7. Jackson mapper access — Use JSON.getMapper() for custom serialization with the SDK's configured ObjectMapper
  8. Expense voiding — Mark expenses as voided

Dependency Update

Maven:

<dependency>
    <groupId>com.apideck</groupId>
    <artifactId>unify</artifactId>
    <version>0.31.0</version>
</dependency>

Gradle:

implementation 'com.apideck:unify:0.31.0'

Questions?

java - v0.30.4 - 2026-02-26 11:01:15

26 Feb 11:01
2ce58e6

Choose a tag to compare

Generated by Speakeasy CLI

com.apideck.unify 0.30.4

Java SDK Changes:

  • 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.expenseCategories.list(): Added
  • apideck.accounting.expenseCategories.create(): Added
  • apideck.accounting.expenseCategories.get(): Added
  • apideck.accounting.expenseCategories.update(): Added
  • apideck.accounting.expenseCategories.delete(): Added
  • apideck.accounting.expenseReports.list(): Added
  • apideck.accounting.expenseReports.create(): Added
  • apideck.accounting.expenseReports.get(): Added
  • apideck.accounting.expenseReports.update(): Added
  • apideck.accounting.expenseReports.delete(): Added

Generated with Speakeasy CLI 1.730.1

Publishing Completed

java - v0.30.3 - 2026-02-16 10:15:29

16 Feb 10:15
d1bb123

Choose a tag to compare

Generated by Speakeasy CLI

com.apideck.unify 0.30.3

Java SDK Changes:

  • 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.invoiceItems.list():
    • request.filter Changed
  • apideck.crm.companies.list():
    • request.filter Changed
  • apideck.crm.contacts.list():
    • request.filter Changed
  • apideck.crm.contacts.get():
    • request.filter Changed
  • apideck.ecommerce.customers.list():
    • request.filter Changed
  • apideck.hris.employees.list(): response.data[].leavingReason.enum(retired) Added
  • apideck.hris.employees.create():
    • request.employee.leavingReason.enum(retired) Added
  • apideck.hris.employees.get(): response.data.leavingReason.enum(retired) Added
  • apideck.hris.employees.update():
    • request.employee.leavingReason.enum(retired) Added
  • apideck.hris.employeeSchedules.list(): response.data.employee.leavingReason.enum(retired) Added

Generated with Speakeasy CLI 1.718.0

Publishing Completed

java - v0.30.2 - 2026-02-05 17:40:33

05 Feb 17:40
98279df

Choose a tag to compare

Generated by Speakeasy CLI

com.apideck.unify 0.30.2

Java SDK Changes:

  • apideck.accounting.taxRates.list(): error.downstreamErrors Added
  • apideck.accounting.taxRates.create(): error.downstreamErrors Added
  • apideck.accounting.taxRates.get(): error.downstreamErrors Added
  • apideck.accounting.taxRates.update(): error.downstreamErrors Added
  • apideck.accounting.taxRates.delete(): error.downstreamErrors Added
  • apideck.accounting.bills.list(): error.downstreamErrors Added
  • apideck.accounting.bills.create(): error.downstreamErrors Added
  • apideck.accounting.bills.get(): error.downstreamErrors Added
  • apideck.accounting.bills.update(): error.downstreamErrors Added
  • apideck.accounting.bills.delete(): error.downstreamErrors Added
  • apideck.accounting.invoices.list(): error.downstreamErrors Added
  • apideck.accounting.invoices.create(): error.downstreamErrors Added
  • apideck.accounting.invoices.get(): error.downstreamErrors Added
  • apideck.accounting.invoices.update(): error.downstreamErrors Added
  • apideck.accounting.invoices.delete(): error.downstreamErrors Added
  • apideck.accounting.ledgerAccounts.list(): error.downstreamErrors Added
  • apideck.accounting.ledgerAccounts.create(): error.downstreamErrors Added
  • apideck.accounting.ledgerAccounts.get(): error.downstreamErrors Added
  • apideck.accounting.ledgerAccounts.update(): error.downstreamErrors Added
  • apideck.accounting.ledgerAccounts.delete(): error.downstreamErrors Added
  • apideck.accounting.invoiceItems.list(): error.downstreamErrors Added
  • apideck.accounting.invoiceItems.create(): error.downstreamErrors Added
  • apideck.accounting.invoiceItems.get(): error.downstreamErrors Added
  • apideck.accounting.invoiceItems.update(): error.downstreamErrors Added
  • apideck.accounting.invoiceItems.delete(): error.downstreamErrors Added
  • apideck.accounting.creditNotes.list(): error.downstreamErrors Added
  • apideck.accounting.creditNotes.create(): error.downstreamErrors Added
  • apideck.accounting.creditNotes.get(): error.downstreamErrors Added
  • apideck.accounting.creditNotes.update(): error.downstreamErrors Added
  • apideck.accounting.creditNotes.delete(): error.downstreamErrors Added
  • apideck.accounting.customers.list(): error.downstreamErrors Added
  • apideck.accounting.customers.create(): error.downstreamErrors Added
  • apideck.accounting.customers.get(): error.downstreamErrors Added
  • apideck.accounting.customers.update(): error.downstreamErrors Added
  • apideck.accounting.customers.delete(): error.downstreamErrors Added
  • apideck.accounting.suppliers.list(): error.downstreamErrors Added
  • apideck.accounting.suppliers.create(): error.downstreamErrors Added
  • apideck.accounting.suppliers.get(): error.downstreamErrors Added
  • apideck.accounting.suppliers.update(): error.downstreamErrors Added
  • apideck.accounting.suppliers.delete(): error.downstreamErrors Added
  • apideck.accounting.payments.list(): error.downstreamErrors Added
  • apideck.accounting.payments.create(): error.downstreamErrors Added
  • apideck.accounting.payments.get(): error.downstreamErrors Added
  • apideck.accounting.payments.update(): error.downstreamErrors Added
  • apideck.accounting.payments.delete(): error.downstreamErrors Added
  • apideck.accounting.companyInfo.get(): error.downstreamErrors Added
  • apideck.accounting.balanceSheet.get(): error.downstreamErrors Added
  • apideck.accounting.profitAndLoss.get(): error.downstreamErrors Added
  • apideck.accounting.journalEntries.list(): error.downstreamErrors Added
  • apideck.accounting.journalEntries.create(): error.downstreamErrors Added
  • apideck.accounting.journalEntries.get(): error.downstreamErrors Added
  • apideck.accounting.journalEntries.update(): error.downstreamErrors Added
  • apideck.accounting.journalEntries.delete(): error.downstreamErrors Added
  • apideck.accounting.purchaseOrders.list(): error.downstreamErrors Added
  • apideck.accounting.purchaseOrders.create(): error.downstreamErrors Added
  • apideck.accounting.purchaseOrders.get(): error.downstreamErrors Added
  • apideck.accounting.purchaseOrders.update(): error.downstreamErrors Added
  • apideck.accounting.purchaseOrders.delete(): error.downstreamErrors Added
  • apideck.accounting.subsidiaries.list(): error.downstreamErrors Added
  • apideck.accounting.subsidiaries.create(): error.downstreamErrors Added
  • apideck.accounting.subsidiaries.get(): error.downstreamErrors Added
  • apideck.accounting.subsidiaries.update(): error.downstreamErrors Added
  • apideck.accounting.subsidiaries.delete(): error.downstreamErrors Added
  • apideck.accounting.locations.list(): error.downstreamErrors Added
  • apideck.accounting.locations.create(): error.downstreamErrors Added
  • apideck.accounting.locations.get(): error.downstreamErrors Added
  • apideck.accounting.locations.update(): error.downstreamErrors Added
  • apideck.accounting.locations.delete(): error.downstreamErrors Added
  • apideck.accounting.departments.list(): error.downstreamErrors Added
  • apideck.accounting.departments.create(): error.downstreamErrors Added
  • apideck.accounting.departments.get(): error.downstreamErrors Added
  • apideck.accounting.departments.update(): error.downstreamErrors Added
  • apideck.accounting.departments.delete(): error.downstreamErrors Added
  • apideck.accounting.attachments.list(): error.downstreamErrors Added
  • apideck.accounting.attachments.upload(): error.downstreamErrors Added
  • apideck.accounting.attachments.get(): error.downstreamErrors Added
  • apideck.accounting.attachments.delete(): error.downstreamErrors Added
  • apideck.accounting.attachments.download(): error.downstreamErrors Added
  • apideck.accounting.bankAccounts.list(): error.downstreamErrors Added
  • apideck.accounting.bankAccounts.create(): error.downstreamErrors Added
  • apideck.accounting.bankAccounts.get(): error.downstreamErrors Added
  • apideck.accounting.bankAccounts.update(): error.downstreamErrors Added
  • apideck.accounting.bankAccounts.delete(): error.downstreamErrors Added
  • apideck.accounting.trackingCategories.list(): error.downstreamErrors Added
  • apideck.accounting.trackingCategories.create(): error.downstreamErrors Added
  • apideck.accounting.trackingCategories.get(): error.downstreamErrors Added
  • apideck.accounting.trackingCategories.update(): error.downstreamErrors Added
  • apideck.accounting.trackingCategories.delete(): error.downstreamErrors Added
  • apideck.accounting.billPayments.list(): error.downstreamErrors Added
  • apideck.accounting.billPayments.create(): error.downstreamErrors Added
  • apideck.accounting.billPayments.get(): error.downstreamErrors Added
  • apideck.accounting.billPayments.update(): error.downstreamErrors Added
  • apideck.accounting.billPayments.delete(): error.downstreamErrors Added
  • apideck.accounting.expenses.list(): error.downstreamErrors Added
  • apideck.accounting.expenses.create(): error.downstreamErrors Added
  • apideck.accounting.expenses.get(): error.downstreamErrors Added
  • apideck.accounting.expenses.update(): error.downstreamErrors Added
  • apideck.accounting.expenses.delete(): error.downstreamErrors Added
  • apideck.accounting.agedCreditors.get(): error.downstreamErrors Added
  • apideck.accounting.agedDebtors.get(): error.downstreamErrors Added
  • apideck.accounting.bankFeedAccounts.list(): error.downstreamErrors Added
  • apideck.accounting.bankFeedAccounts.create(): error.downstreamErrors Added
  • apideck.accounting.bankFeedAccounts.get(): error.downstreamErrors Added
  • apideck.accounting.bankFeedAccounts.update(): error.downstreamErrors Added
  • apideck.accounting.bankFeedAccounts.delete(): error.downstreamErrors Added
  • apideck.accounting.bankFeedStatements.list(): error.downstreamErrors Added
  • apideck.accounting.bankFeedStatements.create(): error.downstreamErrors Added
  • apideck.accounting.bankFeedStatements.get(): error.downstreamErrors Added
  • apideck.accounting.bankFeedStatements.update(): error.downstreamErrors Added
  • apideck.accounting.bankFeedStatements.delete(): error.downstreamErrors Added
  • apideck.accounting.categories.list(): error.downstreamErrors Added
  • apideck.accounting.categories.get(): error.downstreamErrors Added
  • apideck.accounting.quotes.list(): error.downstreamErrors Added
  • apideck.accounting.quotes.create(): error.downstreamErrors Added
  • apideck.accounting.quotes.get(): error.downstreamErrors Added
  • apideck.accounting.quotes.update(): error.downstreamErrors Added
  • apideck.accounting.quotes.delete(): error.downstreamErrors Added
  • apideck.accounting.projects.list():
    • request.filter Changed
    • response.data[].completionDate Added
    • error.downstreamErrors Added
  • apideck.accounting.projects.create():
    • request.project.completionDate Added
    • error.downstreamErrors Added
  • apideck.accounting.projects.get():
    • response.data.completionDate Added
    • error.downstreamErrors Added
  • apideck.accounting.projects.update():
    • `request.project.comp...
Read more

java - v0.30.1 - 2026-01-21 20:19:05

21 Jan 20:19
3ab04d4

Choose a tag to compare

Generated by Speakeasy CLI

2026-01-21 20:19:05

Changes

Based on:

New feature

  • [Forward compatibility] enums used in responses accept unknown values instead of rejecting the response. Unknown values are now captured in a type-safe.

Generated

  • [java v0.30.1] .

Releases

Publishing Completed

java - v0.30.0 - 2026-01-21 19:35:02

21 Jan 19:35
c4e5ca1

Choose a tag to compare

Generated by Speakeasy CLI

2026-01-21 19:35:02

Changes

Based on:

New feature

  • [Forward compatibility] Add open enum support, This prevents runtime errors when new enum values are encountered, allowing APIs to add new states without breaking existing clients.

Generated

  • [java v0.30.0] .

Releases

Publishing Completed