连接解决方案体验 API SDK
认证
节点Js
-
证明sdk
import { createSDK } from '@experian-ecs/connected-api-sdk' // environment can either be 'PRODUCTION' or 'SANDBOX' const sdk = createSDK({ environment: 'PRODUCTION' }) -
获取访问符
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 实例上设置认证符
sdk.setConfig({ token: tokenRequest.data?.access_token });
浏览器
如果在浏览器中使用 sdk auth.getAccessToken 方法会扔出一个错误来防止用户在公共浏览器环境中暴露他们的客户端ID和客户端秘密. 因此,用户需要从 sdk 外取出有效的 oauth 令牌, 并将其提供给传递到的配置对象 createSDK。 。 。 .
-
以道具证明sdk
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键.const { data, error, meta } = await sdk.creditScores.getCreditScores(); -
成功实例
{ data: [ {...}, {...} ], error: undefined, meta: { status: 200, statusText: 'OK' } } -
错误示例
{ 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' } }
警报
-
获取所有提醒
await sdk.alerts.getAlerts(); -
获取单个警告
await sdk.alerts.getAlertById({ id: 'alr_01' }); -
获取所有提醒的计数
await sdk.alerts.getAlertCounts(); -
将提醒标记为已读
await sdk.alerts.markAlertAsRead({ id: 'alr_01' });
信用属性
信用属性 API 支持具有不同响应格式的 v1 和 v2 端点. 使用 version 参数指定要使用的API版本。 留空默认值到 v1
-
获取所有历史报告的属性数据
// 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' });
信用属性版本响应验证
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
-
检索所有历史报告
// 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', }); -
获取单一报告
await sdk.creditReports.getReportById({ id: '', include_fields: 'report_display', }); // Version specific v2 await sdk.creditReports.getReportById({ id: '1234', version: 'v2' }); -
检索所有历史报告摘要
await sdk.creditReports.getReportMeta(); // Version specific v2 await sdk.creditReports.getReportMeta({ version: 'v2', latest_only: true }); -
获取单一报告摘要
await sdk.creditReports.getReportMetaById({ id: '' }); // Version specific v2 await sdk.creditReports.getReportMetaById({ id: '123', version: 'v2' }); -
订购新报告
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', }); -
将报告标为已读
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
-
获取所有历史分数
// 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' }); -
以因子信息获取所有历史分数
await sdk.creditScores.getCreditScores({ include_factors: true }); -
获取所有历史分数的成份信息 - 只有 FICO
await sdk.creditScores.getCreditScores({ include_ingredients: true }); -
订购新分数
// 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' }); -
信用分数版本响应验证
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); }
计分计划
-
获取当前计划
await sdk.creditScorePlanner.getCreditScorePlan({ product_config_id: 'procfg_01' }); -
获取创建计划的时间表选项
// 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 }); -
创建新计划
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) } -
删除您的当前计划
await sdk.creditScorePlanner.deleteCreditScorePlan({ product_config_id: 'procfg_01' });
信用分数模拟器
-
获取所有可供模拟的情景
范特奇将返回模拟及其模拟结果都来自这种方法.
FICO只返回可能的模拟,并且需要额外呼叫
simulateScenario以获取选定模拟的结果。 下面的例子.await sdk.creditScoreSimulator.getSimulations({ product_config_id: 'procfg_01' }); -
模拟一个情景 - 只有 FICO
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
-
获取基于知识的认证问题
const questionsRequest = await sdk.customerAuth.getAuthQuestions(); -
提交基于知识的认证问题的答案
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 })
客户
-
收买客户
await sdk.customers.getCustomerById({ customer_id: 'cus_01' }); -
更新客户
await sdk.customers.updateCustomer({ customer_id: 'cus_01', first_name: ''; // any other customer fields }); -
删除客户
await sdk.customers.deleteCustomer({ customer_id: 'cus_01' }); -
按字段搜索客户
await sdk.customers.searchCustomers({ count: 10, name: { first_name: 'John' }, }); -
创建新客户端
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: '[email protected]', }, ], social_security_number: '', date_of_birth: 'yyy-mm-dd', outside_auth: false, disclosure: { accepted_at: 'yyy-mm-ddT00:00:00.000+00:00', }, });
应享权利
-
收回客户的所有应享权利
await sdk.entitlements.getEntitlements({ customer_id: 'cus_01' }) -
由身份证收回应享待遇
await sdk.entitlements.getEntitlementById({ entitlement_id: 'ent_01' }) -
为拥有一个或多个产品的客户创建新的权益
await sdk.entitlements.createEntitlement({ name: '', description: '', product_config_ids: [ 'procfg_01' ]; customer_id: 'cus_01'; }) -
更新客户的现有应享权利
await sdk.entitlements.updateEntitlement({ entitlement_id: 'ent_01', product_config_ids: [ 'procfg_01' ]; customer_id: 'cus_01'; }); -
删除权利
await sdk.entitlements.deleteEntitlement({ entitlement_id: '' }); -
启动一项特别权利
await sdk.entitlements.activateEntitlement({ entitlement_id: '' }); -
取消使用权
await sdk.entitlements.deactivateEntitlement({ entitlement_id: '' }); -
将客户赋予新产品
await sdk.entitlements.entitleCustomerToNewProduct({ entitlement_id: 'ent_01', product_config_id: 'procfg_01', customer_id: 'cus_01' }); -
激活已享有客户资格的产品
await sdk.entitlements.activateProduct({ product_config_id: 'procfg_01', entitlement_id: 'ent_01' }); -
取消已享有客户资格的产品
await sdk.entitlements.deactivateProduct({ product_config_id: 'procfg_01', entitlement_id: 'ent_01' }); -
删除对客户有利的产品
await sdk.entitlements.removeProductFromEntitlement({ product_config_id: 'procfg_01', entitlement_id: 'ent_01' }); -
获得现有产品对客户的资格状况
await sdk.entitlements.getProductEligibility({ product_config_id: 'procfg_01', customer_id: 'cus_01' });
身份属性
-
获取监测简介
await sdk.identityAttributes.retrieveMonitoringProfile(); -
创建监视配置
await sdk.identityAttributes.createMonitoringProfile({ emails: [{ value: '[email protected]' }], phones: [{ value: '123-456-7890' }], social_security_numbers: [{ value: '123-45-6789' }], }); -
在现有监测配置中添加项目
await sdk.identityAttributes.createNewMonitoringProfileItem({ emails: [{ value: '[email protected]' }], }); -
更新监测项目
await sdk.identityAttributes.updateMonitoringProfile({ emails: [{ id: 'cyb_01JFDHF00Y349X79EYXGFB25K7', value: '[email protected]' }], }); -
删除被监视的项目
await sdk.identityAttributes.deleteMonitoringProfile({ emails: ['cyb_01JFDHF00Y349X79EYXGFB25K7'], });
产品配置
Product Config API支持有不同响应格式的v1和v2端点. 使用 version 参数指定要使用的API版本。 留空默认值到 v1。 。 。 .
-
为租户获取产品配置
// 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'}); -
为租户获取单一产品配置
// 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' });
提议
-
收回现有的信用卡报价
await sdk.offers.getOffers({ product_config_id: 'procfg_01' }); -
处理成功空出响应
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); }
登记
-
在单一请求中创建客户端、创建权限并激活产品
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'], }, });
公用事业
类型警卫
对于打字机用户,要导出帮助工具函数,以便帮助类型缩小的响应类型返回可变响应模型. 可以查看示例使用大小写 模拟信用分数 财务报告和审定财务报表 验证信用分数答复。 。 。 .
-
计分计划
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; -
信用分数模拟器
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; -
信用分数
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'>; -
信用属性
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'>;