非表示ジョブを完了する公開プレビュー
最初の非表示ジョブを完了する方法をご紹介します。
この例では、非表示ジョブを使用して顧客の個人データを非表示にします。これにより、Stripe API とダッシュボードでは、そのデータにアクセスできなくなります。
最初のジョブを作成し、テスト顧客を非表示にする
RedactionJob オブジェクトは、操作する主要なオブジェクトであり、すべての非表示リクエストを管理するための中核となる、抽象化オブジェクトです。RedactionJob オブジェクトを使用して、対象のオブジェクトを示し、それらが適格であることを確認してから、非表示を実行できます。
ジョブを作成すると、指定されたオブジェクトの非表示の適格性の確認が開始されます。Customer
オブジェクトの場合、非表示ジョブは、PaymentIntents、Charges、Subscriptions、Invoices、PaymentMethods、Notifications など、その顧客に関連するすべてのオブジェクトを識別します。これらのオブジェクトの中には、顧客が購入したり、または支払いの詳細を追加したりできる頻度に直接関連する、何百ものレコードが含まれる場合があります。
同じ顧客が所有するオブジェクトに追加の ID を指定できますが、明示的に定義する必要はありません。新しいジョブごとに非表示にするオブジェクト識別子は 10 個に制限されています。
テストデータを使用して顧客を設定する
非表示ジョブを作成する前に、まずテスト環境でテスト顧客を作成します。Stripe ダッシュボードに移動し、顧客を追加 をクリックして、いくつかのテスト情報をダイアログに入力します。顧客を作成したら、cus_
ID をコピーします。
Stripe ダッシュボードまたは API を使用して、Stripe の実装で使用する追加オブジェクト (PaymentIntents
、Charges
、PaymentMethods
、継続的な Subscriptions
など) を作成できます。この Customer
オブジェクトに対して、基本的な未確定の PaymentIntent
を以下のように作成します。
詳細については、Payment Intents の導入ガイドをご覧ください。
この最初の実行では、後でジョブのケイパビリティを示すために、この PaymentIntent を未完了のままにします。ダッシュボードで顧客を表示すると、以下のように表示されます。

ダッシュボードでの未確定の支払い
非表示ジョブを作成する
編集可能なオブジェクトがいくつか追加された Customer が作成されたので、テスト顧客 ID を使用して非表示ジョブを作成します。リクエストは次のようになります。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "validating", "validation_behavior": "error" }
デフォルトでは、validation_
は error
に設定されています。これは設定可能であり、詳細についてはガイドの次のステップで説明します。
非表示ジョブオブジェクトを表示する
ジョブのステータスが変わると、Stripe は Webhook を送信します。Stripe ダッシュボードで Webhook イベントを表示できます。詳細については、Webhook のドキュメントをご覧ください。
非表示ジョブの取得を使用して、ジョブのステータスを確認することもできます。
ジョブのステータスが validating
と表示されます。これは、指定されたオブジェクトと関連オブジェクトが非表示の対象となるかどうかの確認を、ジョブが現在行っていることを意味します。このプロセスは、指定されたオブジェクトに関連するオブジェクトの数によっては、時間がかかる場合があります。
ジョブでエラーや制限が見つからなかった場合、ステータスは ready
に変わります。それ以外の場合は、failed
に変わります。
すでに PaymentIntent を作成していて、それを未完了のままにしていた場合、ステータスは failed
になります。
検証エラーを確認する
ジョブが失敗した場合は、検証エラーエンドポイントを使用してエラーのリストを確認できます。以前に作成した未完了の PaymentIntent から、以下のレスポンスが表示されます。
{ "object": "list", "data": [ { "id": "prjve_123", "object": "privacy.redaction_job_validation_error", "code": "invalid_state", "erroring_object": { "id": "pi_123", "object_type": "payment_intent" }, "message": "PaymentIntent is not finalized. Confirm or cancel the payment intent." } ], "has_more": false, "url": "/v1/privacy/redaction_jobs/:job/validation_errors" }
エラーメッセージには、オブジェクトを非表示にできない理由が示されます。これらの制約は、オブジェクトの編集をサポートできるかどうかと、製品の動作が混在しています。一部のオブジェクトを非表示にすると、結果が異なる場合があるため、オブジェクトを非表示にする前に、ユーザー側で何らかのアクションを実行する必要があります。この例では、Stripe API またはダッシュボードを使用して、支払いインテントを確定またはキャンセルすることで、必要なアクションを実行できます。ユースケースによっては、顧客のデータを保持するビジネス上の理由がない場合は、非表示ジョブの検証動作を使用して、推奨される修正プログラムを自動的に適用できます。
検証の動作
検証動作には、error
と fix
の 2 つのモードがあります。モードは次のように更新できます。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "failed", "validation_behavior": "fix" }
必要に応じて、以下を使用して validation_
を error
に戻すこともできます。
検証動作を設定しても、構成が変更されるだけで、それ以外は何も変更されません。修正アクションは、ジョブの実行時に適用されます。修正検証は破壊的な動作として扱います。修正のリストと適用される修正内容を確認できます。
非表示ジョブを再度検証する
ジョブが検証に失敗した場合、そのジョブは failed
ステータスのままになります。validation_
または手動による変更によってすべての検証エラーに対処した後、ジョブを検証します。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "validating", "validation_behavior": "fix" }
PaymentIntent の例では、検証動作を修正すると、検証エラーが解決されます。他の Stripe プロダクトでオブジェクトを非表示にする場合は、ステップを繰り返して検証エラーを確認します。このエラーはすべて解決され、ジョブのステータスが ready
になります。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "ready", "validation_behavior": "fix" }
非表示ジョブを実行する
ジョブが ready
ステータスになったら、実行できます。これにより、ジョブは redacting
ステータスになります。これ以上の対応は必要ありません。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "redacting", "validation_behavior": "fix" }
検証が完了すると、ステータスが succeeded
に移行します。
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "succeeded", "validation_behavior": "fix" }
ダッシュボードと API で非表示となった関連オブジェクトも表示されます。
{ "id": "cus_xxx", "object": "customer", "deleted": true }
{ "id": "pi_xxx", "object": "payment_intent", "amount": 999, ... "amount_received": 999, ... "confirmation_method": "automatic", "created": 1234567890, "currency": "usd", "customer": "cus_xxx", "description": "[redacted]", "last_payment_error": null, "latest_charge": "ch_xxx", ... "payment_method": "pm_xxx", "payment_method_configuration_details": { "id": "pmc_xxx", "parent": null }, ... }
非表示ジョブをキャンセルする
検証後、非表示前の任意の時点で、ジョブをキャンセルしてすべての変更を破棄できます。一度に任意のオブジェクトと対話できるジョブは 1 つだけであるため、同じオブジェクトを直接または暗黙的に編集する複数のジョブを作成すると、後のジョブでエラーが発生します。任意のジョブをキャンセルすると、オブジェクトが解放され、他のジョブがオブジェクトを再び編集できるようになります。
PaymentIntent を使用したサンプルジョブはすでに実行されているため、そのジョブをキャンセルすることはできません。これをテストするには、次のように新しい非表示ジョブを作成してキャンセルします。
「このオブジェクトは別のアクティブなジョブによって処理されています」という検証エラーが発生した場合は、そのジョブをキャンセルすることでオブジェクトを解放できます。
顧客を検索する
個人に関連する情報を非表示にするには、関連付けられている Customer
オブジェクト ID を特定します。これは、Customer Search エンドポイント、ダッシュボードの顧客ページ、またはページの上部にあるダッシュボードの検索バーを使用して確認できます。
顧客が見つかったら、ID をコピーします。ダッシュボードを使用している場合は、顧客 ID のすぐ下をクリックしてコピーできます。