メインコンテンツへスキップ
21 CFR Part 11は、電子記録および電子サインを紙の記録および手書きの署名と同等のものとして承認する場合の基準を定めた、米国食品医薬品局 (FDA) の規制です。ライフサイエンス業界など、規制の対象となる業界の組織では、これらの要件をGxP (適正実施) コンプライアンスと呼んでいます。 Box Sign APIを使用すると、21 CFR Part 11署名リクエストと標準的な署名リクエストの両方を作成して管理できます。Boxウェブアプリだけでなく、独自のアプリケーションやBox Automateワークフロー、Box for Salesforce統合でも21 CFR Part 11の署名を要求できるようになりました。
Box Signにおける21 CFR Part 11のサポートには、GxP Validationが必要です。GxP Validationに加え、お客様はAPIを通じてcfr11リクエストを作成する前に、管理コンソールで特定のユーザーおよびグループに対して21 CFR Part 11を有効にする必要があります。詳細については、21 CFR Part 11コンプライアンスのサポートを参照してください。

リクエストフローの選択

リクエストが21 CFR Part 11フローと標準フローのどちらに従うのかは、request_flowフィールドによって決まります。このフィールドには以下の値を使用できます。
説明
cfr11リクエストは21 CFR Part 11フローに従って、関連する要件を適用します。
standardリクエストはBox Signの標準フローに従います。
リクエストを作成する際、request_flowフィールドは省略可能です。このフィールドを設定しない場合は、企業の管理者設定に基づいてデフォルト値が選択されます。アカウントにアクセス権限のない値を設定した場合は、APIから403 Forbiddenエラーが返されます。 また、request_flowフィールドは、署名リクエストやテンプレートを作成、取得する際、またはそれらのリストを取得する際にレスポンスで返されるため、各リクエストまたはテンプレートで使用されているフローを特定できます。

21 CFR Part 11リクエストの要件

request_flowcfr11の場合は、以下の要件が適用されます。
  • 署名者のログインが必須です。各署名者のlogin_requiredフィールドは常にtrueです。login_requiredfalseに設定すると、APIから400 Bad Requestエラーが返されます。
  • 署名の色は赤にできません。signature_colorredに設定すると、APIから400 Bad Requestエラーが返されます。代わりにblueblackを使用してください。
  • 各受信者には有効なフィールドが必要です。各受信者または受信者グループには、フィールドを1つも割り当てないか、必須の署名またはイニシャルフィールドを少なくとも1つ割り当てる必要があります。たとえば、テキストフィールドのみを含む21 CFR Part 11リクエストは作成できませんが、プレースホルダが1つもない21 CFR Part 11リクエストは作成できます。

21 CFR Part 11リクエストの作成

際は、request_flowcfr11に設定します。Boxがリクエストを検証する方法は、お客様がテンプレート、ソースファイル、またはその両方のいずれを指定するかによって異なります。

テンプレートから作成

テンプレートからリクエストを作成する場合は、template_idを渡してrequest_flowcfr11に設定します。Boxはリクエスト時に、テンプレートのプレースホルダが21 CFR Part 11の要件を満たしているかどうかを検証します。
cURL
curl -i -X POST "https://api.box.com/2.0/sign_requests" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "request_flow": "cfr11",
       "template_id": "123075213-af2c8822-3ef2-4952-8557-52d69c2fe9cb",
       "signers": [
         {
           "role": "signer",
           "email": "signer@example.com"
         }
       ],
       "parent_folder": {
         "type": "folder",
         "id": "234102987614"
       }
     }'
テンプレートに含まれているのが署名以外のフィールドのみの場合、リクエストは400 Bad Requestエラーで失敗します。エラーレスポンスを参照してください。

ソースファイルから作成

source_filesからリクエストを作成する場合は、テンプレートタグを使用して、ドキュメント内で直接、署名、イニシャル、その他のプレースホルダを定義します。Boxは、これらのプレースホルダをドキュメントの変換中に非同期的に抽出するため、リクエスト時にそれらを検証できません。そのため、ソースファイルから作成される21 CFR Part 11リクエストでは、is_document_preparation_neededフィールドが必須となります。設定する値に応じて、検証が実行されるタイミングが決まります。
is_document_preparation_needed検証が実行されるタイミング
trueリクエストの送信前に、Box Signの準備ページでドキュメントを確認するとき。
falseリクエストの送信後に、ドキュメントが非同期的に変換される間 (自動)。

送信前にドキュメントを確認

is_document_preparation_neededtrueに設定すると、レスポンスにはprepare_urlが含まれます。このURLをブラウザで開いて、リクエストの送信前にBox Signの準備ページでドキュメントを確認します。準備中に、Boxによって以下の処理が行われます。
  • 署名とイニシャルのプレースホルダを検証する。
  • それらのプレースホルダを、21 CFR Part 11の要件を満たすように自動的に調整する。
  • プレースホルダのサイズ変更があった場合は警告を表示し、送信前に変更内容を確認できるようにする。
準備ページでは、調整を受け入れてリクエストを送信することも、リクエストをキャンセルすることもできます。
cURL
curl -i -X POST "https://api.box.com/2.0/sign_requests" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "request_flow": "cfr11",
       "is_document_preparation_needed": true,
       "source_files": [
         {
           "type": "file",
           "id": "1358047520478"
         }
       ],
       "signers": [
         {
           "role": "signer",
           "email": "signer@example.com"
         }
       ],
       "parent_folder": {
         "type": "folder",
         "id": "234102987614"
       }
     }'

変換中に検証

is_document_preparation_neededfalseに設定すると、Boxはドキュメントの非同期変換中にプレースホルダを検証します。検証が失敗した場合は、以下のようになります。
  • リクエストはerror状態になり、error_codeフィールドがcfr11_validation_failedに設定されます。
  • Boxからリクエスト送信者に失敗を報告するメールが送信され、APIドキュメントが案内されます。
  • 21 CFR Part 11の要件を満たすようにファイルを修正し、新しいリクエストを送信する必要があります。

テンプレートとソースファイルから作成

template_idsource_filesの両方を渡すこともできます。この場合、ソースファイルによってテンプレートのドキュメントが上書きされる一方で、テンプレートのその他の情報 (署名者など) は、リクエストに関連付けられたままになります。Boxは、ソースファイルから作成する場合と同様にリクエストを検証するため、is_document_preparation_neededは必須です。

CFR Part 11のリクエストとテンプレートの読み取り

署名リクエストやテンプレートを取得したり、これらのリストを取得したりすると、レスポンスには、21 CFR Part 11のフローと署名の詳細を説明するフィールドが含まれます。
フィールド説明
request_flowStringリクエストまたはテンプレートで使用されているフロー (cfr11またはstandard)。
signers[].login_requiredBooleanrequest_flowcfr11の場合は常にtrue
signers[].inputs[].reason文字列、null許容入力のために取得された署名の理由。cfr11リクエストの署名フィールドやイニシャルフィールドなど、該当する入力にのみ設定されます。それ以外の入力にはnullが設定されます。
signers[].inputs[].is_validatedブール値、null許容署名者が入力について再認証を行ったかどうか。再認証が成功した後はtrue、署名者がフィールドに入力したものの、まだ再認証を行っていない場合はfalse、標準リクエストまたは適用対象外の入力の場合はnullになります。
次の例は、取得された21 CFR Part 11リクエストを示しています。
{
  "request_flow": "cfr11",
  "signers": [
    {
      "login_required": true,
      "inputs": [
        {
          "text_value": "John Doe",
          "type": "signature",
          "content_type": "signature",
          "page_index": 0,
          "read_only": false,
          "reason": "I read and approve this document",
          "is_validated": true
        }
      ]
    }
  ]
}
アカウントに対して21 CFR Part 11が有効になっていない場合でも、21 CFR Part 11リクエストまたはテンプレートへのアクセス権限があれば、そのリクエストまたはテンプレートの取得、リスト取得、キャンセル、再送信を行うことができます。Boxでテンプレートの使用権限が検証されるのは、テンプレートからリクエストを作成したときであり、テンプレートを取得したときではありません。

エラーレスポンス

21 CFR Part 11リクエストは、リクエスト時の検証が失敗した場合に、以下のエラーを同期的に返します。
シナリオステータス理由
cfr11リクエストのlogin_requiredfalseに設定されている。400invalid_parameter
cfr11リクエストのsignature_colorredに設定されている。400invalid_parameter
cfr11リクエストに、署名以外のフィールドのみが含まれている。400invalid_template
指定されたtemplate_idが存在しない。404not_found
指定されたtemplate_idを使用する権限がない。404not_found
指定されたrequest_flowへのアクセス権限がない。403forbidden_by_policy
たとえば、login_requiredfalseに設定すると、以下が返されます。
{
  "type": "error",
  "code": "bad_request",
  "status": 400,
  "message": "Bad request",
  "request_id": "122afdc1863c8713a175148aa614578ff",
  "context_info": {
    "errors": [
      {
        "name": "login_required",
        "message": "The 'login_required' field cannot be set to false when the request flow is 'cfr11'. Please ensure that 'login_required' is true for 'cfr11' requests.",
        "reason": "invalid_parameter"
      }
    ]
  }
}
Boxはドキュメントの変換中にプレースホルダを非同期的に抽出するため、テンプレートタグを使用してソースファイルから作成されたリクエストについて、プレースホルダエラーがリクエスト時に返されることはありません。この検証に失敗すると、リクエストはerror状態になり、error_codeフィールドがcfr11_validation_failedに設定されます。詳細については、変換中に検証を参照してください。

後方互換性

21 CFR Part 11のサポートがAPIに追加される前に作成された既存のリクエストとテンプレートは、自動的に分類されます。これらの項目については、Boxがユーザーの権限に基づいてrequest_flowの値を決定するため、古いリクエストとテンプレートは、取得時に有効なrequest_flowを返します。
最終更新日 2026年7月8日