网站地图
中文
EUR €
全新
Claude & ChatGPT — 超级增强。
所有文档 · 409+ AI工具 · 30秒设置
Claude· ChatGPT· Cursor· Gemini· +50
立即连接
平台
50+ AI模块和工具
解决方案
行业、流程、风险
Entwickler
API、SDK、文档
资源
教程、博客、支持
公司
团队、合作伙伴、职业
定价
Webhooks

Webhooks 实时事件

针对每个文档、作业、工作空间和任务事件的 HMAC 签名回调。22 种事件类型,指数重试,建议使用 HTTPS。

22+
事件类型
<1 秒
延迟
HMAC
SHA-256 签名
POST /your-endpoint
请求头
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
JSON 主体
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
签名已验证 HMAC-SHA256 · 事件 ID 已记录

全球领先企业的信赖之选

可用事件

22 种事件类型,按实体分组

订阅单个事件或使用通配符 * 接收所有事件。

文档

14
  • document.uploaded 新文档上传至工作空间
  • document.created document.uploaded 的别名(兼容性)
  • document.processed OCR/IDP 流水线成功完成
  • document.edited 元数据、标签或内容已更新
  • document.deleted 文档已移至回收站
  • document.restored 文档已从回收站恢复
  • document.moved 文档在工作空间之间移动
  • 文档.版本已创建 现有文档添加了新版本
  • 文档.生命周期已变更 保留/归档状态已更改
  • 文档.评论已添加 文档上发布了评论
  • 文档.笔记已添加 附加了内部备注
  • 文档.标签已添加 标签已分配给文档
  • 文档.法律保留已启用 法律保留已激活(不可变)
  • 文档.法律保留已解除 法律保留已释放

作业

3
  • 作业.已完成 异步作业成功完成
  • 作业.失败 异步作业最终失败
  • 作业.进行中 长时间运行作业期间的进度更新

工作空间

2
  • 工作区.已共享 工作空间已共享给用户或团队
  • 工作区.已取消共享 工作空间访问权限已撤销

任务

3
  • 任务.已创建 创建了新任务
  • 任务.已完成 任务标记为完成
  • 任务.已逾期 任务已超过截止日期

订阅 ["*"] 以接收您账户的每个事件。

负载和头

每次交付遵循相同的模式

可预测的 JSON 主体,五个签名的 HTTP 头,ISO-8601 UTC 时间戳。

请求主体(JSON)
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": {
    "pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
    "workspace_id": 17,
    "filename": "invoice-2026-04-17.pdf",
    "mime_type": "application/pdf",
    "size_bytes": 284521,
    "processing_result": {
      "ocr_done": true,
      "classification": "invoice",
      "confidence": 0.98
    }
  }
}
HTTP 请求头
Content-Type application/json 始终为 JSON,UTF-8 编码
User-Agent PaperOffice-Webhook/1.0 用于防火墙允许列表的固定标识符
X-PaperOffice-Event document.processed 正在交付的事件类型
X-PaperOffice-Event-ID a3b7f9c1… 128 位唯一 ID。用于幂等性。
X-PaperOffice-Subscription-ID 42 接收事件的订阅 ID
X-PaperOffice-Signature sha256=… 原始主体的 HMAC-SHA256,十六进制编码
签名验证

使用 HMAC-SHA256 验证每次交付

使用您的共享密钥对原始请求主体计算 HMAC-SHA256,然后使用恒定时间比较(hash_equalscrypto.timingSafeEqual)与 X-PaperOffice-Signature 进行比较。

import crypto from 'crypto';
import express from 'express';
const app = express();

const WEBHOOK_SECRET = process.env.PAPEROFFICE_WEBHOOK_SECRET;

app.post('/webhooks/paperoffice', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.header('X-PaperOffice-Signature'); // "sha256=..."
  const eventId   = req.header('X-PaperOffice-Event-ID');
  const eventType = req.header('X-PaperOffice-Event');

  const expected = 'sha256=' + crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(req.body)
    .digest('hex');

  if (!signature || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
    return res.status(401).send('invalid signature');
  }

  const event = JSON.parse(req.body.toString());
  // eventId als Idempotency-Key speichern -> gleiche ID nicht zweimal verarbeiten
  console.log(eventType, event.data);
  res.status(200).send('ok');
});
重试和交付

三种重试策略,最多 10 次尝试

为每个订阅选择策略。每次尝试都会记录状态码、响应主体和计时。

linear

线性

固定增长:30 秒、60 秒、90 秒、120 秒、150 秒…

none

发送即忘。即使出现 5xx 错误也不重试。适用于测试钩子。

成功 在超时窗口内收到 HTTP 2xx 响应
最大重试次数 0–10 次尝试(默认 5 次)
超时 每次尝试 1,000–30,000 毫秒(默认 10,000)
交付日志 每次尝试均存储在 webhook_deliveries 中以便审计
管理 API

/latest/webhooks/ 下的 9 个端点

订阅、交付日志、一次性任务订阅和测试端点的完整 CRUD 操作 — 全部使用 OAuth2 Bearer 认证,全部支持 MCP。

POST /webhooks/subscribe 创建新订阅(每个账户数量不限) po_webhooks_subscribe
GET /webhooks/list 列出账户的所有订阅 po_webhooks_list
POST /webhooks/update 更新现有订阅 po_webhooks_update
POST /webhooks/delete 软删除订阅(保留交付日志) po_webhooks_delete
GET /webhooks/deliveries 检索带过滤条件的交付日志(event_type, success_only) po_webhooks_deliveries
POST /webhooks/test 发送 test.ping 事件以验证交付 po_webhooks_test
POST /webhooks/subscribe-job 针对特定 job_id 的一次性 Webhook po_webhooks_subscribe_job
GET /webhooks/job-subscriptions 列出任务范围的订阅 po_webhooks_job_subscriptions
GET /webhooks/info 可用事件、端点、重试策略、签名信息 po_webhooks_info
Enterprise 安全

设计加固

HMAC-SHA256

每个负载均使用您的密钥签名。必须进行恒定时间比较。

SSRF 防护

在订阅和分发时阻止私有/内部 IP、localhost 和云元数据端点。

DNS 重新绑定安全

在分发时重新验证 IP,通过 CURLOPT_RESOLVE 固定。

强烈推荐使用 HTTPS

接受 http 和 https。生产环境推荐使用 HTTPS。

事件 ID 幂等性

每次交付都携带唯一的 X-PaperOffice-Event-ID。请在您的系统进行去重。

完整审计跟踪

记录所有尝试:状态码、响应体、计时、错误消息。

限制

订阅数量无限,交付行为完全可配置

每个账户的订阅数
活跃的任务订阅
10,000 毫秒
默认超时
5
默认最大重试次数

适用于所有套餐。按使用量付费:每次成功交付 1 个积分(HTTP 2xx)。重试、测试事件和失败的交付免费。

立即开始

60 秒内创建您的第一个 Webhook

创建一个端点,通过 API 订阅,触发一个测试事件。就这么简单。

HMAC-SHA256 指数退避 完整审计跟踪