@finatic/server-node

中文文档
1.0.8发布于 2026/10/23PROPRIETARYTypeScriptESM + CJS构建来源已验证近 30 天下载 3596

Finatic 服务器 API 的节点.js SDK

中文使用文档
文档目录7 节
  1. 安装
  2. 快开始
  3. 处理错误
  4. 精确的仪器描述符
  5. 嵌入连接
  6. 常见命令
  7. 文档

Finatic 服务器 SDK (节点)

嵌入 Finatic 的节点.js SDK 您的后端在服务器上保留公司的API密钥. 薄荷 90秒 一次性代币 @finatic/client,或启动会话并重定向到连接.

安装

npm install @finatic/server-node

快开始

import { FinaticServer } from '@finatic/server-node';

const finatic = new FinaticServer(process.env['FINATIC_API_KEY']!, {
  apiEnvironment: 'sandbox',
});

// Client iframe: 90-second token. Never send the API key to the browser.
const oneTimeToken = await finatic.v1.getToken();

// Redirect flow: start a session first (getPortalUrl requires it).
const redirectSession = await finatic.v1.startSession();
if (!redirectSession.session_id) {
  const message =
    'error' in redirectSession && redirectSession.error
      ? redirectSession.error
      : 'Session start failed';
  throw new Error(message);
}
const portalUrl = await finatic.v1.getPortalUrl({ mode: 'dark' });

// After account.grant.created, start a session for that portal user, then read.
const portalUserId = 'user-from-connect-onSuccess';
const authenticatedSession = await finatic.v1.startSession({ userId: portalUserId });
if (!authenticatedSession.authenticated) {
  const message = authenticatedSession.error
    ? authenticatedSession.error
    : `Session is ${authenticatedSession.status ?? 'not active'}`;
  throw new Error(message);
}

interface AccountSummary {
  accountId: string;
}

const accounts = await finatic.v1.listAccounts<AccountSummary[]>({
  includeSyncStatus: true,
});
const accountId = accounts.data?.[0]?.accountId;
if (!accountId) {
  throw new Error(accounts.errors[0]?.message ?? 'No granted accounts yet');
}
const orders = await finatic.v1.listOrders({ accountId });

服务器 v1 数据方法返回 { traceId, data, warnings, errors }检查 errors 在使用前 data。 。 。 .

处理错误

每个归正的v1出错都暴露出两个识别符:

  • category 是稳定的通用类别之一,例如: CONFLICT, (中文(简体) ), VALIDATION,或 RATE_LIMITED这一领域的部门负责广泛的处理和重新研究政策.
  • code 保存特定的 API 提供的字符串,例如 IDEMPOTENCY_KEY_REUSED代码为 开放式,这样SDK的消费者可以处理当前和未来API出错而不会失去身份.

当API 响应无法使用时 code,SDK 回归到衍生 category现有 FinaticV1ErrorCode 导入作为打开字符串代码的公用类型仍然有效,而 FinaticV1ErrorCategory 代表封闭的通用分类.

fntc_sandbox_ 键使用 Finatic 合成数据。 中间商票据/债券账户暂存 live。 。 。 .

FinaticServer.init(apiKey, userId?) 是一个可调用的快捷键 startSession组合键 getToken() 您只需向浏览器递交一个符号.

精确的仪器描述符

顺序腿,填充,事件和位置默认使用生成的描述符类型. 准确的未来 仍然有别于仅以产品为主的特性,SDK并不推断缺少合同, 过期,地点,出处,或身份质量的字段.

const orders = await finatic.v1.listOrders({ accountId: 'acct_123' });
const instrument = orders.data?.[0]?.legs?.[0]?.instrument;

if (instrument?.future?.identityQuality === 'EXACT') {
  console.log(instrument.future.contractCode); // e.g. MGCZ6
}

await finatic.v1.createAccountOrder({
  accountId: 'acct_123',
  idempotencyKey: crypto.randomUUID(),
  body: {
    order: {
      finaticInstrumentId: 'finatic:future:MGCZ6',
      instrumentId: 418, // provider-native identifiers remain additive
    },
  },
});

嵌入连接

  1. v1.getToken() 将信使传递给 FinaticConnect.init(token) 在浏览器中(token TTL为90秒).
  2. 或者说 v1.startSession() 接下来 v1.getPortalUrl(...) - 调整方向。 将完整 URL 视为秘密 .

等待网钩 account.grant.created 在将准入视为持久之前.

startSession().success 表示请求已完成. 检查 authenticated 账户前或 交易电话; status, (中文(简体) ), user_id, (中文(简体) ), provided_user_id_rejected,以及 portal_connection_management_pending 解释非活性会话状态.

常见命令

任务命令
构建npm run build
测试npm test
林特npm run lint
类型检查npm run type:check

文档

这个README是节点SDK合同. 在写完整集成之前获取其余部分 :

版本与发布记录

@finatic/server-node 共发布 35 个版本,首次发布于 2025/09/17;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.8latest2026/10/2322 天前
1.0.72026/10/1630 天前
1.0.62026/10/1630 天前
1.0.52026/10/111 个月前
1.0.42026/09/191 个月前
1.0.32026/09/181 个月前

关于 @finatic/server-node 的常见问题

@finatic/server-node 是什么?

Finatic 服务器 API 的节点.js SDK

如何安装 @finatic/server-node?

在项目目录运行 npm install @finatic/server-node,或使用 pnpm add / yarn add / bun add。

@finatic/server-node 支持 TypeScript 吗?

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

@finatic/server-node 支持 ESM 还是 CommonJS?

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

@finatic/server-node 需要什么版本的 Node.js?

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

@finatic/server-node 可以商用吗?

@finatic/server-node 使用 PROPRIETARY 许可。声明的许可为 PROPRIETARY,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@finatic/server-node 的下载量有多少?

根据 npm 官方下载统计,@finatic/server-node 在 2026/10/15 – 2026/11/13 这 30 天内被下载 3,596 次,日均约 120 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@finatic/server-node 还在维护吗?

最新版本 1.0.8 发布于 2026/10/23(22 天前);至今共发布 35 个版本,其中过去 12 个月发布了 22 个;首次发布于 2025/09/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。