调用Yodlee交易API无法获取baseType,如何判断交易是贷记还是借记?
调用Yodlee交易API无法获取baseType字段排查
问题说明
调用Yodlee的获取交易API时,无法获取transaction的baseType字段,无法判断交易是贷记(credit)还是借记(debit)。使用沙箱DAG账户测试,怀疑是否遗漏查询参数,或是沙箱账户/交易数据存在问题。
请求代码
var apidata = await Api.findById(apiId); var baseUrl= 'https://sandbox.api.yodlee.com/ysl/'; var token = {accessToken}; var data = { 'requestId': requestId, 'providerAccountId':providerAccountId, }; const options = { method: "get", url: baseUrl+'/transactions', headers: { 'Content-Type':"application/json", 'Api-Version': 1.1, 'Authorization': "Bearer " +token }, params : data }; const result = await axios(options).then(res=>{ return JSON.stringify(res.data); }).catch(err=>{ // console.log(err.response); return err; }); return result;
响应示例
"transaction": [ { "CONTAINER": "bank", "id": {ID}, "amount": { "amount": 480.66, "currency": "USD" }, "categoryType": "UNCATEGORIZE", "categoryId": 1, "category": "Uncategorized", "categorySource": "SYSTEM", "highLevelCategoryId": 10000017, "createdDate": "2022-12-02T11:15:52Z", "lastUpdated": "2022-12-02T11:15:52Z", "description": { "original": "CHEROKEE NATION TAX TA TAHLEQUAH OK" }, "isManual": false, "sourceType": "AGGREGATED", "date": "2022-12-01", "transactionDate": "2022-12-01", "postDate": "2022-12-01", "status": "POSTED", "accountId": {accountId}, "runningBalance": { "amount": 480.66, "currency": "USD" }, "checkNumber": "998" } ]
排查建议
- 升级API版本:当前使用的
Api-Version:1.1可能不包含baseType字段,Yodlee后续版本(如1.2及以上)才新增该字段,建议将请求头中的Api-Version改为1.2或最新稳定版本。 - 显式指定返回字段:在请求参数中添加
fields=transaction.baseType,明确要求API返回该字段,部分API需要显式声明所需字段集合。 - 验证沙箱数据:沙箱DAG账户的默认交易可能存在字段缺失,可尝试通过API创建手动交易,或切换至其他类型的沙箱账户进行测试。
- 临时替代方案:若暂时无法获取
baseType,可通过amount字段的正负判断交易类型(通常借记交易金额为负,贷记为正;信用卡账户逻辑相反,需结合账户类型确认)。
内容的提问来源于stack exchange,提问作者Manikandan Rajaboopathi
相关产品推荐
相关产品推荐

