# Entfernungsauftrag abschließen Erfahren Sie, wie Sie Ihren ersten Entfernungsauftrag ausführen können. In diesem Beispiel werden Entfernungsaufträge verwendet, um die persönlichen Daten eines Kunden/einer Kundin zu schwärzen. Dadurch wird Ihr Zugriff auf diese Daten in der Stripe API und im Dashboard entfernt. ## Ersten Auftrag erstellen und Testkunden/Testkundin schwärzen Das [RedactionJob](https://docs.stripe.com/api/privacy/redaction-job.md)-Objekt ist das primäre Objekt, mit dem Sie interagieren, und die zentrale Abstraktion zur Verwaltung aller Entfernungsanfragen. Sie können das RedactionJob-Objekt verwenden, um Objekte von Interesse anzugeben, sie zu überprüfen, um sicherzustellen, dass sie zulässig sind, und dann die Schwärzung auszuführen. ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs \ -u "<>:" \ -d "objects[customers][]=cus_1xx" \ -d "objects[customers][]=cus_2xx" ``` Nachdem Sie einen Auftrag erstellt haben, wird mit der Überprüfung der Eignung der bereitgestellten Objekte für die Entfernung begonnen. Bei `Customer`-Objekten identifiziert der Entfernungsauftrag alle mit diesem Kunden/dieser Kundin verbundenen Objekte, einschließlich PaymentIntents, Zahlungen, Abonnements, Rechnungen, PaymentMethods, Benachrichtigungen usw. Einige dieser Objekte können Hunderte von Datensätzen aufweisen, die direkt damit korrelieren, wie häufig ein Kunde/eine Kundin Einkäufe tätigen oder Zahlungsdetails hinzufügen kann. Sie können zwar zusätzliche Kennungen für Objekte angeben, die demselben Kunden/derselben Kundin gehören, müssen diese jedoch nicht explizit definieren. Wir haben ein Limit von 10 Objektkennungen, die in jedem neuen Auftrag geschwärzt werden müssen. ## Einen Kunden/Eine Kundin mit Testdaten einrichten Bevor Sie eine Schwärzung erstellen, legen Sie zunächst eine Testkundin/einen Testkunden in einer Sandbox an. Gehen Sie dazu zum [Stripe-Dashboard](https://dashboard.stripe.com/test/customers), klicken Sie auf **Kundin/Kunden hinzufügen** und füllen Sie einige Testinformationen im Dialogfeld aus. Nachdem Sie die Kundin/den Kunden erstellt haben, kopieren Sie die `cus_`‑ID. Sie können das Stripe-Dashboard oder die API verwenden, um zusätzliche Objekte zu erstellen, die Ihre Stripe-Integration verwendet, z. B. `PaymentIntents`, `Charges`, `PaymentMethods`, wiederkehrende `Subscriptions` usw. Wir erstellen einen grundlegenden, nicht bestätigten `PaymentIntent` für dieses `Customer`-Objekt wie folgt: ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "objects[amount]=999" \ -d "objects[currency]=usd" \ -d "objects[customer]=ADD_CUS_ID_HERE" \ -d "objects[description]=Test charge" ``` Weitere Informationen finden Sie im [Integrationsleitfaden für PaymentIntents](https://docs.stripe.com/payments/payment-intents.md#creating-a-paymentintent). Bei dieser ersten Ausführung lassen Sie diesen PaymentIntent unvollständig, um später eine Funktion des Auftrags nachzuweisen. Wenn Sie den Kunden/die Kundin im Dashboard anzeigen, sehen Sie in etwa Folgendes: ![Nicht bestätigte Zahlung im Dashboard](https://b.stripecdn.com/docs-statics-srv/assets/payment-in-dashboard.67647e73eec0ab69a78848e01b057293.png) Nicht bestätigte Zahlung im Dashboard ## Einen Entfernungsauftrag erstellen Nachdem Sie nun eine Kundin/einen Kunden mit einigen zusätzlichen zu schwärzenden Objekten haben, erstellen Sie einen Entfernungsauftrag mit der Test-Kunden-ID. Die Anfrage sieht folgendermaßen aus: ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs \ -u "<>:" \ -d "objects[customers][]=ADD_CUS_ID_HERE" ``` ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false,"status": "validating", "validation_behavior": "error" } ``` Standardmäßig ist `validation_behavior` auf `error` festgelegt. Dies ist konfigurierbar und weitere Details finden Sie in den nächsten Schritten des Leitfadens. ## Anzeigen des Entfernungsauftrags-Objekts Wenn sich der Status eines Auftrags ändert, sendet Stripe einen Webhook. Sie können [Webhook-Ereignisse](https://dashboard.stripe.com/test/events) im Stripe-Dashboard anzeigen. Weitere Details finden Sie in der [Webhook-Dokumentation](https://docs.stripe.com/webhooks.md#webhook-endpoint-def). Sie können auch [Entfernungsauftrag abrufen](https://docs.stripe.com/api/privacy/redaction-job/retrieve.md) verwenden, um den Status des Auftrags zu überprüfen: ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx \ -u "<>:" ``` Der Auftrag befindet sich im Status `validating`. Das bedeutet, dass der Auftrag derzeit prüft, ob das bereitgestellte Objekt und zugehörige Objekte geschwärzt werden können. Dieser Vorgang kann einige Zeit in Anspruch nehmen, je nachdem, wie viele Objekte mit dem angegebenen Objekt verknüpft sind. Wenn der Job keine Fehler oder Einschränkungen findet, wechselt der Status zu `ready`. Andernfalls ändert sich der Status in `failed`. Wenn Sie den PaymentIntent zu einem früheren Zeitpunkt erstellt und als unvollständig belassen haben, wird der Status `failed` angezeigt. ## Auf Validierungsfehler prüfen Wenn ein Auftrag fehlschlägt, können Sie mithilfe des Endpoints für Validierungsfehler nach der Fehlerliste suchen. Der zuvor erstellte unvollständige PaymentIntent zeigt Ihnen die folgende Antwort. ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx/validation_errors \ -u "<>:" ``` ```json { "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 PaymentIntent." } ], "has_more": false, "url": "/v1/privacy/redaction_jobs/:job/validation_errors" } ``` Die Fehlermeldungen geben Auskunft darüber, warum Sie ein Objekt nicht redigieren können. Diese Einschränkungen hängen davon ab, ob wir die Schwärzung des Objekts unterstützen können, sowie vom Produktverhalten. Das Schwärzen einiger Objekte kann unterschiedliche Ergebnisse haben, sodass Sie bestimmte Maßnahmen ergreifen müssen, bevor Sie die Objekte schwärzen können. In diesem Beispiel können Sie die erforderlichen Maßnahmen über die Stripe-API oder das Dashboard ergreifen, indem Sie die Zahlungsabsicht bestätigen oder stornieren. Je nach Use Case können Sie, wenn Sie keinen geschäftlichen Grund haben, die Kundendaten zu behalten, die Validierungsfunktion für Schwärzungsaufträge verwenden, um unsere empfohlenen Korrekturen automatisch anzuwenden. ## Validierungsverhalten Wir haben zwei Modi für das Validierungsverhalten: `error` und `fix`. Sie können den Modus wie folgt aktualisieren: ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx \ -u "<>:" \ -d validation_behavior=fix ``` ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "failed","validation_behavior": "fix" } ``` Bei Bedarf können Sie das `validation_behavior` auch auf `error` zurücksetzen: ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx \ -u "<>:" \ -d validation_behavior=error ``` Das Festlegen des Validierungsverhaltens ändert nur die Konfiguration und hat keine weiteren Auswirkungen. Die Korrekturmaßnahme wird bei der Ausführung des Auftrags angewendet. Behandeln Sie die Korrekturvalidierung als destruktives Verhalten. Sie können die [Liste der Korrekturen](https://docs.stripe.com/privacy/redaction.md#fix-validation-behaviors) und die jeweils angewendeten Korrekturen anzeigen. ## Einen Entfernungsauftrag erneut validieren Wenn ein Auftrag nicht validiert werden kann, verbleibt er im Status `failed`. Nachdem Sie alle Validierungsfehler behoben haben, entweder durch `validation_behavior: fix` oder manuelle Änderungen, validieren Sie den Auftrag. ```curl curl -X POST https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx/validate \ -u "<>:" ``` ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false,"status": "validating", "validation_behavior": "fix" } ``` Im PaymentIntent-Beispiel wird der Validierungsfehler mithilfe des Verhaltens „Validierung beheben“ korrigiert. Wenn Sie versuchen, Objekte in anderen Stripe Produkten zu schwärzen, wiederholen Sie [den Schritt](https://docs.stripe.com/privacy/redaction/example.md#validation-errors), um nach Validierungsfehlern zu suchen, bis Sie alle Validierungsfehler behoben haben und der Status des Jobs `ready` ist. ```curl curl https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx \ -u "<>:" ``` ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false,"status": "ready", "validation_behavior": "fix" } ``` ## Entfernungsauftrag ausführen Nachdem sich der Job im Status `ready` befindet, können Sie ihn ausführen. Dadurch wird Ihr Auftrag in den Status `redacting` versetzt. Es besteht kein weiterer Handlungsbedarf. ```curl curl -X POST https://api.stripe.com/v1/privacy/redaction_jobs/prj_xxx/run \ -u "<>:" ``` ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false,"status": "redacting", "validation_behavior": "fix" } ``` Nach Abschluss der Validierung wechselt der Status zu `succeeded`. ```json { "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false,"status": "succeeded", "validation_behavior": "fix" } ``` Außerdem werden die zugehörigen Objekte aus dem Dashboard und der API entfernt. ```curl curl https://api.stripe.com/v1/customers/cus_xxx \ -u "<>:" ``` ```json { "id": "cus_xxx", "object": "customer","deleted": true } ``` ```curl curl https://api.stripe.com/v1/payment_intents/pi_xxx \ -u "<>:" ``` ```json { "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 }, ... } ``` ## Entfernungsauftrag abbrechen Nach der Validierung und vor der Schwärzung können Sie den Auftrag jederzeit abbrechen und alle Änderungen verwerfen. Es kann jeweils nur ein Auftrag mit einem Objekt interagieren. Wenn Sie also mehrere Aufträge direkt oder implizit bearbeiten, führt dies zu einem Fehler für die späteren Aufträge. Durch Abbrechen eines Auftrags wird das Objekt freigegeben, und andere Aufträge können das Objekt erneut entfernen. Der Beispielauftrag mit dem PaymentIntent wurde bereits ausgeführt, Sie können diesen daher nicht abbrechen. Um dies zu testen, [erstellen Sie einen neuen Entfernungsauftrag](https://docs.stripe.com/privacy/redaction/example.md#create-job) und brechen Sie diesen wie folgt ab: ```curl curl -X POST https://api.stripe.com/v1/privacy/redaction_jobs/A_DIFFERENT_REDACTION_JOB_ID/cancel \ -u "<>:" ``` Wenn ein Validierungsfehler angezeigt wird, der besagt, dass dieses Objekt von einem anderen aktiven Auftrag verarbeitet wird, können Sie die Objekte freigeben, indem Sie diesen Auftrag abbrechen. ## Einen Kunden/Eine Kundin finden Um Informationen zu einer Person zu schwärzen, identifizieren Sie die zugehörige ‘Customer’-Objektkennung. Sie können diese mithilfe des [Endpoints für die Kundensuche](https://docs.stripe.com/api/customers/search.md), der [Kundenseite auf dem Dashboard](https://dashboard.stripe.com/customers) oder der Suchleiste im Dashboard oben auf der Seite finden. Nachdem Sie den Kunden/die Kundin gefunden haben, kopieren Sie seine/ihre ID. Wenn Sie das Dashboard verwenden, können Sie einfach unter der **Kunden-ID** klicken, um sie zu kopieren. ## See also - [Personenbezogene Daten schwärzen](https://docs.stripe.com/privacy/redaction.md) - [Dokumentation zur Redaction Jobs API](https://docs.stripe.com/api/privacy/redaction-job.md) - [Umgang mit Löschanträgen von Kundinnen/Kunden](https://docs.stripe.com/privacy/deletion-requests.md)