API 電子署名:開発者向けRESTガイド 2026
ビジネスアプリケーションへの電子署名APIの統合は、これまで以上に戦略的になっています。本開発者向けガイドは、認証、ウェブフック、eIDAS準拠について、Aから Zまでカバーしています。
更新日
Certyneo チーム
ライター — Certyneo · Certyneo について

はじめに
電子署名のREST API統合は2026年には開発チームにとって欠かせない前提条件となっています。ヨーロッパ企業の73%以上が少なくとも1つの契約プロセスをデジタル化している中(出典:IDC European Digital Transformation Report 2025)、堅牢な技術統合への需要は急増しています。LegalTech SaaS、ERP、あるいはHRプラットフォームを構築するにせよ、電子署名APIの利用方法 —認証OAuth2、Webhook管理、eIDAS準拠 — が文書フローの品質と法的価値を直接左右します。本開発者向けRESTガイドでは、アーキテクチャ、認証、文書のライフサイクル、リアルタイムWebhook、セキュリティのベストプラクティスまで、ステップごとに解説します。
---
電子署名RESTAPIのアーキテクチャ
RESTfulの原則とエンドポイント構造
よく設計された電子署名RESTAPIは、明確に識別されたリソースと意味の通ったHTTP動詞に基づいて構築されています。基本的なリソースは通常次のとおりです:
- `/documents`— PDF/DOCX文書のアップロード、管理、取得
- `/signature-requests`— 署名リクエストの作成と管理
- `/signatories`— 署名者とその本人確認情報の管理
- `/audit-trails`— 証明された監査ログの取得
- `/templates`— 再利用可能な文書テンプレートの管理
各リソースは標準的なCRUDエンドポイント(`GET`、`POST`、`PUT`、`PATCH`、`DELETE`)を提供し、`200 OK`、`201 Created`、`400 Bad Request`、`401 Unauthorized`、`422 Unprocessable Entity`、`429 Too Many Requests`といった標準化されたHTTPステータスコードを伴うJSONレスポンスを返します。
見落とされがちな重要な点として、ページネーション管理が挙げられます。成熟したAPIはoffset/limit方式よりもcursor-basedパターンを採用しており、数千件規模の署名済み文書であっても安定したパフォーマンスを保証します。対象のAPIが`X-Next-Cursor`ヘッダーまたはボディ内の`next_page_token`フィールドを提供しているか確認してください。
APIのバージョニングと後方互換性
バージョニングは、インテグレーターにとって特に注意すべき重要なポイントです。2026年における主流の2つのアプローチは次のとおりです:
- URLによるバージョニング: `https://api.certyneo.com/v2/signature-requests` — 可読性が高く、CDNによるキャッシュも可能で、B2B向けAPIに推奨されます。
- ヘッダーによるバージョニング: `Accept: application/vnd.certyneo.v2+json` — アーキテクチャ的にはより洗練されていますが、視認性は低くなります。
以下を確約する最低12ヶ月の非推奨化ポリシーを掲げ、公開の変更履歴(チェンジログ)を公表しているプロバイダーを優先してください。署名フローにおける予告なき互換性の断絶は、契約未署名や期限逸失といった直接的な法的リスクを招く可能性があります。
---
OAuth2認証とAPI呼び出しのセキュリティ
OAuth2:client_credentialsフローとauthorization_codeフローの比較
認証は、あらゆる電子署名API統合の基盤となる要素です。開発者にとって最も重要な2つのOAuth2フローは次のとおりです:
Client Credentials Flow(M2M — Machine to Machine) : ``` POST /oauth/token Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET &scope=documents:write signature_requests:write audit_trails:read ``` このフローは、サーバー間統合に最適で、認証にエンドユーザーが一切関与しない場合(バッチ処理や契約の自動化など)に適しています。
Authorization Code Flow + PKCE: アプリケーションが識別済みのエンドユーザーに代わって動作する場合に推奨されます。PKCE(Proof Key for Code Exchange)はRFC 7636以降必須とされ、傍受攻撃を防止します。
重要なセキュリティ上の注意点:
- `client_secret`は安全なvault(HashiCorp Vault、AWS Secrets Manager)— 暗号化されていない環境変数には決して保存しない
- 以下を実装してください:トークンの自動ローテーション(有効期限の60秒前にバッファを設ける)
- きめ細かいスコープを使用する:厳密に必要な権限のみを要求する
APIキーの管理とレート制限
軽量な連携やテスト環境向けに、一部のAPIでは静的APIキー (ベアラートークン)が提供されています。これらを本番環境で使用する場合は、以下を必ず適用してください:
- APIキーの四半期ごとのローテーション
- IPによる制限(許可リスト)
- SIEMによる異常な呼び出しの監視
レート制限は避けて通れない現実です:署名APIは通常、プランに応じて1分あたり100~1000回のコール制限を設けています。ジッターを伴う指数バックオフによるリトライの仕組みを実装してください:``` retry_delay = base_delay * (2^attempt) + random_jitter ``` `429 Too Many Requests` とともに返される `Retry-After` ヘッダーを厳格に遵守してください。
---
API経由での署名リクエストのライフサイクル
署名リクエストの作成と設定
REST API経由の署名リクエストのライフサイクルは、状態遷移の図式(`draft` → `pending` → `in_progress` → `completed` | `declined` | `expired`)に従います。以下に技術的な手順を詳しく説明します:
ステップ1 — 文書のアップロード:``` POST /v2/documents Content-Type: multipart/form-data
file=@contrat.pdf ``` レスポンス:`{ "document_id": "doc_a1b2c3", "checksum_sha256": "e3b0c442..." }`
ステップ2 — リクエストの作成:```json POST /v2/signature-requests { "document_id": "doc_a1b2c3", "name": "Contrat de prestation Q3 2026", "signatories": [ { "email": "signataire@client.fr", "first_name": "Marie", "last_name": "Dupont", "signature_level": "advanced", "fields": [{ "type": "signature", "page": 3, "x": 120, "y": 680 }] } ], "expiry_date": "2026-06-05T23:59:59Z", "reminder_settings": { "enabled": true, "frequency_days": 3 } } ```
ステップ3 — 有効化:`POST /v2/signature-requests/req_x9y8z7/activate`
有効化が行われると、署名者に招待状が送信され、リクエストは `in_progress` 状態に移行します。
署名済み文書と監査証跡の取得
`completed` ステータスに達すると(次のセクションで説明するウェブフックで検知可能)、以下を取得してください:
``` GET /v2/signature-requests/req_x9y8z7/document/signed → 電子署名が埋め込まれた署名済みPDF(ETSI EN 319 132に準拠したPAdES-B-T)
GET /v2/signature-requests/req_x9y8z7/audit-trail → 認証済み監査ログのPDF(RFC 3161準拠の適格タイムスタンプ)```
この2つのファイルは常にGEDまたはDMSに一緒に保管してください。監査ログは、法的紛争が生じた場合に対抗できる証拠となります。
---
ウェブフック:リアルタイムイベントとエラー管理
ウェブフックの設定とセキュリティ確保
ウェブフックは、コストのかかるポーリングを、応答性の高いイベント駆動型アーキテクチャへと変えてくれます。ウェブフックのエンドポイントを設定してください:
``` POST /v2/webhooks { "url": "https://votre-app.com/hooks/certyneo", "events": [ "signature_request.completed", "signature_request.declined", "signatory.signed", "signature_request.expired" ], "secret": "whsec_votre_secret_hmac" } ```
HMACによるセキュリティ確保は必須です:`X-Certyneo-Signature` ヘッダーで計算されたHMAC-SHA256署名と比較して、受信するすべてのペイロードを検証してください:```python import hmac, hashlib
def verify_webhook(payload: bytes, secret: str, signature_header: str) -> bool: expected = hmac.new( secret.encode(), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(f"sha256={expected}", signature_header) ```決して従来の文字列比較——タイミング攻撃に対して脆弱です。
冪等性と再送処理
Webhookは、エンドポイントのタイムアウトや5xxエラー発生時に再送される場合があります。必ず冪等性を実装してください:
- 各Webhookペイロードから一意の`event_id`を抽出する
- この`event_id`がすでに処理済みかどうかをデータベースで確認する
- 無限の再送を避けるため、(重複であっても)即座に`200 OK`を返す
- ビジネスロジックは非同期で処理する(キュー:Redis、RabbitMQ、SQS)
黄金律:Webhookエンドポイントは5秒以内に応答する必要があります。メール送信、文書管理システムへのアーカイブ、ERP通知などの重いビジネス処理は、すべて非同期ワーカーに委譲する必要があります。
APIで利用可能な署名レベルについての理解を深めるには、当社の電子署名完全ガイドをご覧ください。簡易電子署名、高度電子署名、適格電子署名の違いについて詳しく解説しています。
---
統合とパフォーマンスのベストプラクティス
サンドボックス環境とテスト戦略
信頼できる電子署名APIは必ずサンドボックス環境を本番環境とは別に提供しています。以下のテスト戦略を採用してください:
- 単体テスト:ネットワークに依存せずビジネスロジックを検証するため、APIレスポンスをモック化する(Wiremock、MSWなど)
- 統合テスト:実際のサンドボックスに対して実行し、完全なライフサイクル(作成→署名→取得)を検証する
- 負荷テスト:本番稼働前にボトルネックを特定するため、同時リクエストのピークをシミュレートする
- カオステスト:リトライロジックを検証するため、タイムアウトや5xxエラーをシミュレートする
本番環境で絶対に実際の署名者IDを使ってテストしないでください。サンドボックスで作成された電子署名には法的効力がなく、これはテストにおいてまさに望ましい状態です。
モニタリング、可観測性、アラート
本番環境では、以下を用いて統合を計測してください:
- メトリクス:API呼び出しの成功率、p95/p99レイテンシ、エンドポイント別エラー率
- 分散トレーシング:プロバイダーのAPIログとログを関連付けるため、ヘッダーに`trace-id`を伝播させる
- アラート:エラー率が1%を超えた場合、またはp99レイテンシが3秒を超えた場合にアラートを発報する
こちらの電子署名ソリューション比較をご覧いただき、各プロバイダーが提供する可用性SLA(アップタイム)を評価してください——これはAPI統合の際にしばしば過小評価される基準です。
他のプラットフォームから移行する場合は、DocuSignやYouSignからCertyneoへの移行方法に関する当社のガイドが、API移行の技術的側面や既存Webhookとの互換性について解説しています。
統合の投資対効果(ROI)を見積もるには、こちらの電子署名ROI計算ツールをご利用ください。API経由の自動化による生産性向上効果も反映されています。
最後に、署名対象文書の自動生成についてさらに詳しく知りたい場合は、こちらのAIによる契約書生成ツールは、当社のREST APIとネイティブに連携します。
電子署名APIに適用される法的枠組み
電子署名APIの統合は技術的な課題だけに留まりません。それは複数の基本的な法規に関して、編集者とその顧客の法的責任を直接的に問うものです。
eIDAS規則第910/2014号およびeIDAS2.0
規則(EU)第910/2014号(eIDAS)は、欧州連合における電子署名の法的枠組みを定めています。これは3つのレベルを区別しています:
- 簡易電子署名(SES):法的効力は最小限で、リスクの低い行為に適している
- advanced electronic signature(AES):署名者と一意に結び付けられ、署名者が排他的に管理するデータから作成される — eIDAS第26条
- qualified electronic signature(QES):EU全域において手書き署名と同等の効力を持つ — eIDAS第25条第2項
段階的に適用が開始されるeIDAS2.0規則(規則(EU)2024/1183)に伴い、開発者は欧州デジタルID ウォレット(EUDIW)の統合を認証フローに見据える必要があります。詳細な技術的影響については、当社のeIDAS2.0ガイドをご参照ください。
フランス民法典 — 第1366条および第1367条
フランス法においては、民法典第1366条が「電子的な文書は、その発信者を適切に特定でき、かつその完全性を保証する条件で作成・保存されている限り、紙の文書と同等の証明力を有する」と定めています。
第1367条は、信頼性のある電子署名の条件、すなわち署名者の識別と文書の完全性の保証について規定しています。これらの要件は技術的には、認証された監査ログと本人確認証跡の保存義務として具体化されます。これらはAPIが提供し、貴社が保存すべき要素です。
ETSI EN 319 132規格 — PAdES
eIDAS準拠のPDF署名に必須の技術フォーマットはPAdES(PDF Advanced Electronic Signatures)であり、ETSI EN 319 132規格によって定義されています。貴社のAPIは、最低限PAdES-B-T(qualified timestamp付き)の署名を生成する必要があり、長期的な有効性(10年以上のアーカイブ)を保証するためにはPAdES-B-LTまたはPAdES-B-LTAが求められます。
GDPR第2016/679号 — 署名者データ
署名プロセス中に収集される個人データ(氏名、メールアドレス、IPアドレス、AES/QESにおける本人確認データ)は、GDPRの対象となる個人データに該当します。データ管理者または処理者としての貴社の義務には、以下が含まれます:
- 妥当な保存期間を定めること(通常は時効期間に合わせる:一般法において5年)
- APIを通じた自動削除の仕組みを設けること(`DELETE /v2/signature-requests/{id}/personal-data`)
- 処理内容を貴社の処理活動記録に文書化すること(GDPR第30条)
- 署名API提供者とのDPA(Data Processing Agreement)を締結すること
NIS2指令とサービス継続性
適格ソフトウェア編集者にとって重要事業体または基幹事業体(NIS2指令(2022/2555)にいう)サードパーティAPIの統合は、デジタルサプライチェーンのリスク分析に文書化すべき依存関係を生み出します。APIプロバイダーにはSOC 2 Type II認証と稼働率99.9%以上のSLAを求めてください。
利用シナリオ:電子署名APIの実践
シナリオ1 — 製造業中小企業におけるサプライヤー契約の自動化
年間約200件のサプライヤー契約を扱う製造業の中小企業では、紙のやり取りや督促作業に総務担当者の月2日分の工数がかかっており、これを解消したいと考えていました。開発チームは、以下のフローで電子署名REST APIを自社の基幹ERPに直接統合しました。
- ERP上で発注書が承認されると、`POST /v2/signature-requests` が自動的に呼び出される
- 生成されたPDF契約書がアップロードされ、登録されたサプライヤー担当者に署名依頼が送信される
- `signatory.signed` Webhookにより、発注書のステータスがリアルタイムで更新される
- 署名済み文書と監査ログが、2回目のAPI呼び出しを通じてDMSへ自動的にアーカイブされる
観測された成果(KPMG/IDCの2024〜2025年業界レポートに基づく範囲値):平均署名リードタイムが8日間から24時間未満に短縮、督促にかかる事務時間が60〜70%削減、書類紛失ゼロを達成。
シナリオ2 — 法律事務所向けリーガルテックプラットフォーム
5〜30名規模の法律事務所向けSaaSソリューションを開発するソフトウェア会社は、事務所インターフェース上から委任状、報酬契約書、訴訟手続書類に直接署名できるよう、電子署名APIを統合しました。
採用された技術アーキテクチャでは、OAuth2 Authorization Code + PKCEフローを用いることで、各弁護士が自分自身の名義で署名依頼を認証できるようにしています。`signature_request.completed` Webhookは、署名済み文書を法務向けGEDシステムの顧客フォルダへ自動的に保存する処理をトリガーします。
このソフトウェア会社が特に評価したのは、advanced electronic signature(AES)がAPI経由で利用可能である点でした——これは、全国弁護士会(Conseil National des Barreaux)の勧告により報酬契約に求められる水準です。初期統合の開発期間は、シニアのバックエンド開発者1名でおよそ3週間、テストカバレッジは85%に達しました。
シナリオ3 — 民間クリニックグループにおけるデジタルオンボーディング
約600床規模の民間クリニックグループは、これまで受付で印刷・手書き署名していたインフォームドコンセント同意書や入院契約書のペーパーレス化を進める必要がありました——これにより年間数千ユーロ規模の印刷コストと、受付での待ち時間が発生していました。
API統合により、病院情報システム(SIH)と電子署名プラットフォームが接続されました。患者登録時にSIHがAPIを呼び出し、患者と担当医の複数者による署名依頼を作成し、テンプレートのメタデータから算出された署名欄の自動配置を行います。
GDPR(一般データ保護規則)への準拠のため、スケジュール化された自動データ消去処理をAPI経由(`PATCH /v2/signature-requests` +削除確認Webhook)で実装し、医療記録の法定保存期間(公衆衛生法典第R.1112-7条により成人の場合20年間)に合わせました。測定された成果としては、受付での待ち時間が80%削減、印刷・スキャンコストが40%削減されました。
よくある質問
API統合における簡易署名・高度署名・適格署名の違いは何ですか?
eIDAS規則は署名を3つの水準に区分しています。簡易署名(simple signature)はメールアドレスのみに依拠します。高度署名(advanced signature)は、より厳格な署名者本人確認と、暗号化による文書の完全性保証を要求します。最も高い水準である適格署名(qualified signature)は、適格な信頼サービス提供者(プロバイダー)が発行する証明書を必要とします。APIにおいては、これは各リクエストに渡される`signature_level`パラメータとして具体化され、サーバー側で実行される本人確認の内容を左右します。
REST API経由で署名された文書は、フランス法上どのような法的効力を持ちますか?
フランス法では、民法典第1366条により、電子署名は署名者の特定と文書の完全性が保証される限り、手書き署名と同等の効力を持つと認められています。認証されたタイムスタンプと監査証跡(audit trail)が、紛争発生時の主要な証拠となります。監査ログ、SHA-256ハッシュ値、同意に関するメタデータを適切にアーカイブするAPI統合であれば、使用する言語やフレームワークを問わず、これらの要件を満たします。
電子署名APIから受信するWebhookを、偽造リクエストから守るにはどうすればよいですか?
署名APIから送信されるWebhookは、処理前に必ず検証する必要があります。標準的な方法は、専用ヘッダー(多くの場合`X-Webhook-Signature`)に含まれるHMAC-SHA256署名を、リクエストの生ボディと共有シークレットからサーバー側で再計算したハッシュ値と比較することです。また、リプレイ攻撃を防ぐため、ペイロードに埋め込まれたタイムスタンプを検証し、許容範囲(通常5分)を超えたリクエストを拒否する必要があります。
署名APIを経由する署名者の個人データは、GDPRに準拠していますか?
GDPRは、氏名、メールアドレス、IPアドレスなどの個人データが処理される時点で適用されます。開発者としては、GDPR第28条にいう処理者(sous-traitant)に該当し、APIプロバイダーも同様に処理者となります。データがEU域内でホストされているか、あるいは適切な保護措置の対象となっていること、保存期間が契約上明確に定められていること、そしてプロバイダーとのDPA(データ処理契約)が本番稼働前に締結されていることを必ず確認してください。
業務フローを止めずに、署名依頼の有効期限切れをどう管理すればよいですか?
依頼が`expiry_date`に達すると、そのステータスは`expired`となり、それ以降の署名は受け付けられなくなります。業務が滞らないようにするには、`signature_request.expired` Webhookイベントを監視し、新しい文書での新規依頼の作成、またはAPIが対応していれば`PATCH`エンドポイント経由での延長といった督促ロジックを自動的にトリガーすることが推奨されます。監視システムで有効期限を積極的に監視することで、契約上の中断リスクを減らせます。
結論
2026年に電子署名REST APIを統合するには、堅牢なRESTfulアーキテクチャ、安全なOAuth2認証、Webhookによるイベント管理、そしてeIDASおよびGDPRへの準拠という複数の要素を同時に習得する必要があります。統合設計の段階からこれらの課題を見据えて対応する開発者は、コストのかかる作り直しや重大な法的リスクを回避できます。
押さえるべき3つの柱:API呼び出しの安全性を確保する(OAuth2+最小限のスコープ+vault)、非同期かつべき等な方法でイベントを処理する(Webhook経由)、そして常にアーカイブすること——署名済み文書を、認証された監査ログとともに保存します。
Certyneoは、eIDASに準拠したドキュメント完備のREST APIを、無料サンドボックスと開発者向け専任テクニカルサポート付きで提供しています。Certyneoのアカウントを作成することで、サンドボックス用APIキーを取得し、今すぐ統合を開始できます。
チュートリアル — API・連携の記事をさらに読む
関連する記事で知識を深めましょう。

