diff --git a/go/go.mod b/go/go.mod
index f602ec0f..e0488c3a 100644
--- a/go/go.mod
+++ b/go/go.mod
@@ -5,7 +5,7 @@ go 1.22
require (
github.com/gin-gonic/gin v1.10.0
github.com/joho/godotenv v1.5.1
- github.com/plaid/plaid-go/v27 v27.0.0
+ github.com/plaid/plaid-go/v31 v31.0.0
)
require (
diff --git a/go/go.sum b/go/go.sum
index de40fedd..b7fea352 100644
--- a/go/go.sum
+++ b/go/go.sum
@@ -226,8 +226,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
-github.com/plaid/plaid-go/v27 v27.0.0 h1:Qw08VLcwkndcPSD8abJv/piFM7hePLip30eGBFCx8pY=
-github.com/plaid/plaid-go/v27 v27.0.0/go.mod h1:pKlJaLQRFMPPoB041jyAsSeo+uofQ85eazJSToXPpHE=
+github.com/plaid/plaid-go/v31 v31.0.0 h1:1ffWhY+AZ8dUN0RiJYLXQKNl1hzfTW/NPYRcGMmXLLM=
+github.com/plaid/plaid-go/v31 v31.0.0/go.mod h1:12wSDVT0IqD47PN8nOGP8RMBRmsoXEkLD9MX0pZfEQw=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
diff --git a/go/server.go b/go/server.go
index dbe44894..082c3af9 100644
--- a/go/server.go
+++ b/go/server.go
@@ -15,7 +15,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
- plaid "github.com/plaid/plaid-go/v27/plaid"
+ plaid "github.com/plaid/plaid-go/v31/plaid"
)
var (
@@ -812,7 +812,8 @@ func getCraBaseReportHandler(c *gin.Context) {
return
}
- pdfRequest := plaid.NewCraCheckReportPDFGetRequest(userToken)
+ pdfRequest := plaid.NewCraCheckReportPDFGetRequest()
+ pdfRequest.SetUserToken(userToken)
pdfResponse, _, err := client.PlaidApi.CraCheckReportPdfGet(ctx).CraCheckReportPDFGetRequest(*pdfRequest).Execute()
if err != nil {
renderError(c, err)
@@ -837,8 +838,9 @@ func getCraBaseReportHandler(c *gin.Context) {
func getCraBaseReportWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportBaseReportGetResponse, error) {
return pollWithRetries(func() (*plaid.CraCheckReportBaseReportGetResponse, error) {
- request := plaid.CraCheckReportBaseReportGetRequest{UserToken: userToken}
- response, _, err := client.PlaidApi.CraCheckReportBaseReportGet(ctx).CraCheckReportBaseReportGetRequest(request).Execute()
+ request := plaid.NewCraCheckReportBaseReportGetRequest()
+ request.SetUserToken(userToken)
+ response, _, err := client.PlaidApi.CraCheckReportBaseReportGet(ctx).CraCheckReportBaseReportGetRequest(*request).Execute()
return &response, err
}, 1000, 20)
}
@@ -854,7 +856,8 @@ func getCraIncomeInsightsHandler(c *gin.Context) {
return
}
- pdfRequest := plaid.NewCraCheckReportPDFGetRequest(userToken)
+ pdfRequest := plaid.NewCraCheckReportPDFGetRequest()
+ pdfRequest.SetUserToken(userToken)
pdfRequest.SetAddOns([]plaid.CraPDFAddOns{plaid.CRAPDFADDONS_CRA_INCOME_INSIGHTS})
pdfResponse, _, err := client.PlaidApi.CraCheckReportPdfGet(ctx).CraCheckReportPDFGetRequest(*pdfRequest).Execute()
if err != nil {
@@ -880,8 +883,9 @@ func getCraIncomeInsightsHandler(c *gin.Context) {
func getCraIncomeInsightsWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportIncomeInsightsGetResponse, error) {
return pollWithRetries(func() (*plaid.CraCheckReportIncomeInsightsGetResponse, error) {
- request := plaid.CraCheckReportIncomeInsightsGetRequest{UserToken: userToken}
- response, _, err := client.PlaidApi.CraCheckReportIncomeInsightsGet(ctx).CraCheckReportIncomeInsightsGetRequest(request).Execute()
+ request := plaid.NewCraCheckReportIncomeInsightsGetRequest()
+ request.SetUserToken(userToken)
+ response, _, err := client.PlaidApi.CraCheckReportIncomeInsightsGet(ctx).CraCheckReportIncomeInsightsGetRequest(*request).Execute()
return &response, err
}, 1000, 20)
}
@@ -903,8 +907,9 @@ func getCraPartnerInsightsHandler(c *gin.Context) {
func getCraPartnerInsightsWithRetries(ctx context.Context, userToken string) (*plaid.CraCheckReportPartnerInsightsGetResponse, error) {
return pollWithRetries(func() (*plaid.CraCheckReportPartnerInsightsGetResponse, error) {
- request := plaid.CraCheckReportPartnerInsightsGetRequest{UserToken: userToken}
- response, _, err := client.PlaidApi.CraCheckReportPartnerInsightsGet(ctx).CraCheckReportPartnerInsightsGetRequest(request).Execute()
+ request := plaid.NewCraCheckReportPartnerInsightsGetRequest()
+ request.SetUserToken(userToken)
+ response, _, err := client.PlaidApi.CraCheckReportPartnerInsightsGet(ctx).CraCheckReportPartnerInsightsGetRequest(*request).Execute()
return &response, err
}, 1000, 20)
}
diff --git a/java/pom.xml b/java/pom.xml
index 59868c01..1268716e 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -54,7 +54,7 @@
com.plaid
plaid-java
- 25.0.0
+ 29.0.0
javax.xml.bind
diff --git a/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java b/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java
index edeaf014..4906dc90 100644
--- a/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java
+++ b/java/src/main/java/com/plaid/quickstart/resources/ItemResource.java
@@ -11,7 +11,7 @@
import com.plaid.client.model.InstitutionsGetByIdRequest;
import com.plaid.client.model.InstitutionsGetByIdResponse;
import com.plaid.client.model.Institution;
-import com.plaid.client.model.Item;
+import com.plaid.client.model.ItemWithConsentFields;
import com.plaid.quickstart.QuickstartApplication;
import javax.ws.rs.GET;
@@ -55,12 +55,12 @@ public ItemResponse getItem() throws IOException {
public static class ItemResponse {
@JsonProperty
- public Item item;
+ public ItemWithConsentFields item;
@JsonProperty
public Institution institution;
- public ItemResponse(Item item, Institution institution) {
+ public ItemResponse(ItemWithConsentFields item, Institution institution) {
this.item = item;
this.institution = institution;
}
diff --git a/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java b/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java
index 4aa6a4e5..541da4b7 100644
--- a/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java
+++ b/java/src/main/java/com/plaid/quickstart/resources/LinkTokenResource.java
@@ -3,7 +3,6 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.plaid.client.model.ConsumerReportPermissiblePurpose;
import com.plaid.client.model.CountryCode;
-import com.plaid.client.model.CraCheckReportProduct;
import com.plaid.client.model.LinkTokenCreateRequest;
import com.plaid.client.model.LinkTokenCreateRequestCraOptions;
import com.plaid.client.model.LinkTokenCreateRequestStatements;
@@ -86,8 +85,7 @@ public LinkToken(String linkToken) {
request.setStatements(statementsConfig);
}
- List craCheckReportProducts = Arrays.asList(CraCheckReportProduct.values());
- if (craCheckReportProducts.stream().map(CraCheckReportProduct::toString).anyMatch(plaidProducts::contains)) {
+ if (plaidProducts.stream().anyMatch(product -> product.startsWith("cra_"))) {
request.userToken(QuickstartApplication.userToken);
request.consumerReportPermissiblePurpose(ConsumerReportPermissiblePurpose.ACCOUNT_REVIEW_CREDIT);
LinkTokenCreateRequestCraOptions options = new LinkTokenCreateRequestCraOptions();
diff --git a/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java b/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java
index d20f033d..37c0360a 100644
--- a/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java
+++ b/java/src/main/java/com/plaid/quickstart/resources/UserTokenResource.java
@@ -2,7 +2,6 @@
import com.plaid.client.model.AddressData;
import com.plaid.client.model.ConsumerReportUserIdentity;
-import com.plaid.client.model.CraCheckReportProduct;
import com.plaid.client.model.UserCreateRequest;
import com.plaid.client.model.UserCreateResponse;
import com.plaid.client.request.PlaidApi;
@@ -38,8 +37,7 @@ public UserCreateResponse createUserToken() throws IOException {
// Typically, this will be a user ID number from your application.
.clientUserId("user_" + UUID.randomUUID());
- List craCheckReportProducts = Arrays.asList(CraCheckReportProduct.values());
- if (craCheckReportProducts.stream().map(CraCheckReportProduct::toString).anyMatch(plaidProducts::contains)) {
+ if (plaidProducts.stream().anyMatch(product -> product.startsWith("cra_"))) {
AddressData addressData = new AddressData()
.city("New York")
.region("NY")
diff --git a/node/index.js b/node/index.js
index aa42524a..6ed4911b 100644
--- a/node/index.js
+++ b/node/index.js
@@ -124,8 +124,7 @@ app.post('/api/create_link_token', function (request, response, next) {
configs.statements = statementConfig;
}
- const craEnumValues = Object.values(CraCheckReportProduct);
- if (PLAID_PRODUCTS.some(product => craEnumValues.includes(product))) {
+ if (PLAID_PRODUCTS.some(product => product.startsWith("cra_"))) {
configs.user_token = USER_TOKEN;
configs.cra_options = {
days_requested: 60
@@ -150,8 +149,7 @@ app.post('/api/create_user_token', function (request, response, next) {
client_user_id: 'user_' + uuidv4()
}
- const craEnumValues = Object.values(CraCheckReportProduct);
- if (PLAID_PRODUCTS.some(product => craEnumValues.includes(product))) {
+ if (PLAID_PRODUCTS.some(product => product.startsWith("cra_"))) {
request.consumer_report_user_identity = {
first_name: 'Harry',
last_name: 'Potter',
diff --git a/node/package-lock.json b/node/package-lock.json
index dbf6c11b..083a62d6 100644
--- a/node/package-lock.json
+++ b/node/package-lock.json
@@ -16,7 +16,7 @@
"express": "4.16.x",
"moment": "2.22.x",
"nodemon": "^2.0.20",
- "plaid": "^26.0.0",
+ "plaid": "^30.0.0",
"uuid": "^9.0.0"
}
},
@@ -715,10 +715,9 @@
}
},
"node_modules/plaid": {
- "version": "26.0.0",
- "resolved": "https://registry.npmjs.org/plaid/-/plaid-26.0.0.tgz",
- "integrity": "sha512-idAQTSmLm5C0WieSRBWrkF8ur2T5UGjRja+6/Owl9m9YjlD1PjOkD9A9s+l95sJiIhjWLs7HR9Ti3f06dvnrPg==",
- "license": "MIT",
+ "version": "30.0.0",
+ "resolved": "https://registry.npmjs.org/plaid/-/plaid-30.0.0.tgz",
+ "integrity": "sha512-BO6xny2+jtMYFKu3gl3GycA7lFZL6rTIydbADrYXMlrCJlR+MwJy9R7RU8AyxqE6i6UGrojUm30QIGnZtGXCSg==",
"dependencies": {
"axios": "^1.6.2"
},
diff --git a/node/package.json b/node/package.json
index 1f4df1af..b999e82b 100644
--- a/node/package.json
+++ b/node/package.json
@@ -19,7 +19,7 @@
"express": "4.16.x",
"moment": "2.22.x",
"nodemon": "^2.0.20",
- "plaid": "^26.0.0",
+ "plaid": "^30.0.0",
"uuid": "^9.0.0"
}
}
diff --git a/python/requirements.txt b/python/requirements.txt
index 4b95f49d..b1d57658 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -1,5 +1,5 @@
Flask==3.0.0
-plaid_python==24.0.0
+plaid_python==28.0.0
python-dotenv==0.15.0
itsdangerous==2.1.2
werkzeug==3.0.1
diff --git a/ruby/Gemfile b/ruby/Gemfile
index cd35be06..ee8e1894 100644
--- a/ruby/Gemfile
+++ b/ruby/Gemfile
@@ -6,6 +6,6 @@ gem 'http'
gem "dotenv", "~> 2.7"
-gem "plaid", "= 30.0.0"
+gem "plaid", "= 34.0.0"
gem "webrick"
diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock
index 2c6dbf9d..67eb23f6 100644
--- a/ruby/Gemfile.lock
+++ b/ruby/Gemfile.lock
@@ -34,7 +34,7 @@ GEM
ruby2_keywords (~> 0.0.1)
net-http (0.4.1)
uri
- plaid (30.0.0)
+ plaid (34.0.0)
faraday (>= 1.0.1, < 3.0)
faraday-multipart (>= 1.0.1, < 2.0)
public_suffix (5.0.1)
@@ -61,7 +61,7 @@ PLATFORMS
DEPENDENCIES
dotenv (~> 2.7)
http
- plaid (= 30.0.0)
+ plaid (= 34.0.0)
sinatra
webrick
diff --git a/ruby/app.rb b/ruby/app.rb
index dbfbfe95..310ea340 100644
--- a/ruby/app.rb
+++ b/ruby/app.rb
@@ -491,8 +491,7 @@
)
link_token_create_request.statements=statements
end
- cra_enum_values = Plaid::CraCheckReportProduct.constants.map { |c| Plaid::CraCheckReportProduct.const_get(c) }
- if products.any? { |product| cra_enum_values.include?(product) }
+ if products.any? { |product| product.start_with?("cra_") }
link_token_create_request.cra_options = Plaid::LinkTokenCreateRequestCraOptions.new(
days_requested: 60
)
@@ -521,8 +520,7 @@
client_user_id: 'user_' + SecureRandom.uuid
}
- cra_enum_values = Plaid::CraCheckReportProduct.constants.map { |c| Plaid::CraCheckReportProduct.const_get(c) }
- if products.any? { |product| cra_enum_values.include?(product) }
+ if products.any? { |product| product.start_with?("cra_") }
request_data[:consumer_report_user_identity] = {
first_name: 'Harry',
last_name: 'Potter',
diff --git a/ruby/start.sh b/ruby/start.sh
index 71ce91d2..739cd5c1 100755
--- a/ruby/start.sh
+++ b/ruby/start.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env bash
-ruby app.rb
\ No newline at end of file
+bundle exec ruby app.rb
\ No newline at end of file