Skip to content

Commit cbe72e1

Browse files
author
Andy Nguyen
committed
OpenAPI generated code at 2026-07-22T23:24:13Z
1 parent b3147de commit cbe72e1

2,089 files changed

Lines changed: 9263 additions & 4603 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,120 @@
11
See full changelog for the OpenAPI schema (OAS) [here](https://github.com/plaid/plaid-openapi/blob/master/CHANGELOG.md).
22

3+
# 42.0.0
4+
- Updating to OAS 2020-09-14_1.706.1
5+
6+
## Breaking changes in this version
7+
- [BREAKING] For `/cra/check_report/create`, replace `CraCheckReportCashflowInsightsGetOptions`, `CraCheckReportIncomeInsightsGetOptions`, `CraCheckReportLendScoreGetOptions`, `CraCheckReportNetworkInsightsGetOptions`, and `CraCheckReportVerificationGetEmploymentRefreshOptions` with the corresponding `CraCheckReportCreate*Options` types. The old types remain available for the deprecated `/get` options, and request JSON is unchanged. (OAS 2020-09-14_1.700.0)
8+
- [BREAKING] Use `ProductsTerminateReasonCode` for `ItemProductsTerminateRequest.reasonCode` and `UserProductsTerminateRequest.reasonCode`; the endpoint-specific wrapper classes were removed. Accepted wire values are unchanged. (OAS 2020-09-14_1.701.1)
9+
- [BREAKING] `FDXInitiatorFiAttribute.value`, its getter, and its setter now use `String` instead of `FDXPartyType`. For example, replace `.value(FDXPartyType.DATA_PROVIDER)` with `.value(FDXPartyType.DATA_PROVIDER.getValue())`. This schema is not referenced by an endpoint. (OAS 2020-09-14_1.703.0)
10+
- [BREAKING] `StudentRepaymentPlan.INTEREST_ONLY` now serializes as `"interest only"` instead of `"interest-only"`, matching the value returned by the API. The Java enum constant is unchanged. (OAS 2020-09-14_1.699.1)
11+
12+
## OpenAPI Schema Changes
13+
### 2020-09-14_1.706.1
14+
- Make product `metadata` and `attributes` nullable when unavailable in `/cra/report/get` responses.
15+
16+
### 2020-09-14_1.706.0
17+
- Add the `/transfer/return/recover` endpoint, which lets clients report that they have recovered some or all of the loss on a returned guaranteed transfer.
18+
- Add the `guarantee_reimbursed`, `client_return_recovered`, and `plaid_return_recovered` transfer event types, and add a nullable signed `event_amount` field to the transfer event object.
19+
20+
### 2020-09-14_1.705.4
21+
- Mark superseded products, endpoints, and fields as `deprecated`: the Beacon product (`/beacon/*` endpoints and webhooks, plus the `beacon_user_id` field on Identity Verification responses); Bank Transfer (except the `/bank_transfer/event/*` endpoints, still used for Auth micro-deposits); `/employers/search`; the legacy Cash Flow Updates webhooks superseded by `CASH_FLOW_INSIGHTS_UPDATED`; and the `PaymentInitiationConsentScope`, `TransferCreditFundsSource`, and `RiskReason` schemas.
22+
- Quote `type: string` certain enum values (Prism version number strings, Freddie Mac "yes/no" API string responses) that YAML parsers were coercing to numbers or booleans.
23+
- Expose `/cra/report/get` and its request/response schemas in generated client libraries. The endpoint remains hidden from public documentation.
24+
25+
### 2020-09-14_1.705.3
26+
- Document the `ip_address` field on the `/identity_verification/create` `user` object: accepted only here (not via `/link/token/create`) and captured automatically by the Link SDK, for backend-only integrations that need IP-based risk checks.
27+
28+
### 2020-09-14_1.705.2
29+
- Clarified the `/oauth/token` response `token_type` description (it is `Bearer` for OAuth access tokens); dropped the inaccurate "always Bearer" wording.
30+
31+
### 2020-09-14_1.705.1
32+
- internal changes only
33+
34+
### 2020-09-14_1.705.0
35+
- Type the `product` field of the `CraReportUpdatedWebhook` (`CRA_REPORT`/`CRA_REPORT_UPDATED`) `successful_products`/`failed_products` entries against the `Products` enum instead of a free-form string, matching the sibling `/cra/report/get` product schemas.
36+
37+
### 2020-09-14_1.704.2
38+
- internal changes only
39+
40+
### 2020-09-14_1.704.1
41+
- internal changes only
42+
43+
### 2020-09-14_1.704.0
44+
- internal changes only
45+
46+
### 2020-09-14_1.703.0
47+
- Add the `environment` field to the `LinkEventsWebhook` (`LINK`/`EVENTS`) schema, matching actual behavior.
48+
- Change `FDXInitiatorFiAttribute.value` from the `FDXPartyType` enum to a string, matching the sibling `FDXFiAttribute` (this schema is not referenced by any endpoint).
49+
- Fixed a `TransactionsRuleDetails.query` description that referenced a nonexistent `NAME` field (the enum value is `MERCHANT_NAME`), and a `/cra/encompass/get_reports` example whose `report_status` was not a valid value and whose `generated_at` key should be `created_at`.
50+
- Fixed additional example/consistency issues: `/transactions/get` and `/processor/transactions/get` examples now report the correct `total_transactions`; the Identity Verification `Strategy` note references the `watchlist_screening` step; the `US_SDN` watchlist code label is consistent; `SelfieCapture` examples reflect that only one of `image_url`/`video_url` is populated; the `/institutions/get_by_id` example nests `liabilities` correctly; the `/oauth/token` scope description calls `urn:plaid:params:oauth:user-token` a subject token type; and a `/cra/encompass/load/existing` example was corrected to match its schema.
51+
52+
### 2020-09-14_1.702.4
53+
- Add `hide_gse_details` to `/cra/check_report/verification/pdf/get`. When `true`, the GSE identifiers (the Report ID and `gse_reference_id`) are omitted from the returned Home Lending Report PDF. Defaults to `false`. These identifiers are always present in the `/cra/check_report/verification/get` JSON response regardless of this field.
54+
55+
### 2020-09-14_1.702.3
56+
- Add the `error`, `repairable_items`, and `failed_products` fields to the `CHECK_REPORT_FAILED` and `USER_CHECK_REPORT_FAILED` webhooks.
57+
58+
### 2020-09-14_1.702.2
59+
- Add `tax_lots` to the `/investments/holdings/get` sample response, showing both a holding with per-lot detail and a holding with an empty `tax_lots` array.
60+
61+
### 2020-09-14_1.702.1
62+
- Update descriptions for the CRA `/get` endpoints.
63+
64+
### 2020-09-14_1.702.0
65+
- Add `timestamp` to `/protect/compute` responses to indicate when the Trust Index score and fraud attributes were computed.
66+
67+
### 2020-09-14_1.701.4
68+
- Add `ip_address` (optional, nullable) to the `user` object (`IdentityVerificationCreateRequestUser`) on `/identity_verification/create`. Lets backend-only integrations supply the end user's IP address for IP-based risk checks without launching the Link SDK.
69+
70+
### 2020-09-14_1.701.3
71+
- Add `exclusion_code` to the `CraPartnerInsightsUltraFicoScoreResult` object, exposing the FICO exclusion code that explains why an UltraFICO® score could not be computed due to consumer-data conditions (e.g. insufficient account history).
72+
73+
### 2020-09-14_1.701.2
74+
- Add private-visibility `error`, `repairable_items`, and `failed_products` to the `CHECK_REPORT_FAILED` and `USER_CHECK_REPORT_FAILED` webhooks.
75+
76+
### 2020-09-14_1.701.1
77+
- Add the nullable `receiver_details` field to the `BankTransferEvent` schema returned by `/bank_transfer/event/list` and `/bank_transfer/event/sync`, matching what the API already emits. Currently always `null`.
78+
- [Breaking] Change the generated `reason_code` type for `/item/products/terminate` and `/user/products/terminate` from the unusable `ItemProductsTerminateReasonCode` and `UserProductsTerminateReasonCode` wrapper types to `ProductsTerminateReasonCode`. The accepted JSON values are unchanged.
79+
- Make `home_lending_report_options` visible in the docs for `/cra/check_report/create` and `/link/token/create`.
80+
81+
### 2020-09-14_1.701.0
82+
- Add `figi` to the `Security` schema: the 12-character OpenFIGI identifier, which stays stable across most corporate actions (ticker/CUSIP/name changes) and is the preferred identifier for tracking a security across its lifecycle. Null until Plaid has enriched the security with FIGI data.
83+
84+
### 2020-09-14_1.700.1
85+
- Add the `/sandbox/fdx/consent/seed` endpoint for seeding a test FDX consent grant on Sandbox data partner accounts. Takes `customer_id` and `application_id` (and an optional `consent_id`) and returns the seeded `consent_id`.
86+
87+
### 2020-09-14_1.700.0
88+
- [Breaking] Rename the `/cra/check_report/create` request options schemas for `cashflow_insights`, `lend_score`, `network_insights`, `income_insights`, and the Home Lending Report's `employment_refresh_options` to `CraCheckReportCreate*Options`. The JSON request is unchanged.
89+
- Deprecate the request-time generation config on the CRA `/get` endpoints (`options`, `partner_insights`, `employment_refresh_options`); no longer accepted for new clients (created on or after 2026-07-01).
90+
91+
### 2020-09-14_1.699.6
92+
- Add `cash advance`, `late fee`, `membership fee`, `returned item fee` to the `transaction_code` enum.
93+
94+
### 2020-09-14_1.699.5
95+
- Add `num_i20s_uploaded` to the `document_income_results` object in the `/credit/sessions/get` and `/link/token/get` responses
96+
97+
### 2020-09-14_1.699.4
98+
- Add private-visibility scaffolding for the `CRA_REPORT_UPDATED` webhook (`CRA_REPORT` type), fired when a subscribed CRA report is updated; lists the `successful_products` and `failed_products` for the update. Hidden from the public spec/docs until launch (customer-facing entry follows when `x-private-visibility` flips).
99+
100+
### 2020-09-14_1.699.3
101+
- Add `kick` to the `processor` enum on `/processor/token/create`, for creating processor tokens for the Kick integration.
102+
103+
### 2020-09-14_1.699.2
104+
- Adds `DOCUMENT_TYPE_US_STUDENT_I20` enum value (Form I-20 student document) for document metadata
105+
- Add `/fdx/consents`, `/fdx/consents/{consentId}`, and `/fdx/consents/{consentId}/revocation` for managing FDX consent grants. These endpoints remain hidden from public documentation.
106+
107+
### 2020-09-14_1.699.1
108+
- Additions and corrections of enum values returned by API but not mentioned in OpenAPI spec. No actual changes to API behavior.
109+
- `PlaidErrorType`: add 13 error types (`ASSETS_ERROR`, `ENRICH_ERROR`, `STATEMENTS_ERROR`, `RECURRING_TRANSACTIONS_ERROR`, `CRA_MONITORING_ERROR`, `CREDIT_PROFILE_REPORT_ERROR`, `ENCOMPASS_ERROR`, `FRAUD_INSIGHTS_ERROR`, `FREDDIE_MAC_ERROR`, `LINK_DELIVERY_ERROR`, `PROFILE_ERROR`, `TRANSFER_RECURRING_ERROR`, `TRANSFER_REFUND_ERROR`
110+
- Asset Report `warning_code`: add the 5 `BANK_INCOME_INSIGHTS_*` codes
111+
- watchlist `source`: add `retro` enum value
112+
- `TransferNetwork`: add `rfp` enum value (request for payment; closed beta, debit-only)
113+
- `StudentRepaymentPlan.type`: `interest-only``interest only` (match the emitted value)
114+
115+
### 2020-09-14_1.699.0
116+
- Add support for the Form I-20 US immigration student document on `/credit/payroll_income/get`. This form now returns an `i20` array which extraction data on uploaded I-20 documents.
117+
3118
# 41.0.0
4119
- Updating to OAS 2020-09-14_1.698.7
5120

README.md

Lines changed: 40 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ Plaid-java is available at [Maven Central](https://central.sonatype.com/artifact
2626
<dependency>
2727
<groupId>com.plaid</groupId>
2828
<artifactId>plaid-java</artifactId>
29-
<!--Replace this version number with the latest verison, which can be found at https://github.com/plaid/plaid-java/tags-->
30-
<version>9.0.0</version>
29+
<!--Replace this version number with the latest version, which can be found at https://github.com/plaid/plaid-java/tags-->
30+
<version>41.0.0</version>
3131
</dependency>
3232
```
3333

@@ -40,7 +40,7 @@ Each major version of `plaid-java` targets a specific version of the Plaid API:
4040
| API version | plaid-java release |
4141
| ----------------------- | ------------------ |
4242
| 2020-09-14 (**latest**) | 8.x.x and higher |
43-
| 2019-05-29` | 7.x.x |
43+
| 2019-05-29 | 7.x.x |
4444
| 2018-05-22 | 4.x.x (and 3.x.x) |
4545
| 2017-03-08 | 2.x.x |
4646

@@ -50,7 +50,7 @@ All users are strongly recommended to use a recent version of the library, as ol
5050

5151
### Basic Usage Examples
5252

53-
For more examples of basic usage, see the [test suites](https://github.plaid.com/plaid/go/tree/master/lib/apischemas/openapi/clib-wrappers/plaid-java/src/test/java/com/plaid/client/integration), [Quickstart](https://github.com/plaid/quickstart/tree/master/java/src/main/java/com/plaid/quickstart), or [API Reference documentation](https://plaid.com/docs/api/).
53+
For more examples of basic usage, see the [test suites](https://github.com/plaid/plaid-java/tree/master/src/test/java/com/plaid/client/integration), [Quickstart](https://github.com/plaid/quickstart/tree/master/java/src/main/java/com/plaid/quickstart), or [API Reference documentation](https://plaid.com/docs/api/).
5454

5555
#### Initialization, API call, and error handling
5656

@@ -68,7 +68,7 @@ plaidClient = apiClient.createService(PlaidApi.class);
6868
// Synchronously exchange a Link public_token for an API access_token
6969
// Required request parameters are always Request object constructor arguments
7070
ItemPublicTokenExchangeRequest request = new ItemPublicTokenExchangeRequest().publicToken("the_link_public_token");
71-
Response<ItemPublicTokenExchangeResponse> response = plaidClient()
71+
Response<ItemPublicTokenExchangeResponse> response = plaidClient
7272
.itemPublicTokenExchange(request).execute();
7373

7474
if (response.isSuccessful()) {
@@ -78,13 +78,13 @@ if (response.isSuccessful()) {
7878

7979
// Asynchronously do the same thing. Useful for potentially long-lived calls.
8080
ItemPublicTokenExchangeRequest request = new ItemPublicTokenExchangeRequest().publicToken(publicToken);
81-
plaidClient()
81+
plaidClient
8282
.itemPublicTokenExchange(request)
8383
.enqueue(new Callback<ItemPublicTokenExchangeResponse>() {
8484
@Override
8585
public void onResponse(Call<ItemPublicTokenExchangeResponse> call, Response<ItemPublicTokenExchangeResponse> response) {
8686
if (response.isSuccessful()) {
87-
accessToken = response.body.getAccessToken();
87+
accessToken = response.body().getAccessToken();
8888
}
8989
}
9090

@@ -101,7 +101,7 @@ try {
101101
} catch (Exception e) {
102102
throw new Exception(
103103
String.format(
104-
"Failed converting from API Response Error Body to Error %f",
104+
"Failed converting from API Response Error Body to Error %s",
105105
response.errorBody().string()
106106
)
107107
);
@@ -144,8 +144,8 @@ Version 9.0.0 of the client library was released in August 2021 and contains mul
144144

145145
**Change CountryCodes to enum:**
146146

147-
- from: `Arrays.list("US")`
148-
- to: `Arrays.list(CountryCode.US`)
147+
- from: `Arrays.asList("US")`
148+
- to: `Arrays.asList(CountryCode.US)`
149149

150150
**Rename model imports:**
151151

@@ -217,7 +217,7 @@ LinkTokenCreateRequest request = new LinkTokenCreateRequest()
217217

218218
#### Initialization and error handling
219219

220-
See [basic usage](#basic-usage) for examples of new-style initialization and error handling.
220+
See [basic usage](#basic-usage-examples) for examples of new-style initialization and error handling.
221221

222222
#### Method calling examples
223223

@@ -247,70 +247,42 @@ List<Account> accounts = response.body().getAccounts();
247247

248248
#### Optional parameters
249249

250+
Using `/link/token/create` as an example, required parameters move from constructor arguments to builder setters, and optional parameters (such as `webhook`, `linkCustomizationName`, and `redirectUri`) switch from `with*` setters to plain builder setters.
251+
250252
Old:
251253

252-
```
253-
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
254-
startDate = simpleDateFormat.parse("2018-01-01");
255-
endDate = simpleDateFormat.parse("2018-02-01");
256-
// Pull transactions for a date range
257-
Response<TransactionsGetResponse> response = client().service().transactionsGet(
258-
new TransactionsGetRequest(
259-
accessToken,
260-
startDate,
261-
endDate))
254+
```java
255+
// Required parameters are constructor arguments; optional parameters use with* setters
256+
LinkTokenCreateRequest request = new LinkTokenCreateRequest(
257+
new LinkTokenCreateRequest.User("user-id-from-your-db"),
258+
"Plaid Test",
259+
Arrays.asList("auth"),
260+
Arrays.asList("US"),
261+
"en")
262+
.withWebhook("https://webhook-uri.com")
263+
.withLinkCustomizationName("default")
264+
.withRedirectUri("https://domainname.com/oauth-page.html");
265+
Response<LinkTokenCreateResponse> response = client().service()
266+
.linkTokenCreate(request)
262267
.execute();
263-
264-
// Manipulate the count and offset parameters to paginate
265-
// transactions and retrieve all available data
266-
Response<TransactionsGetResponse> response = client().service().transactionsGet(
267-
new TransactionsGetRequest(
268-
accessToken,
269-
startDate,
270-
endDate)
271-
.withAccountIds(Arrays.asList(someAccountId))
272-
.withCount(numTxns)
273-
.withOffset(1)).execute();
274-
275-
for (TransactionsGetResponse.Transaction txn : response.body().getTransactions()) { ... }
276268
```
277269

278270
New:
279271

280-
```
281-
LocalDate startDate = LocalDate.now().minusDays(30);
282-
LocalDate endDate = LocalDate.now();
283-
TransactionsGetRequestOptions options = new TransactionsGetRequestOptions()
284-
.includePersonalFinanceCategory(true)
285-
// Pull transactions for a date range
286-
287-
TransactionsGetRequest request = new TransactionsGetRequest()
288-
.accessToken(accessToken)
289-
.startDate(startDate)
290-
.endDate(endDate)
291-
.options(options)
292-
Response<TransactionsGetResponse>
293-
response = plaidClient.transactionsGet(request).execute();
294-
295-
List<Transaction> transactions = new ArrayList <Transaction>();
296-
transactions.addAll(response.body().getTransactions());
297-
298-
// Manipulate the offset parameter to paginate
299-
// transactions and retrieve all available data
300-
while (transactions.size() < response.body().getTotalTransactions()) {
301-
options = new TransactionsGetRequestOptions()
302-
.offset(transactions.size())
303-
.includePersonalFinanceCategory(true)
304-
TransactionsGetRequest request = new TransactionsGetRequest()
305-
.accessToken(accessToken)
306-
.startDate(startDate)
307-
.endDate(endDate)
308-
.options(options);
309-
310-
Response<TransactionsGetResponse>
311-
response = plaidClient.transactionsGet(request).execute();
312-
transactions.addAll(response.body().getTransactions());
313-
}
272+
```java
273+
// Required and optional parameters are all builder setters
274+
LinkTokenCreateRequest request = new LinkTokenCreateRequest()
275+
.user(new LinkTokenCreateRequestUser().clientUserId("user-id-from-your-db"))
276+
.clientName("Plaid Test")
277+
.products(Arrays.asList(Products.AUTH))
278+
.countryCodes(Arrays.asList(CountryCode.US))
279+
.language("en")
280+
.webhook("https://webhook-uri.com")
281+
.linkCustomizationName("default")
282+
.redirectUri("https://domainname.com/oauth-page.html");
283+
Response<LinkTokenCreateResponse> response = plaidClient
284+
.linkTokenCreate(request)
285+
.execute();
314286
```
315287

316288
## Contributing

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.plaid</groupId>
66
<artifactId>plaid-java</artifactId>
7-
<version>41.0.0-SNAPSHOT</version>
7+
<version>42.0.0-SNAPSHOT</version>
88

99
<parent>
1010
<groupId>org.sonatype.oss</groupId>

0 commit comments

Comments
 (0)