@@ -33,6 +33,7 @@ For more information about the API: [Apideck Developer Docs](https://developers.
3333 * [ Authentication] ( #authentication )
3434 * [ Custom HTTP Client] ( #custom-http-client )
3535 * [ Debugging] ( #debugging )
36+ * [ Jackson Configuration] ( #jackson-configuration )
3637* [ Development] ( #development )
3738 * [ Maturity] ( #maturity )
3839 * [ Contributions] ( #contributions )
@@ -50,15 +51,15 @@ The samples below show how a published SDK artifact is used:
5051
5152Gradle:
5253``` groovy
53- implementation 'com.apideck:unify:0.30.4 '
54+ implementation 'com.apideck:unify:0.31.0 '
5455```
5556
5657Maven:
5758``` xml
5859<dependency >
5960 <groupId >com.apideck</groupId >
6061 <artifactId >unify</artifactId >
61- <version >0.30.4 </version >
62+ <version >0.31.0 </version >
6263</dependency >
6364```
6465
@@ -105,6 +106,7 @@ public class Application {
105106
106107 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
107108 .serviceId(" salesforce" )
109+ .companyId(" 12345" )
108110 .filter(TaxRatesFilter . builder()
109111 .assets(true )
110112 .equity(true )
@@ -153,6 +155,7 @@ public class Application {
153155
154156 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
155157 .serviceId(" salesforce" )
158+ .companyId(" 12345" )
156159 .filter(TaxRatesFilter . builder()
157160 .assets(true )
158161 .equity(true )
@@ -181,6 +184,15 @@ public class Application {
181184```
182185
183186[ comp-fut ] : https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html
187+
188+ #### Union Consumption Patterns
189+
190+ When a response field is a union model:
191+
192+ - Discriminated unions: branch on the discriminator (` switch ` ) and then narrow to the concrete type.
193+ - Non-discriminated unions: use generated accessors (for example ` string() ` , ` asLong() ` , ` simpleObject() ` ) to determine the active variant.
194+
195+ For full model-specific examples (including Java 11/16/21 variants), see each union model's ** Supported Types** section in the generated model docs.
184196<!-- End SDK Example Usage [usage] -->
185197
186198<!-- Start Available Resources and Operations [operations] -->
@@ -254,6 +266,10 @@ public class Application {
254266* [ list] ( docs/sdks/categories/README.md#list ) - List Categories
255267* [ get] ( docs/sdks/categories/README.md#get ) - Get Category
256268
269+ ### [ Accounting.Companies] ( docs/sdks/companies/README.md )
270+
271+ * [ list] ( docs/sdks/companies/README.md#list ) - List companies
272+
257273### [ Accounting.CompanyInfo] ( docs/sdks/companyinfo/README.md )
258274
259275* [ get] ( docs/sdks/companyinfo/README.md#get ) - Get company info
@@ -390,6 +406,14 @@ public class Application {
390406* [ update] ( docs/sdks/quotes/README.md#update ) - Update Quote
391407* [ delete] ( docs/sdks/quotes/README.md#delete ) - Delete Quote
392408
409+ ### [ Accounting.Refunds] ( docs/sdks/refunds/README.md )
410+
411+ * [ list] ( docs/sdks/refunds/README.md#list ) - List Refunds
412+ * [ create] ( docs/sdks/refunds/README.md#create ) - Create Refund
413+ * [ get] ( docs/sdks/refunds/README.md#get ) - Get Refund
414+ * [ update] ( docs/sdks/refunds/README.md#update ) - Update Refund
415+ * [ delete] ( docs/sdks/refunds/README.md#delete ) - Delete Refund
416+
393417### [ Accounting.Subsidiaries] ( docs/sdks/subsidiaries/README.md )
394418
395419* [ list] ( docs/sdks/subsidiaries/README.md#list ) - List Subsidiaries
@@ -441,7 +465,10 @@ public class Application {
441465### [ Ats.Jobs] ( docs/sdks/jobs/README.md )
442466
443467* [ list] ( docs/sdks/jobs/README.md#list ) - List Jobs
468+ * [ create] ( docs/sdks/jobs/README.md#create ) - Create Job
444469* [ get] ( docs/sdks/jobs/README.md#get ) - Get Job
470+ * [ update] ( docs/sdks/jobs/README.md#update ) - Update Job
471+ * [ delete] ( docs/sdks/jobs/README.md#delete ) - Delete Job
445472
446473### [ Connector.ApiResourceCoverage] ( docs/sdks/apiresourcecoverage/README.md )
447474
@@ -477,13 +504,13 @@ public class Application {
477504* [ update] ( docs/sdks/activities/README.md#update ) - Update activity
478505* [ delete] ( docs/sdks/activities/README.md#delete ) - Delete activity
479506
480- ### [ Crm.Companies] ( docs/sdks/companies /README.md )
507+ ### [ Crm.Companies] ( docs/sdks/apideckcompanies /README.md )
481508
482- * [ list] ( docs/sdks/companies /README.md#list ) - List companies
483- * [ create] ( docs/sdks/companies /README.md#create ) - Create company
484- * [ get] ( docs/sdks/companies /README.md#get ) - Get company
485- * [ update] ( docs/sdks/companies /README.md#update ) - Update company
486- * [ delete] ( docs/sdks/companies /README.md#delete ) - Delete company
509+ * [ list] ( docs/sdks/apideckcompanies /README.md#list ) - List companies
510+ * [ create] ( docs/sdks/apideckcompanies /README.md#create ) - Create company
511+ * [ get] ( docs/sdks/apideckcompanies /README.md#get ) - Get company
512+ * [ update] ( docs/sdks/apideckcompanies /README.md#update ) - Update company
513+ * [ delete] ( docs/sdks/apideckcompanies /README.md#delete ) - Delete company
487514
488515### [ Crm.Contacts] ( docs/sdks/contacts/README.md )
489516
@@ -618,13 +645,13 @@ public class Application {
618645* [ delete] ( docs/sdks/uploadsessions/README.md#delete ) - Abort Upload Session
619646* [ finish] ( docs/sdks/uploadsessions/README.md#finish ) - Finish Upload Session
620647
621- ### [ Hris.Companies] ( docs/sdks/apideckcompanies /README.md )
648+ ### [ Hris.Companies] ( docs/sdks/apideckhriscompanies /README.md )
622649
623- * [ list] ( docs/sdks/apideckcompanies /README.md#list ) - List Companies
624- * [ create] ( docs/sdks/apideckcompanies /README.md#create ) - Create Company
625- * [ get] ( docs/sdks/apideckcompanies /README.md#get ) - Get Company
626- * [ update] ( docs/sdks/apideckcompanies /README.md#update ) - Update Company
627- * [ delete] ( docs/sdks/apideckcompanies /README.md#delete ) - Delete Company
650+ * [ list] ( docs/sdks/apideckhriscompanies /README.md#list ) - List Companies
651+ * [ create] ( docs/sdks/apideckhriscompanies /README.md#create ) - Create Company
652+ * [ get] ( docs/sdks/apideckhriscompanies /README.md#get ) - Get Company
653+ * [ update] ( docs/sdks/apideckhriscompanies /README.md#update ) - Update Company
654+ * [ delete] ( docs/sdks/apideckhriscompanies /README.md#delete ) - Delete Company
628655
629656### [ Hris.Departments] ( docs/sdks/apideckdepartments/README.md )
630657
@@ -816,6 +843,7 @@ public class Application {
816843
817844 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
818845 .serviceId(" salesforce" )
846+ .companyId(" 12345" )
819847 .filter(TaxRatesFilter . builder()
820848 .assets(true )
821849 .equity(true )
@@ -876,6 +904,7 @@ public class Application {
876904
877905 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
878906 .serviceId(" salesforce" )
907+ .companyId(" 12345" )
879908 .filter(TaxRatesFilter . builder()
880909 .assets(true )
881910 .equity(true )
@@ -938,6 +967,7 @@ public class Application {
938967
939968 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
940969 .serviceId(" salesforce" )
970+ .companyId(" 12345" )
941971 .filter(TaxRatesFilter . builder()
942972 .assets(true )
943973 .equity(true )
@@ -1008,6 +1038,7 @@ public class Application {
10081038
10091039 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
10101040 .serviceId(" salesforce" )
1041+ .companyId(" 12345" )
10111042 .filter(TaxRatesFilter . builder()
10121043 .assets(true )
10131044 .equity(true )
@@ -1078,6 +1109,7 @@ public class Application {
10781109
10791110 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
10801111 .serviceId(" salesforce" )
1112+ .companyId(" 12345" )
10811113 .filter(TaxRatesFilter . builder()
10821114 .assets(true )
10831115 .equity(true )
@@ -1153,7 +1185,7 @@ public class Application {
11531185many more subclasses in the JDK platform).
11541186
11551187** Inherit from [ ` ApideckError ` ] ( ./src/main/java/models/errors/ApideckError.java ) ** :
1156- * [ ` com.apideck.unify.models.errors.Unauthorized ` ] ( ./src/main/java/models/errors/com.apideck.unify.models.errors.Unauthorized.java ) : Unauthorized. Status code ` 401 ` . Applicable to 6 of 325 methods.*
1188+ * [ ` com.apideck.unify.models.errors.Unauthorized ` ] ( ./src/main/java/models/errors/com.apideck.unify.models.errors.Unauthorized.java ) : Unauthorized. Status code ` 401 ` . Applicable to 6 of 334 methods.*
11571189
11581190
11591191</details >
@@ -1191,6 +1223,7 @@ public class Application {
11911223
11921224 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
11931225 .serviceId(" salesforce" )
1226+ .companyId(" 12345" )
11941227 .filter(TaxRatesFilter . builder()
11951228 .assets(true )
11961229 .equity(true )
@@ -1357,6 +1390,7 @@ public class Application {
13571390
13581391 AccountingTaxRatesAllRequest req = AccountingTaxRatesAllRequest . builder()
13591392 .serviceId(" salesforce" )
1393+ .companyId(" 12345" )
13601394 .filter(TaxRatesFilter . builder()
13611395 .assets(true )
13621396 .equity(true )
@@ -1551,6 +1585,36 @@ __NOTE__: This is a convenience method that calls `HTTPClient.enableDebugLogging
15511585Another option is to set the System property ` -Djdk.httpclient.HttpClient.log=all ` . However, this second option does not log bodies.
15521586<!-- End Debugging [debug] -->
15531587
1588+ <!-- Start Jackson Configuration [jackson] -->
1589+ ## Jackson Configuration
1590+
1591+ The SDK ships with a pre-configured Jackson [ ` ObjectMapper ` ] [ jackson-databind ] accessible via
1592+ ` JSON.getMapper() ` . It is set up with type modules, strict deserializers, and the feature flags
1593+ needed for full SDK compatibility (including ISO-8601 ` OffsetDateTime ` serialization):
1594+
1595+ ``` java
1596+ import com.apideck.unify.utils.JSON ;
1597+
1598+ String json = JSON . getMapper(). writeValueAsString(response);
1599+ ```
1600+
1601+ To compose with your own ` ObjectMapper ` , register the provided ` UnifyJacksonModule ` , which
1602+ bundles all the same modules and feature flags as a single plug-and-play module:
1603+
1604+ ``` java
1605+ import com.apideck.unify.utils.UnifyJacksonModule ;
1606+ import com.fasterxml.jackson.databind.ObjectMapper ;
1607+
1608+ ObjectMapper myMapper = new ObjectMapper ()
1609+ .registerModule(new UnifyJacksonModule ());
1610+
1611+ String json = myMapper. writeValueAsString(response);
1612+ ```
1613+
1614+ [ jackson-databind ] : https://github.com/FasterXML/jackson-databind
1615+ [ jackson-jsr310 ] : https://github.com/FasterXML/jackson-modules-java8/tree/master/datetime
1616+ <!-- End Jackson Configuration [jackson] -->
1617+
15541618<!-- Placeholder for Future Speakeasy SDK Sections -->
15551619
15561620# Development
0 commit comments