サイトマップ
日本語
EUR €
新着
Claude & ChatGPT — スーパーチャージド。
全ドキュメント · 409+ AIツール · 30秒セットアップ
Claude· ChatGPT· Cursor· Gemini· +50
今すぐ接続
プラットフォーム
50以上のAIモジュールとツール
ソリューション
業界、プロセス、リスク
開発者
API、SDK、ドキュメント
リソース
チュートリアル、ブログ、サポート
会社
チーム、パートナー、採用
価格
ウェブフック

ウェブフック リアルタイムイベント

すべてのドキュメント、ジョブ、ワークスペース、タスクのイベントに対する 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 のエイリアス(互換性用)
  • ドキュメントが処理されました OCR/IDP パイプラインが正常に完了しました
  • ドキュメントが編集されました メタデータ、タグ、またはコンテンツが更新されました
  • ドキュメントが削除されました ドキュメントがゴミ箱に移動されました
  • ドキュメントが復元されました ドキュメントがゴミ箱から復元されました
  • document.moved ドキュメントがワークスペース間で移動されました
  • ドキュメントのバージョンが作成されました 既存のドキュメントに新しいバージョンが追加されました
  • ドキュメント.ライフサイクル_変更 保持/アーカイブステータスが変更されました
  • ドキュメント.コメント_追加 ドキュメントにコメントが投稿されました
  • ドキュメント.メモ_追加 内部メモが添付されました
  • ドキュメント.タグ_追加 ドキュメントにタグが割り当てられました
  • ドキュメント.法的保持_設定 法的保持が有効化されました(不変)
  • ドキュメント.法的保持_解除 法的保持が解除されました

ジョブ

3
  • ジョブ.完了 非同期ジョブが正常に完了しました
  • ジョブ.失敗 非同期ジョブが致命的なエラーで失敗しました
  • ジョブ.進行 長時間実行されるジョブ中の進捗更新

ワークスペース

2
  • ワークスペース.共有 ワークスペースがユーザーまたはチームと共有されました
  • ワークスペース.共有_解除 ワークスペースへのアクセスが取り消されました

タスク

3
  • タスク.作成 新しいタスクが作成されました
  • タスク.完了 タスクが完了としてマークされました
  • タスク.期限切れ タスクが期限を過ぎました

["*"] を購読すると、アカウントのすべてのイベントを受信できます。

ペイロードとヘッダー

すべての配信は同じスキーマに従います

予測可能な JSON ボディ、5 つの署名済み 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 ドキュメント.処理済み 配信されるイベントタイプ
X-PaperOffice-Event-ID a3b7f9c1… 128 ビット固有 ID。冪等性に使用します。
X-PaperOffice-Subscription-ID 42 イベントを受信するサブスクリプションの ID
X-PaperOffice-Signature sha256=… 生ボディの HMAC-SHA256、16 進数エンコード
署名検証

すべての配信を 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');
});
再試行と配信

3 つの再試行戦略、最大 10 回の試行

サブスクリプションごとにポリシーを選択します。すべての試行は、ステータスコード、レスポンスボディ、タイミングとともにログ記録されます。

linear

線形

固定成長:30 秒、60 秒、90 秒、120 秒、150 秒…

none

なし

送信して終了。5xx エラーでも再試行しません。テスト用フックに有用です。

成功 タイムアウトウィンドウ内での HTTP 2xx
最大再試行回数 0~10 回(デフォルトは 5 回)
タイムアウト 1 試行あたり 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
デフォルトの最大再試行回数

すべてのプランで利用可能。従量課金:成功した配信(HTTP 2xx)あたり 1 クレジット。再試行、テストイベント、失敗した配信は無料です。

今すぐ開始

60 秒で最初の Webhook を作成

エンドポイントを作成し、API でサブスクライブし、テストイベントを発火させる。それだけです。

HMAC-SHA256 指数関数的バックオフ 完全な監査証跡