Releases: apideck-libraries/sdk-java
java - v0.31.10 - 2026-04-24 13:02:32
Generated by Speakeasy CLI
Java SDK Changes:
apideck.accounting.bills.list():requestChangedapideck.accounting.invoices.list():requestChangedapideck.accounting.creditNotes.list():requestChanged
Generated with Speakeasy CLI 1.761.9
Publishing Completed
java - v0.31.9 - 2026-04-23 13:01:38
Generated by Speakeasy CLI
Java SDK Changes:
apideck.accounting.bills.list():response.data[].lineItems[].rebilling.rebillStatus.enum(other)Addedapideck.accounting.bills.create():request.bill.lineItems[].rebilling.rebillStatus.enum(other)Added
apideck.accounting.bills.get():response.data.lineItems[].rebilling.rebillStatus.enum(other)Addedapideck.accounting.bills.update():request.bill.lineItems[].rebilling.rebillStatus.enum(other)Added
apideck.accounting.payments.list():request.filterChanged
apideck.accounting.billPayments.list():request.filterChanged
apideck.accounting.expenses.list():response.data[].lineItems[].rebilling.rebillStatus.enum(other)Addedapideck.accounting.expenses.create():request.expense.lineItems[].rebilling.rebillStatus.enum(other)Added
apideck.accounting.expenses.get():response.data.lineItems[].rebilling.rebillStatus.enum(other)Addedapideck.accounting.expenses.update():request.expense.lineItems[].rebilling.rebillStatus.enum(other)Added
Generated with Speakeasy CLI 1.761.9
Publishing Completed
java - v0.31.8 - 2026-04-21 13:02:01
Generated by Speakeasy CLI
Java SDK Changes:
apideck.accounting.bills.list():response.data[].paymentAllocationsAddedapideck.accounting.bills.create():request.bill.paymentAllocationsAdded
apideck.accounting.bills.get():response.data.paymentAllocationsAddedapideck.accounting.bills.update():request.bill.paymentAllocationsAdded
apideck.accounting.payments.list():request.filterChanged
apideck.accounting.billPayments.list():request.filterChanged
Generated with Speakeasy CLI 1.761.9
Publishing Completed
java - v0.31.7 - 2026-04-13 17:27:32
Generated by Speakeasy CLI
2026-04-13 17:27:32
Changes
Based on:
- OpenAPI Doc 10.24.22
- Speakeasy CLI 1.761.3 (2.879.11) https://github.com/speakeasy-api/speakeasy
Generated
- [java v0.31.7] .
Releases
- [Maven Central v0.31.7] https://central.sonatype.com/artifact/com.apideck/unify/0.31.7 - .
Publishing Completed
java - v0.31.6 - 2026-04-09 12:12:04
Java SDK v0.31.6 Changelog
Release Date: April 2026
What's New
This release adds two quality-of-life improvements: you can now filter tax rates by status (active, inactive, or archived) when listing them through the Accounting API, and all Proxy API methods now accept a custom timeout value so you can control how long the SDK waits for a downstream response before giving up.
Summary of Changes
| Category | Description | Action Required |
|---|---|---|
| Accounting — Tax Rates | New status filter field on TaxRatesFilter |
None — optional new field |
| Proxy — All methods | New timeout field on all Proxy request types |
None — optional new field |
Detailed Changes by API
Accounting — Tax Rates
New status filter when listing tax rates
What changed: TaxRatesFilter now includes an optional status field of type TaxRatesFilterStatus. You can use it to narrow results to only active, inactive, or archived tax rates.
Impact: Fully backward compatible. Existing calls without status continue to work unchanged.
import com.apideck.unify.models.components.TaxRatesFilter;
import com.apideck.unify.models.components.TaxRatesFilterStatus;
import com.apideck.unify.models.operations.AccountingTaxRatesAllRequest;
AccountingTaxRatesAllRequest request = AccountingTaxRatesAllRequest.builder()
.filter(TaxRatesFilter.builder()
.status(TaxRatesFilterStatus.ACTIVE)
.build())
.build();TaxRatesFilterStatus is an open enum, so you can also pass custom string values if your downstream connector uses non-standard statuses:
TaxRatesFilterStatus custom = TaxRatesFilterStatus.of("pending");Available values:
| Constant | Value |
|---|---|
ACTIVE |
active |
INACTIVE |
inactive |
ARCHIVED |
archived |
Proxy — All Methods
New timeout field on Proxy requests
What changed: All six Proxy request types (ProxyGetProxyRequest, ProxyPostProxyRequest, ProxyPutProxyRequest, ProxyPatchProxyRequest, ProxyDeleteProxyRequest, ProxyOptionsProxyRequest) now accept an optional timeout field. This maps to the x-apideck-timeout header and controls how long (in milliseconds) the Apideck gateway waits for a response from the downstream service.
Impact: Fully backward compatible. When omitted, the gateway uses its default timeout.
import com.apideck.unify.models.operations.ProxyGetProxyRequest;
ProxyGetProxyRequest request = ProxyGetProxyRequest.builder()
.serviceId("salesforce")
.downstreamUrl("https://api.example.com/records")
.timeout(30000L) // 30 seconds
.build();This is especially useful when proxying to slow downstream APIs that would otherwise hit the default gateway timeout.
Migration Checklist
-
Update your Gradle or Maven dependency to
0.31.6Gradle:
implementation 'com.apideck:unify:0.31.6'Maven:
<dependency> <groupId>com.apideck</groupId> <artifactId>unify</artifactId> <version>0.31.6</version> </dependency>
-
Run
./gradlew build(ormvn package) to pull the new version -
Run your test suite — no breaking changes are expected
java - v0.31.5 - 2026-04-06 09:20:31
Generated by Speakeasy CLI
2026-04-06 09:20:31
Changes
Based on:
- OpenAPI Doc 10.24.14
- Speakeasy CLI 1.761.1 (2.879.6) https://github.com/speakeasy-api/speakeasy
Generated
- [java v0.31.5] .
Releases
- [Maven Central v0.31.5] https://central.sonatype.com/artifact/com.apideck/unify/0.31.5 - .
Publishing Completed
java - v0.31.4 - 2026-03-31 13:06:31
Generated by Speakeasy CLI
2026-03-31 13:06:31
Changes
Based on:
- OpenAPI Doc 10.24.12
- Speakeasy CLI 1.761.0 (2.879.1) https://github.com/speakeasy-api/speakeasy
Generated
- [java v0.31.4] .
Releases
- [Maven Central v0.31.4] https://central.sonatype.com/artifact/com.apideck/unify/0.31.4 - .
Publishing Completed
java - v0.31.3 - 2026-03-27 13:06:30
Generated by Speakeasy CLI
Java SDK Changes:
apideck.vault.consumers.create():response.data.connections[]Changedapideck.vault.consumers.get():response.data.connections[]Changedapideck.vault.consumers.update():response.data.connections[]Changedapideck.webhook.webhooks.list():response.data[].events[]Changedapideck.webhook.webhooks.create():request.createWebhookRequest.events[]Changedresponse.data.events[]Changed
apideck.webhook.webhooks.get():response.data.events[]Changedapideck.webhook.webhooks.update():request.updateWebhookRequest.events[]Changedresponse.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
Generated by Speakeasy CLI
2026-03-26 13:05:09
Changes
Based on:
- OpenAPI Doc 10.24.9
- Speakeasy CLI 1.759.3 (2.869.25) https://github.com/speakeasy-api/speakeasy
Generated
- [java v0.31.2] .
Releases
- [Maven Central v0.31.2] https://central.sonatype.com/artifact/com.apideck/unify/0.31.2 - .
Publishing Completed
java - v0.31.1 - 2026-03-23 09:32:47
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 handleOptional<JournalEntryLineItemType> - Search for
JournalEntryLineItemInput.type()calls and update to handleOptional<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 compileto verify compatibility - Run your test suite
- Optionally migrate from
JournalEntry.taxType()to per-line-itemtaxType - Optionally adopt
LinkedEmployeefor employee-linked journal entries - Optionally adopt
bankAccountonAccountingEmployee
New Features to Explore
After upgrading and addressing the breaking changes, you can optionally take advantage of:
- Employee-linked journal entries — Use
LinkedEmployeeto associate employees with specific journal entry line items - Per-line-item tax type — Classify each line item as
SALESorPURCHASEusing the newTaxTypeenum for more granular tax tracking - Employee bank accounts — Read and set bank account details on accounting employees
- Employee financial accounts — Use the new
EMPLOYEEaccount type inLinkedFinancialAccountAccountType