# @finatic/server-node 中文文档

规范地址：https://npmcn.com/package/%40finatic/server-node/

版本：1\.0\.8
npm 元数据更新时间：2026-10-22T23:19:56.508Z
中文译文更新时间：2026-11-14T18:55:46.931Z
软件包许可：PROPRIETARY

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

原始 npm 页面：https://www.npmjs.com/package/%40finatic/server-node
原文对照：https://npmcn.com/package/%40finatic/server-node/?lang=original
项目主页：https://github.com/FinaticORG/FinaticServerSDK-Node#readme
源码仓库：https://github.com/FinaticORG/FinaticServerSDK-Node

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

- 包体积（解压后）：815 kB，756 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：6 个
- 首次发布：2025-09-16T17:37:14.189Z
- 最新版本发布：2026-10-22T23:19:56.139Z
- 近 30 天下载量：3596（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 22 个）

## 中文简介

Finatic 服务器 API 的节点.js SDK

## 安装

```sh
npm install @finatic/server-node
```

也可以使用：`pnpm add @finatic/server-node`、`yarn add @finatic/server-node`、`bun add @finatic/server-node`

## README

# Finatic 服务器 SDK (节点)

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

## 安装

```bash
npm install @finatic/server-node
```

## 快开始

```ts
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并不推断缺少合同, 过期,地点,出处,或身份质量的字段.

```ts
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合同. 在写完整集成之前获取其余部分 :

-   快速开始 : [https://finatic.dev/docs/快克-起步/快克-起步](https://finatic.dev/docs/quick-start/quick-start)
-   客户端 SDK 阅读器 : [https://github.com/FinaticORG/FinaticClientSDK/blob/develop/README.md 互联网档案馆的存檔,存档日期2013-12-20](https://github.com/FinaticORG/FinaticClientSDK/blob/develop/README.md)
-   Python SDK 读取: [https://github.com/FinaticORG/FinaticServerSDK-Python/blob/develop/README.md 互联网档案馆的存檔,存档日期2013-12-21](https://github.com/FinaticORG/FinaticServerSDK-Python/blob/develop/README.md)
-   嵌入连接 : [https://github.com/FinaticORG/FinaticConnect/blob/develop/docs/embedding.md. 互联网档案馆的存檔,存档日期2013-12-22](https://github.com/FinaticORG/FinaticConnect/blob/develop/docs/embedding.md)
-   演示应用 : [https://github.com/FinaticORG/FinaticDemoApps/blob/develop/README.md 互联网档案馆的存檔,存档日期2014-12-21](https://github.com/FinaticORG/FinaticDemoApps/blob/develop/README.md)
-   API 参考 : [https://finatic.dev/docs/api-参考资料](https://finatic.dev/docs/api-reference)
-   打开API : [https://finatic.dev/openapi.json 页面存档备份,存于互联网档案馆](https://finatic.dev/openapi.json)
-   代理索引 : [https://finatic.dev/llms.txt](https://finatic.dev/llms.txt)
-   代理笔记 : [https://finatic.dev/AGENTS.md (英语)](https://finatic.dev/AGENTS.md)

## 常见问题

### @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 和提交记录判断。

