Releases: apideck-libraries/sdk-java
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
De...
java - v0.31.0 - 2026-03-11 15:11:51
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 compileto verify compatibility - Run your test suite
- Optionally adopt
companyIdfor multi-company use cases
New Features to Explore
After upgrading, you can optionally take advantage of:
- Retry-After support — The SDK now automatically respects server-provided retry delays for smarter rate-limit handling
- Multi-company support — Use
companyIdto scope Accounting requests to a specific company - Refunds management — Full CRUD for accounting refunds
- Companies listing — Discover companies associated with an accounting connection
- ATS job management — Create, update, and delete jobs (not just read)
- Terms tracking — Use
termsIdon bills, invoices, credit notes, and more - Jackson mapper access — Use
JSON.getMapper()for custom serialization with the SDK's configured ObjectMapper - 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
Generated by Speakeasy CLI
Java SDK Changes:
apideck.accounting.employees.list(): Addedapideck.accounting.employees.create(): Addedapideck.accounting.employees.get(): Addedapideck.accounting.employees.update(): Addedapideck.accounting.employees.delete(): Addedapideck.accounting.expenseCategories.list(): Addedapideck.accounting.expenseCategories.create(): Addedapideck.accounting.expenseCategories.get(): Addedapideck.accounting.expenseCategories.update(): Addedapideck.accounting.expenseCategories.delete(): Addedapideck.accounting.expenseReports.list(): Addedapideck.accounting.expenseReports.create(): Addedapideck.accounting.expenseReports.get(): Addedapideck.accounting.expenseReports.update(): Addedapideck.accounting.expenseReports.delete(): Added
Generated with Speakeasy CLI 1.730.1
Publishing Completed
java - v0.30.3 - 2026-02-16 10:15:29
Generated by Speakeasy CLI
Java SDK Changes:
apideck.proxy.get(): Addedapideck.proxy.options(): Addedapideck.proxy.post(): Addedapideck.proxy.put(): Addedapideck.proxy.patch(): Addedapideck.proxy.delete(): Addedapideck.accounting.invoiceItems.list():request.filterChanged
apideck.crm.companies.list():request.filterChanged
apideck.crm.contacts.list():request.filterChanged
apideck.crm.contacts.get():request.filterChanged
apideck.ecommerce.customers.list():request.filterChanged
apideck.hris.employees.list():response.data[].leavingReason.enum(retired)Addedapideck.hris.employees.create():request.employee.leavingReason.enum(retired)Added
apideck.hris.employees.get():response.data.leavingReason.enum(retired)Addedapideck.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
Generated by Speakeasy CLI
Java SDK Changes:
apideck.accounting.taxRates.list():error.downstreamErrorsAddedapideck.accounting.taxRates.create():error.downstreamErrorsAddedapideck.accounting.taxRates.get():error.downstreamErrorsAddedapideck.accounting.taxRates.update():error.downstreamErrorsAddedapideck.accounting.taxRates.delete():error.downstreamErrorsAddedapideck.accounting.bills.list():error.downstreamErrorsAddedapideck.accounting.bills.create():error.downstreamErrorsAddedapideck.accounting.bills.get():error.downstreamErrorsAddedapideck.accounting.bills.update():error.downstreamErrorsAddedapideck.accounting.bills.delete():error.downstreamErrorsAddedapideck.accounting.invoices.list():error.downstreamErrorsAddedapideck.accounting.invoices.create():error.downstreamErrorsAddedapideck.accounting.invoices.get():error.downstreamErrorsAddedapideck.accounting.invoices.update():error.downstreamErrorsAddedapideck.accounting.invoices.delete():error.downstreamErrorsAddedapideck.accounting.ledgerAccounts.list():error.downstreamErrorsAddedapideck.accounting.ledgerAccounts.create():error.downstreamErrorsAddedapideck.accounting.ledgerAccounts.get():error.downstreamErrorsAddedapideck.accounting.ledgerAccounts.update():error.downstreamErrorsAddedapideck.accounting.ledgerAccounts.delete():error.downstreamErrorsAddedapideck.accounting.invoiceItems.list():error.downstreamErrorsAddedapideck.accounting.invoiceItems.create():error.downstreamErrorsAddedapideck.accounting.invoiceItems.get():error.downstreamErrorsAddedapideck.accounting.invoiceItems.update():error.downstreamErrorsAddedapideck.accounting.invoiceItems.delete():error.downstreamErrorsAddedapideck.accounting.creditNotes.list():error.downstreamErrorsAddedapideck.accounting.creditNotes.create():error.downstreamErrorsAddedapideck.accounting.creditNotes.get():error.downstreamErrorsAddedapideck.accounting.creditNotes.update():error.downstreamErrorsAddedapideck.accounting.creditNotes.delete():error.downstreamErrorsAddedapideck.accounting.customers.list():error.downstreamErrorsAddedapideck.accounting.customers.create():error.downstreamErrorsAddedapideck.accounting.customers.get():error.downstreamErrorsAddedapideck.accounting.customers.update():error.downstreamErrorsAddedapideck.accounting.customers.delete():error.downstreamErrorsAddedapideck.accounting.suppliers.list():error.downstreamErrorsAddedapideck.accounting.suppliers.create():error.downstreamErrorsAddedapideck.accounting.suppliers.get():error.downstreamErrorsAddedapideck.accounting.suppliers.update():error.downstreamErrorsAddedapideck.accounting.suppliers.delete():error.downstreamErrorsAddedapideck.accounting.payments.list():error.downstreamErrorsAddedapideck.accounting.payments.create():error.downstreamErrorsAddedapideck.accounting.payments.get():error.downstreamErrorsAddedapideck.accounting.payments.update():error.downstreamErrorsAddedapideck.accounting.payments.delete():error.downstreamErrorsAddedapideck.accounting.companyInfo.get():error.downstreamErrorsAddedapideck.accounting.balanceSheet.get():error.downstreamErrorsAddedapideck.accounting.profitAndLoss.get():error.downstreamErrorsAddedapideck.accounting.journalEntries.list():error.downstreamErrorsAddedapideck.accounting.journalEntries.create():error.downstreamErrorsAddedapideck.accounting.journalEntries.get():error.downstreamErrorsAddedapideck.accounting.journalEntries.update():error.downstreamErrorsAddedapideck.accounting.journalEntries.delete():error.downstreamErrorsAddedapideck.accounting.purchaseOrders.list():error.downstreamErrorsAddedapideck.accounting.purchaseOrders.create():error.downstreamErrorsAddedapideck.accounting.purchaseOrders.get():error.downstreamErrorsAddedapideck.accounting.purchaseOrders.update():error.downstreamErrorsAddedapideck.accounting.purchaseOrders.delete():error.downstreamErrorsAddedapideck.accounting.subsidiaries.list():error.downstreamErrorsAddedapideck.accounting.subsidiaries.create():error.downstreamErrorsAddedapideck.accounting.subsidiaries.get():error.downstreamErrorsAddedapideck.accounting.subsidiaries.update():error.downstreamErrorsAddedapideck.accounting.subsidiaries.delete():error.downstreamErrorsAddedapideck.accounting.locations.list():error.downstreamErrorsAddedapideck.accounting.locations.create():error.downstreamErrorsAddedapideck.accounting.locations.get():error.downstreamErrorsAddedapideck.accounting.locations.update():error.downstreamErrorsAddedapideck.accounting.locations.delete():error.downstreamErrorsAddedapideck.accounting.departments.list():error.downstreamErrorsAddedapideck.accounting.departments.create():error.downstreamErrorsAddedapideck.accounting.departments.get():error.downstreamErrorsAddedapideck.accounting.departments.update():error.downstreamErrorsAddedapideck.accounting.departments.delete():error.downstreamErrorsAddedapideck.accounting.attachments.list():error.downstreamErrorsAddedapideck.accounting.attachments.upload():error.downstreamErrorsAddedapideck.accounting.attachments.get():error.downstreamErrorsAddedapideck.accounting.attachments.delete():error.downstreamErrorsAddedapideck.accounting.attachments.download():error.downstreamErrorsAddedapideck.accounting.bankAccounts.list():error.downstreamErrorsAddedapideck.accounting.bankAccounts.create():error.downstreamErrorsAddedapideck.accounting.bankAccounts.get():error.downstreamErrorsAddedapideck.accounting.bankAccounts.update():error.downstreamErrorsAddedapideck.accounting.bankAccounts.delete():error.downstreamErrorsAddedapideck.accounting.trackingCategories.list():error.downstreamErrorsAddedapideck.accounting.trackingCategories.create():error.downstreamErrorsAddedapideck.accounting.trackingCategories.get():error.downstreamErrorsAddedapideck.accounting.trackingCategories.update():error.downstreamErrorsAddedapideck.accounting.trackingCategories.delete():error.downstreamErrorsAddedapideck.accounting.billPayments.list():error.downstreamErrorsAddedapideck.accounting.billPayments.create():error.downstreamErrorsAddedapideck.accounting.billPayments.get():error.downstreamErrorsAddedapideck.accounting.billPayments.update():error.downstreamErrorsAddedapideck.accounting.billPayments.delete():error.downstreamErrorsAddedapideck.accounting.expenses.list():error.downstreamErrorsAddedapideck.accounting.expenses.create():error.downstreamErrorsAddedapideck.accounting.expenses.get():error.downstreamErrorsAddedapideck.accounting.expenses.update():error.downstreamErrorsAddedapideck.accounting.expenses.delete():error.downstreamErrorsAddedapideck.accounting.agedCreditors.get():error.downstreamErrorsAddedapideck.accounting.agedDebtors.get():error.downstreamErrorsAddedapideck.accounting.bankFeedAccounts.list():error.downstreamErrorsAddedapideck.accounting.bankFeedAccounts.create():error.downstreamErrorsAddedapideck.accounting.bankFeedAccounts.get():error.downstreamErrorsAddedapideck.accounting.bankFeedAccounts.update():error.downstreamErrorsAddedapideck.accounting.bankFeedAccounts.delete():error.downstreamErrorsAddedapideck.accounting.bankFeedStatements.list():error.downstreamErrorsAddedapideck.accounting.bankFeedStatements.create():error.downstreamErrorsAddedapideck.accounting.bankFeedStatements.get():error.downstreamErrorsAddedapideck.accounting.bankFeedStatements.update():error.downstreamErrorsAddedapideck.accounting.bankFeedStatements.delete():error.downstreamErrorsAddedapideck.accounting.categories.list():error.downstreamErrorsAddedapideck.accounting.categories.get():error.downstreamErrorsAddedapideck.accounting.quotes.list():error.downstreamErrorsAddedapideck.accounting.quotes.create():error.downstreamErrorsAddedapideck.accounting.quotes.get():error.downstreamErrorsAddedapideck.accounting.quotes.update():error.downstreamErrorsAddedapideck.accounting.quotes.delete():error.downstreamErrorsAddedapideck.accounting.projects.list():request.filterChangedresponse.data[].completionDateAddederror.downstreamErrorsAdded
apideck.accounting.projects.create():request.project.completionDateAddederror.downstreamErrorsAdded
apideck.accounting.projects.get():response.data.completionDateAddederror.downstreamErrorsAdded
apideck.accounting.projects.update():- `request.project.comp...
java - v0.30.1 - 2026-01-21 20:19:05
Generated by Speakeasy CLI
2026-01-21 20:19:05
Changes
Based on:
- OpenAPI Doc 10.23.10
- Speakeasy CLI 1.692.0 (2.797.1) https://github.com/speakeasy-api/speakeasy
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
- [Maven Central v0.30.1] https://central.sonatype.com/artifact/com.apideck/unify/0.30.1 - .
Publishing Completed
java - v0.30.0 - 2026-01-21 19:35:02
Generated by Speakeasy CLI
2026-01-21 19:35:02
Changes
Based on:
- OpenAPI Doc 10.23.10
- Speakeasy CLI 1.692.0 (2.797.1) https://github.com/speakeasy-api/speakeasy
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
- [Maven Central v0.30.0] https://central.sonatype.com/artifact/com.apideck/unify/0.30.0 - .
Publishing Completed