# @experian-ecs/connected-api-sdk 中文文档

规范地址：https://npmcn.com/package/%40experian-ecs/connected-api-sdk/

版本：1\.7\.0
npm 元数据更新时间：2026-04-22T21:30:30.204Z
中文译文更新时间：2026-11-14T04:11:54.225Z
软件包许可：SEE LICENSE IN LICENSE\.md

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40experian-ecs/connected-api-sdk
原文对照：https://npmcn.com/package/%40experian-ecs/connected-api-sdk/?lang=original
项目主页：https://github.com/eps-na/connected-solutions-api-sdk#readme
源码仓库：https://github.com/eps-na/connected-solutions-api-sdk

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：423 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.x\.x
- 运行依赖：0 个
- 首次发布：2025-03-11T21:06:42.485Z
- 最新版本发布：2026-04-22T21:30:30.047Z
- 近 30 天下载量：24684（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 4 个）

## 中文简介

连接体验 API SDK

## 安装

```sh
npm install @experian-ecs/connected-api-sdk
```

也可以使用：`pnpm add @experian-ecs/connected-api-sdk`、`yarn add @experian-ecs/connected-api-sdk`、`bun add @experian-ecs/connected-api-sdk`

## README

# 连接解决方案体验 API SDK

1.  [认证](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-authentication)
    1.  [节点JS](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-nodejs)
    2.  [浏览器](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-browser)
2.  [使用量](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-usage)
    1.  [答复格式](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-response-format)
    2.  [警报](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-alerts)
    3.  [信用报告](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-reports)
    4.  [信用属性](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-attributes)
    5.  [信用分数](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-scores)
    6.  [计分计划](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-score-planner)
    7.  [信用分数模拟器](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-score-simulator)
    8.  [客户 Auth](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-customer-auth)
    9.  [客户](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-customers)
    10.  [应享权利](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-entitlements)
    11.  [身份属性](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-identity-attributes)
    12.  [产品配置](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-product-configs)
    13.  [提议](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-offers)
    14.  [登记](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-registrations)
3.  [公用事业](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-utilities)
    1.  [类型警卫](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-type-guards)

## 认证

### 节点Js

-   #### 证明sdk
    
    ```tsx
    import { createSDK } from '@experian-ecs/connected-api-sdk'
    
    // environment can either be 'PRODUCTION' or 'SANDBOX'
    const sdk = createSDK({ environment: 'PRODUCTION' })
    ```
    
-   #### 获取访问符
    
    ```tsx
    const tokenRequest = await sdk.auth.getAccessToken({
      grantType: 'trusted_partner',
      clientId: process.env.SDK_CLIENT_ID!,
      clientSecret: process.env.SDK_CLIENT_SECRET!,
      customerId: 'cus_01'
    });
    ```
    
-   #### 在 sdk 实例上设置认证符
    
    ```tsx
    sdk.setConfig({
      token: tokenRequest.data?.access_token
    });
    ```
    

### 浏览器

如果在浏览器中使用 sdk `auth.getAccessToken` 方法会扔出一个错误来防止用户在公共浏览器环境中暴露他们的客户端ID和客户端秘密. 因此,用户需要从 sdk 外取出有效的 oauth 令牌, 并将其提供给传递到的配置对象 `createSDK`。 。 。 .

-   #### 以道具证明sdk
    
    ```tsx
    import { createSDK } from '@experian-ecs/connected-api-sdk'
    
    // environment can either be 'PRODUCTION' or 'SANDBOX'
    const sdk = createSDK({ 
      environment: 'PRODUCTION',
      token: 'your-oauth-token'
    })
    ```
    

## 使用量

### 答复格式

-   所有调用 sdk 方法返回单个对象 `data`, (中文(简体) ), `error`, (中文(简体) ), `meta` 键.
    
    ```tsx
    const { data, error, meta } = await sdk.creditScores.getCreditScores();
    ```
    
-   成功实例
    
    ```tsx
    { 
      data: [ {...}, {...} ],
      error: undefined,
      meta: {
        status: 200,
        statusText: 'OK'
      }
    }
    ```
    
-   错误示例
    
    ```tsx
    {
      data: undefined,
      error: [ConnectedSolutionsClientAuthError]: User Not Authorized
        at ft.St [as generateError] (file:/stack/trace/path)
        at k.fetchRequest (file:/stack/trace/path)
        at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
        at async k.fetchWithAuth (file:/stack/trace/path)
        at async file:/stack/trace/path {
        data: {
          type: AUTHENTICATION_ERROR,
          dev_url: 'https://experian.com/unity/docs/UNAUTHORIZED',
          code: 'UNAUTHORIZED',
          message: 'User Not Authorized'
        },
        status: 401
      },
      meta: { 
        status: 401, 
        statusText: 'User Not Authorized' 
      }
    }
    ```
    

### 警报

-   #### 获取所有提醒
    
    ```tsx
    await sdk.alerts.getAlerts();
    ```
    
-   #### 获取单个警告
    
    ```tsx
    await sdk.alerts.getAlertById({ id: 'alr_01' });
    ```
    
-   #### 获取所有提醒的计数
    
    ```tsx
    await sdk.alerts.getAlertCounts();
    ```
    
-   #### 将提醒标记为已读
    
    ```tsx
    await sdk.alerts.markAlertAsRead({ id: 'alr_01' });
    ```
    

### 信用属性

信用属性 API 支持具有不同响应格式的 v1 和 v2 端点. 使用 `version` 参数指定要使用的API版本。 留空默认值到 `v1`

-   #### 获取所有历史报告的属性数据
    
    ```tsx
    // Defaults to V1
    await sdk.creditAttributes.getCreditAttributes();
    
      // V1 API - returns array of CreditAttributes objects
    await sdk.creditAttributes.getCreditAttributes({ version: 'v1' });
    
    // V2 API - returns CreditAttributes3B object with items array
    await sdk.creditAttributes.getCreditAttributes({ version: 'v2' });
    ```
    

#### 信用属性版本响应验证

```tsx
import { isV1GetCreditAttributesResponse, isV2GetCreditAttributesResponse } from '@experian-ecs/connected-api-sdk'

const { data, error } = await sdk.creditAttributes.getCreditAttributes({
  version: 'v2'
});

if (data) {
  if (isV2GetCreditAttributesResponse(data)) {
    // TypeScript now knows data is CreditAttribute3B
    const { items } = data;
    items.forEach(item => {
      console.log(`Attribute ID: ${item.id}`);
      item.bureau_attributes.forEach(attribute => {
        console.log(`Bureau: ${attribute.bureau}, Reported At: ${attribute.reported_at}, Categories: ${attribute.categories}, Attributes: ${attribute.attributes}`);
      });
    });
  } else if (isV1GetCreditAttributesResponse(data)) {
    // TypeScript now knows data is CreditAttribute[]
    data.forEach(attribute => {
      console.log(`Bureau: ${attribute.bureau}, Reported At: ${attribute.reported_at}, Categories: ${attribute.categories}, Attributes: ${attribute.attributes}`);
    });
  }
} else {
  console.error(error);
}
```

### 信用报告

Credit Reports API支持有不同响应格式的v1和v2端点. 使用 `version` 参数指定要使用的API版本。 留空默认值到 `v1`

-   #### 检索所有历史报告
    
    ```tsx
    // Defaults to v1
    await sdk.creditReports.getReports({
      product_config_id: 'procfg_01',
      include_fields: 'report_display',
    })
    
    // Version specific v1
    await sdk.creditReports.getReports({
      version: 'v1',
      product_config_id: 'procfg_01',
      include_fields: 'report_display',
    });
    
    // Version specific v2
    await sdk.creditReports.getReports({
      version: 'v2',
      product_config_id: 'procfg_01',
      report_date: '2025-09-01',
    });
    ```
    
-   #### 获取单一报告
    
    ```tsx
    await sdk.creditReports.getReportById({
      id: '',
      include_fields: 'report_display',
    });
    
    // Version specific v2
    await sdk.creditReports.getReportById({
      id: '1234',
      version: 'v2'
    });
    ```
    
-   #### 检索所有历史报告摘要
    
    ```tsx
    await sdk.creditReports.getReportMeta();
    
    // Version specific v2
    await sdk.creditReports.getReportMeta({
      version: 'v2',
      latest_only: true
    });
    ```
    
-   #### 获取单一报告摘要
    
    ```tsx
    await sdk.creditReports.getReportMetaById({ id: '' });
    
    // Version specific v2
    await sdk.creditReports.getReportMetaById({
      id: '123',
      version: 'v2'
    });
    ```
    
-   #### 订购新报告
    
    ```tsx
    await sdk.creditReports.orderReport({
      product_config_id: 'procfg_01',
      include_fields: 'report_display',
    });
    
    // Version specific v2
    await sdk.creditReports.orderReport({
      version: 'v2',
      product_config_id: 'procfg_01',
    });
    ```
    
-   #### 将报告标为已读
    
    ```tsx
    await sdk.creditReports.markReportAsRead({
      id: '',
      include_fields: 'report_display',
    });
    
    // Version specific v2
    await sdk.creditReports.markReportAsRead({
      version: 'v2',
      id: '1234',
      disposition: { read_status: 'READ' }
    });
    ```
    

### 信用分数

Credit Scores API支持有不同响应格式的v1和v2端点. 使用 `version` 参数指定要使用的API版本。 留空默认值到 `v1`

-   #### 获取所有历史分数
    
    ```tsx
    // Defaults to V1
    await sdk.creditScores.getCreditScores();
    
    // V1 API - returns array of CreditScore objects
    await sdk.creditScores.getCreditScores({ version: 'v1' });
    
    // V2 API - returns CreditScore3B object with items array
    await sdk.creditScores.getCreditScores({ version: 'v2' });
    ```
    
-   #### 以因子信息获取所有历史分数
    
    ```tsx
    await sdk.creditScores.getCreditScores({ include_factors: true });
    ```
    
-   #### 获取所有历史分数的成份信息 - 只有 FICO
    
    ```tsx
    await sdk.creditScores.getCreditScores({ include_ingredients: true });
    ```
    
-   #### 订购新分数
    
    ```tsx
    // Defaults to V1
    await sdk.creditScores.orderCreditScore({ 
      product_config_id: 'procfg_01' 
    });
    
    // V2 API
    await sdk.creditScores.orderCreditScore({ 
      product_config_id: 'procfg_01',
      version: 'v2'
    });
    ```
    
-   #### 信用分数版本响应验证
    
    ```tsx
    import { isV1GetCreditScoresResponse, isV2GetCreditScoresResponse } from '@experian-ecs/connected-api-sdk'
    
    const { data, error } = await sdk.creditScores.getCreditScores({
      version: 'v2'
    });
    
    if (data) {
      if (isV2GetCreditScoresResponse(data)) {
        // TypeScript now knows data is CreditScore3B
        const { items } = data;
        items.forEach(item => {
          console.log(`Score ID: ${item.id}`);
          item.bureau_scores.forEach(score => {
            console.log(`Bureau: ${score.bureau}, Score: ${score.score}`);
          });
        });
      } else if (isV1GetCreditScoresResponse(data)) {
        // TypeScript now knows data is CreditScore[]
        data.forEach(score => {
          console.log(`Score ID: ${score.score_id}, Score: ${score.score}`);
        });
      }
    } else {
      console.error(error);
    }
    ```
    

### 计分计划

-   #### 获取当前计划
    
    ```tsx
    await sdk.creditScorePlanner.getCreditScorePlan({ 
      product_config_id: 'procfg_01' 
    });
    ```
    
-   #### 获取创建计划的时间表选项
    
    ```tsx
    // FICO
    await sdk.creditScorePlanner.getCreditScorePlanRevisions({ 
      product_config_id: 'procfg_01',
      target_score: 800
    });
    
    // VANTAGE
    await sdk.creditScorePlanner.getCreditScorePlanRevisions({ 
      product_config_id: 'procfg_01',
      max_actions_per_plan: 5
    });
    ```
    
-   #### 创建新计划
    
    ```tsx
    const { data, error } = await sdk.creditScorePlanner.getCreditScorePlanRevisions({
      product_config_id: 'procfg_01',
      target_score: 800,
    })
    
    if(data) {
      const [ selectedRevision, ...revisions ] = data;
    
      await sdk.creditScorePlanner.createCreditScorePlan({
        product_config_id: 'procfg_01',
        ...selectedRevision
      });  
    
    } else {
      console.error(error)
    }
    ```
    
-   #### 删除您的当前计划
    
    ```tsx
    await sdk.creditScorePlanner.deleteCreditScorePlan({ 
      product_config_id: 'procfg_01' 
    });
    ```
    

### 信用分数模拟器

-   #### 获取所有可供模拟的情景
    
    范特奇将返回模拟及其模拟结果都来自这种方法.
    
    FICO只返回可能的模拟,并且需要额外呼叫 `simulateScenario` 以获取选定模拟的结果。 下面的例子.
    
    ```tsx
    await sdk.creditScoreSimulator.getSimulations({ 
      product_config_id: 'procfg_01' 
    });
    ```
    
-   #### 模拟一个情景 - 只有 FICO
    
    ```tsx
    import { isFicoScenario } from '@experian-ecs/connected-api-sdk'
    
    const { data, error } = await sdk.creditScoreSimulator.getSimulations({
      product_config_id: 'procfg_01'
    })
    
    if(data){
      const {
        simulations: [ selectedScenario, ...simulations ]
      } = data;
    
      if(isFicoScenario(selectedScenario)){
        const { scenario, variations } = selectedScenario;
    
        const simulationResult = await sdk.creditScoreSimulator.simulateScenario({
          product_config_id: 'procfg_01',
          scenario,
          variations
        })
      }
    } else {
      console.error(error)
    }
    ```
    

### 客户 Auth

-   #### 获取基于知识的认证问题
    
    ```tsx
    const questionsRequest = await sdk.customerAuth.getAuthQuestions();
    ```
    
-   #### 提交基于知识的认证问题的答案
    
    ```tsx
    await sdk.customerAuth.submitAuthAnswers({
      answers: [
        {
          answer_order: 1,
          choice_id: '1',
        },
        {
          answer_order: 2,
          choice_id: '2',
    
        },
      ],
      authentication_id: questionsRequest.authentication_id,
      authentication_session_id: questionsRequest.authentication_session_id
    })
    ```
    

### 客户

-   #### 收买客户
    
    ```tsx
    await sdk.customers.getCustomerById({ customer_id: 'cus_01' });
    ```
    
-   #### 更新客户
    
    ```tsx
    await sdk.customers.updateCustomer({
      customer_id: 'cus_01',
      first_name: '';
      // any other customer fields
    });
    ```
    
-   #### 删除客户
    
    ```tsx
    await sdk.customers.deleteCustomer({ customer_id: 'cus_01' });
    ```
    
-   #### 按字段搜索客户
    
    ```tsx
    await sdk.customers.searchCustomers({
      count: 10,
      name: { first_name: 'John' },
    });
    ```
    
-   #### 创建新客户端
    
    ```tsx
    await sdk.customers.createCustomer({
      people_id: '',
      reference_id: '',
      first_name: '',
      middle_initial: '',
      last_name: '',
      suffix: '',
      addresses: [
        {
          address_type: 'CURRENT_RESIDENTIAL',
          address1: '',
          address2: '',
          city: '',
          state: '',
          zip: '',
          country_code: 'US',
        },
      ],
      phones: [
        {
          phone_type: 'HOME',
          phone_country_code: '001',
          phone_number: '123-494-3566',
        },
      ],
      emails: [
        {
          email_type: 'PERSONAL',
          email_address: 'test@experian.com',
        },
      ],
      social_security_number: '',
      date_of_birth: 'yyy-mm-dd',
      outside_auth: false,
      disclosure: {
        accepted_at: 'yyy-mm-ddT00:00:00.000+00:00',
      },
    });
    ```
    

### 应享权利

-   #### 收回客户的所有应享权利
    
    ```tsx
    await sdk.entitlements.getEntitlements({ customer_id: 'cus_01' })
    ```
    
-   #### 由身份证收回应享待遇
    
    ```tsx
    await sdk.entitlements.getEntitlementById({ entitlement_id: 'ent_01' })
    ```
    
-   #### 为拥有一个或多个产品的客户创建新的权益
    
    ```tsx
    await sdk.entitlements.createEntitlement({
      name: '',
      description: '',
      product_config_ids: [
        'procfg_01'
      ];
      customer_id: 'cus_01';
    })
    ```
    
-   #### 更新客户的现有应享权利
    
    ```tsx
    await sdk.entitlements.updateEntitlement({
      entitlement_id: 'ent_01',
      product_config_ids: [
        'procfg_01'
      ];
      customer_id: 'cus_01';
    });
    ```
    
-   #### 删除权利
    
    ```tsx
    await sdk.entitlements.deleteEntitlement({ entitlement_id: '' });
    ```
    
-   #### 启动一项特别权利
    
    ```tsx
    await sdk.entitlements.activateEntitlement({ entitlement_id: '' });
    ```
    
-   #### 取消使用权
    
    ```tsx
    await sdk.entitlements.deactivateEntitlement({ entitlement_id: '' });
    ```
    
-   #### 将客户赋予新产品
    
    ```tsx
    await sdk.entitlements.entitleCustomerToNewProduct({
      entitlement_id: 'ent_01',
      product_config_id: 'procfg_01',
      customer_id: 'cus_01'
    });
    ```
    
-   #### 激活已享有客户资格的产品
    
    ```tsx
    await sdk.entitlements.activateProduct({
      product_config_id: 'procfg_01',
      entitlement_id: 'ent_01'
    });
    ```
    
-   #### 取消已享有客户资格的产品
    
    ```tsx
    await sdk.entitlements.deactivateProduct({
      product_config_id: 'procfg_01',
      entitlement_id: 'ent_01'
    });
    ```
    
-   #### 删除对客户有利的产品
    
    ```tsx
    await sdk.entitlements.removeProductFromEntitlement({
      product_config_id: 'procfg_01',
      entitlement_id: 'ent_01'
    });
    ```
    
-   #### 获得现有产品对客户的资格状况
    
    ```tsx
    await sdk.entitlements.getProductEligibility({
      product_config_id: 'procfg_01',
      customer_id: 'cus_01'
    });
    ```
    

### 身份属性

-   #### 获取监测简介
    
    ```tsx
    await sdk.identityAttributes.retrieveMonitoringProfile();
    ```
    
-   #### 创建监视配置
    
    ```tsx
    await sdk.identityAttributes.createMonitoringProfile({
      emails: [{ value: 'user@example.com' }],
      phones: [{ value: '123-456-7890' }],
      social_security_numbers: [{ value: '123-45-6789' }],
    });
    ```
    
-   #### 在现有监测配置中添加项目
    
    ```tsx
    await sdk.identityAttributes.createNewMonitoringProfileItem({
      emails: [{ value: 'another@example.com' }],
    });
    ```
    
-   #### 更新监测项目
    
    ```tsx
    await sdk.identityAttributes.updateMonitoringProfile({
      emails: [{ id: 'cyb_01JFDHF00Y349X79EYXGFB25K7', value: 'updated@example.com' }],
    });
    ```
    
-   #### 删除被监视的项目
    
    ```tsx
    await sdk.identityAttributes.deleteMonitoringProfile({
      emails: ['cyb_01JFDHF00Y349X79EYXGFB25K7'],
    });
    ```
    

### 产品配置

Product Config API支持有不同响应格式的v1和v2端点. 使用 `version` 参数指定要使用的API版本。 留空默认值到 `v1`。 。 。 .

-   #### 为租户获取产品配置
    
    ```tsx
    // Defaults to V1
    await sdk.productConfigs.getProductConfigs();
    
    // V1 API - returns product configurations
    await sdk.productConfigs.getProductConfigs({version: 'v1'});
    
    // V2 API - Includes Score Ranges and Disclosures array
    await sdk.productConfigs.getProductConfigs({version: 'v2'});
    ```
    
-   #### 为租户获取单一产品配置
    
    ```tsx
    // Defaults to V1
    await sdk.productConfigs.getProductConfigById({ 
      product_config_id: 'procfg_01' 
    });
    
    // V1 API
    await sdk.productConfigs.getProductConfigById({ 
      product_config_id: 'procfg_01',
      version: 'v1'
    });
    
    // V2 API - Includes Score Ranges and Disclosures array
    await sdk.productConfigs.getProductConfigById({ 
      product_config_id: 'procfg_01',
      version: 'v2' 
    });
    ```
    

### 提议

-   #### 收回现有的信用卡报价
    
    ```tsx
    await sdk.offers.getOffers({
      product_config_id: 'procfg_01'
    });
    ```
    
-   #### 处理成功空出响应
    
    ```tsx
    const { data, error } = await sdk.offers.getOffers({
      product_config_id: 'procfg_01'
    });
    
    if (data && data.offer_summary.total_count === 0) {
      console.log('No offers available');
    } else if (error) {
      console.error(error);
    }
    ```
    

### 登记

-   #### 在单一请求中创建客户端、创建权限并激活产品
    
    ```tsx
    await sdk.registrations.createRegistration({
      customer: {
        phones: [
          {
            phone_type: 'HOME',
            phone_country_code: '',
            phone_number: '',
          },
        ],
        date_of_birth: '',
        last_name: '',
        suffix: '',
        social_security_number: '',
        disclosure: {
          accepted_at: 'yyyy-mm-ddT00:00:00.000+00:00',
        },
        emails: [
          {
            email_type: '',
            email_address: '',
          },
        ],
        outside_auth: boolean,
        middle_initial: '',
        people_id: '',
        addresses: [
          {
            address_type: '',
            address1: '',
            address2: '',
            city: '',
            state: '',
            zip: '',
            country_code: '',
          },
        ],
        reference_id: '',
        first_name: '',
      },
      entitlement: {
        name: '',
        description: '',
        available_at: 'yyyy-mm-ddT00:00:00.000+00:00',
        product_config_ids: ['procfg_01'],
      },
    });
    ```
    

## 公用事业

### 类型警卫

对于打字机用户,要导出帮助工具函数,以便帮助类型缩小的响应类型返回可变响应模型. 可以查看示例使用大小写 [模拟信用分数](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-simulate-a-scenario---fico-only) 财务报告和审定财务报表 [验证信用分数答复](https://npmcn.com/package/%40experian-ecs/connected-api-sdk/#readme-credit-score-version-response-validation)。 。 。 .

-   计分计划
    
    ```tsx
    function isPlanCompleted(plan: CreditScorePlan): plan is FicoCreditScorePlanCompleted | VantageCreditScorePlanCompleted;
    function isPlanSet(plan: CreditScorePlan): plan is FicoCreditScorePlanCompleted | FicoCreditScorePlanSet | VantageCreditScorePlanCompleted | VantageCreditScorePlanSet;
    function isVantagePlan(plan: CreditScorePlan): plan is VantageCreditScorePlan;
    function isFicoPlan(plan: CreditScorePlan): plan is FicoCreditScorePlan;
    function isFicoRevisionsRequest(request: ScorePlanRevisionsRequest): request is FicoScorePlanRevisionsRequest;
    function isVantageRevisionsRequest(request: ScorePlanRevisionsRequest): request is VantageScorePlanRevisionsRequest;
    function isFicoRevision(revision: ScorePlanRevision): revision is FicoScorePlanRevision;
    function isVantageRevision(revision: ScorePlanRevision): revision is VantageScorePlanRevision;
    ```
    
-   信用分数模拟器
    
    ```tsx
    function isFicoSimulator(data?: CreditScoreSimulator): data is FicoScoreSimulator;
    function isVantageScenario(scenario?: Scenario): scenario is VantageScenario;
    function isFicoScenario(scenario: Scenario): scenario is FicoScenario;
    function isFicoScenarioVariation(variation?: ScenarioVariation): variation is FicoScenarioVariation;
    function isVantageScenarioVariation(variation?: ScenarioVariation): variation is VantageScenarioVariation;
    ```
    
-   信用分数
    
    ```tsx
    function isValidApiVersion(version: string): version is ApiVersion;
    function isCreditScore(data: unknown): data is CreditScore;
    function isCreditScoreV2(data: unknown): data is CreditScore_V2;
    function isBureauScore(data: unknown): data is BureauScore;
    function isValidBureau(bureau: unknown): bureau is Bureau;
    function isCreditScore3B(data: unknown): data is CreditScores_V2;
    function isCreditScoreArray(data: unknown): data is CreditScore[];
    function isV1GetCreditScoresResponse(data: unknown): data is GetCreditScoreResponse<'v1'>;
    function isV2GetCreditScoresResponse(data: unknown): data is GetCreditScoreResponse<'v2'>;
    function isV1PostCreditScoresResponse(data: unknown): data is PostCreditScoreResponse<'v1'>;
    function isV2PostCreditScoresResponse(data: unknown): data is PostCreditScoreResponse<'v2'>;
    ```
    
-   信用属性
    
    ```tsx
    function isCreditAttribute(data: unknown): data is CreditAttributes;
    function isCreditAttributeV2(data: unknown): data is CreditAttribute_V2;
    function isBureauAttribute(data: unknown): data is BureauAttribute;
    function isValidBureauAttribute(bureau: unknown): bureau is Bureau;
    function isCreditAttributesV2(data: unknown): data is CreditAttribute_V2;
    function isCreditAttributeArray(data: unknown): data is CreditAttribute[];
    function isV1GetCreditAttributesResponse(data: unknown): data is GetCreditAttributeResponse<'v1'>;
    function isV2GetCreditAttributesResponse(data: unknown): data is GetCreditAttributeResponse<'v2'>;
    ```

## 常见问题

### @experian-ecs/connected-api-sdk 是什么？

连接体验 API SDK

### 如何安装 @experian-ecs/connected-api-sdk？

在项目目录运行 npm install @experian-ecs/connected-api-sdk，或使用 pnpm add / yarn add / bun add。

### @experian-ecs/connected-api-sdk 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @experian-ecs/connected-api-sdk 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @experian-ecs/connected-api-sdk 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20\.x\.x。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @experian-ecs/connected-api-sdk 可以商用吗？

@experian-ecs/connected-api-sdk 使用 SEE LICENSE IN LICENSE\.md 许可。许可条款写在包内的独立文件中，请阅读该文件确认可否商用。以上为概括，不构成法律意见，请以许可原文为准。

### @experian-ecs/connected-api-sdk 的下载量有多少？

根据 npm 官方下载统计，@experian-ecs/connected-api-sdk 在 2026/10/14 – 2026/11/12 这 30 天内被下载 24,684 次，日均约 823 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @experian-ecs/connected-api-sdk 还在维护吗？

最新版本 1\.7\.0 发布于 2026/04/23（6 个月前）；至今共发布 10 个版本，其中过去 12 个月发布了 4 个；首次发布于 2025/03/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

