Plaid Java SDK配置credit/credit card账户过滤器获取LinkToken报错
问题解决:Plaid Java SDK配置credit/credit card过滤器请求LinkToken报错
错误根因
你当前请求LinkToken时指定的唯一产品是auth,而Plaid的auth产品仅支持存款类(depository)账户(如支票账户、储蓄账户),本身不支持信用卡(credit)类型账户。当你配置credit类型的账户过滤器时,系统不存在有效的「产品+账户类型」匹配组合,因此触发INVALID_FIELD报错。你之前使用depository/checking过滤器可正常运行,正是因为该组合是auth产品支持的合法组合。
你编写的账户过滤器代码本身没有语法错误,问题出在产品和账户类型的适配关系上。
解决方法
根据你的业务需求选择对应方案即可:
方案1:需要同时获取存款账户的auth信息+信用卡账户
在产品列表中额外加入支持credit类型的产品(如transactions、liabilities)即可,仅需修改产品列表参数:
LinkTokenCreateRequest.User user = new LinkTokenCreateRequest.User(person.getUuid().toString()); Map<String, LinkTokenCreateRequest.SubtypeFilters> accountFilters = new HashMap<>(); accountFilters.put("credit", new LinkTokenCreateRequest.SubtypeFilters(Collections.singletonList("credit card"))); // 修改产品列表,加入支持credit类型的产品 LinkTokenCreateRequest request = new LinkTokenCreateRequest (user, clientName, Arrays.asList("auth", "transactions"), Collections.singletonList("US"), "en") .withAccountFilters(accountFilters);
方案2:仅需要拉取信用卡账户,不需要auth产品功能
直接将产品列表中的auth替换为支持credit类型的产品即可:
LinkTokenCreateRequest.User user = new LinkTokenCreateRequest.User(person.getUuid().toString()); Map<String, LinkTokenCreateRequest.SubtypeFilters> accountFilters = new HashMap<>(); accountFilters.put("credit", new LinkTokenCreateRequest.SubtypeFilters(Collections.singletonList("credit card"))); // 替换为支持credit类型的产品 LinkTokenCreateRequest request = new LinkTokenCreateRequest (user, clientName, Collections.singletonList("transactions"), Collections.singletonList("US"), "en") .withAccountFilters(accountFilters);
内容的提问来源于stack exchange,提问作者Vijay Alilaghatta
相关产品推荐
相关产品推荐

