Exécuter une tâche d’expurgationVersion bêta publique
Découvrez comment exécuter votre première tâche d’expurgation.
Cet exemple utilise des tâches d’expurgation pour expurger les données personnelles d’un client et vous empêcher d’y accéder dans l’API et dans le Dashboard Stripe.
Créer votre première tâche et expurger un client test
L’objet RedactionJob est l’objet principal avec lequel vous interagissez et l’abstraction principale permettant de gérer toutes les demandes d’expurgation. Vous pouvez utiliser l’objet RedactionJob pour indiquer les objets à expurger, les valider afin de vous assurer qu’ils sont admissibles, puis exécuter l’expurgation.
Une fois que vous avez créé une tâche, celle-ci commence à valider l’admissibilité des objets à expurger. Pour les objets Customer
, la tâche d’expurgation identifie tous les objets associés à ce client, y compris PaymentIntents, Charges, Subscriptions, Invoices, PaymentMethods, les notifications, etc. Certains de ces objets peuvent avoir des centaines d’enregistrements, directement corrélés à la fréquence à laquelle un client peut effectuer des achats ou ajouter des informations de paiement.
Bien que vous puissiez spécifier des identifiants supplémentaires pour les objets appartenant à un même client, vous n’avez pas besoin de les définir explicitement. Nous avons une limite de 10 identificateurs d’objet à expurger dans chaque nouvelle tâche.
Configurer un client avec des données de test
Avant de créer une tâche d’expurgation, commencez par créer un client test en mode test. Accédez au Dashboard Stripe, cliquez sur Ajouter un client et renseignez quelques informations de test dans la boîte de dialogue. Après avoir créé le client, copiez l’ID cus_
.
Vous pouvez utiliser le Dashboard Stripe ou l’API pour créer n’importe quel objet supplémentaire que votre intégration Stripe utilise, comme PaymentIntents
, Charges
, PaymentMethods
, Subscriptions
récurrents, etc. Nous créons un PaymentIntent
non confirmé de base pour cet objet Customer
, comme suit :
Pour en savoir plus, consultez le guide d’intégration des Payment Intents.
Lors de cette première exécution, vous laissez ce PaymentIntent incomplet pour démontrer une fonctionnalité de la tâche ultérieurement. Si vous affichez le client dans le Dashboard, vous pouvez voir ce qui suit :

Paiement non confirmé dans le Dashboard
Créer une tâche d’expurgation
Maintenant que vous disposez d’un objet Customer avec des objets expurgeables supplémentaires, créez une tâche d’expurgation avec l’ID de client test. La requête se présente comme suit :
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "validating", "validation_behavior": "error" }
Par défaut, validation_
est défini sur error
. Cette option est configurable et vous trouverez plus de détails dans les étapes suivantes de ce guide.
Afficher l’objet Redaction Job
Lorsque l’état d’une tâche change, Stripe envoie un webhook. Vous pouvez consulter les événements de webhook dans le Dashboard Stripe. Pour en savoir plus, consultez la documentation consacrée aux webhooks.
Vous pouvez également utiliser Récupérer une tâche d’expurgation pour vérifier l’état de la tâche :
La tâche sera à l’état validating
, ce qui signifie qu’elle vérifie si l’objet fourni et les objets associés sont admissibles à l’expurgation. Ce processus peut prendre un certain temps, en fonction du nombre d’objets associés à l’objet fourni.
Si la tâche ne détecte aucune erreur ou restriction, l’état passe à ready
. Dans le cas contraire, il passe à failed
.
Si vous avez créé le PaymentIntent plus tôt et ne l’avez pas finalisé, il sera à l’état failed
.
Examiner les erreurs de validation
En cas d’échec d’une tâche, vous pouvez vérifier la liste des erreurs à l’aide de l’endpoint des erreurs de validation. Le PaymentIntent incomplet que vous avez créé précédemment vous renverra la réponse suivante.
{ "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" }
Les messages d’erreur vous indiquent pourquoi vous ne pouvez pas expurger un objet. Ces restrictions combinent la prise en charge de l’expurgation de l’objet et le comportement du produit. L’expurgation de certains objets peut avoir des résultats différents. Vous devez donc prendre des mesures pour pouvoir expurger les objets. Dans cet exemple, vous pouvez effectuer les actions requises à l’aide de l’API Stripe ou du Dashboard en confirmant ou en annulant le PaymentIntent. Selon votre cas d’usage, si vous n’avez aucune raison de conserver les données du client dans le cadre de vos activités, vous pouvez utiliser le comportement de validation des tâches d’expurgation pour appliquer automatiquement les correctifs recommandés.
Comportement de validation
Nous avons deux modes de comportement de validation, error
et fix
. Vous pouvez mettre à jour le mode comme suit :
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "failed", "validation_behavior": "fix" }
Si vous le souhaitez, vous pouvez également redéfinir validation_
sur error
en utilisant :
La définition du comportement de validation ne modifie que la configuration. Le correctif s’applique lors de l’exécution de la tâche. Traitez la validation du correctif comme un comportement destructeur. Vous pouvez consulter la liste des correctifs et les correctifs qu’ils appliquent.
Valider à nouveau une tâche d’expurgation
Lorsqu’une tâche n’est pas validée, elle reste à l’état failed
. Une fois que vous avez résolu toutes les erreurs de validation, soit par le biais de validation_
, soit via des modifications manuelles, validez la tâche.
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "validating", "validation_behavior": "fix" }
Dans l’exemple de PaymentIntent, l’utilisation du comportement de validation « fix » (corriger) résout l’erreur de validation. Si vous tentez d’expurger des objets dans d’autres produits Stripe, répétez l’étape pour examiner les erreurs de validation jusqu’à ce que vous les résolviez toutes et que l’état de la tâche passe à ready
.
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "ready", "validation_behavior": "fix" }
Exécuter une tâche d’expurgation
Une fois que la tâche est à l’état ready
, vous pouvez l’exécuter. Votre tâche passe à l’état redacting
. Aucune action supplémentaire n’est nécessaire.
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "redacting", "validation_behavior": "fix" }
Une fois la validation terminée, l’état passe à succeeded
.
{ "id": "prj_xxx", "object": "privacy.redaction_job", "created": 1234567890, "livemode": false, "status": "succeeded", "validation_behavior": "fix" }
Les objets associés seront également expurgés à partir du Dashboard et de l’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 }, ... }
Annuler une tâche d’expurgation
Vous pouvez annuler la tâche et abandonner toutes les modifications à tout moment après la validation et avant l’expurgation. Une seule tâche peut interagir avec un objet à la fois, c’est pourquoi le fait de créer plusieurs tâches expurgeant le même objet directement ou implicitement entraîne une erreur pour les tâches suivantes. L’annulation d’une tâche libère l’objet et permet à d’autres tâches de l’expurger à nouveau.
L’exemple de tâche avec le PaymentIntent ayant déjà été exécuté, vous ne pouvez pas l’annuler. Pour tester cette fonction, créez une nouvelle tâche d’expurgation et annulez la tâche comme suit :
Si une erreur de validation indique « Cet objet est en cours de traitement par une autre tâche active », vous pouvez libérer les objets en annulant cette tâche.
Rechercher un client
Pour expurger les informations relatives à une personne, trouvez l’identifiant de l’objet Customer
qui lui est associé. Pour ce faire, utilisez l’endpoint Customer Search, la page Client du Dashboard ou la barre de recherche du Dashboard située en haut de la page.
Une fois que vous avez trouvé le client, copiez son ID. Si vous utilisez le Dashboard, vous pouvez cliquer sous ID client pour le copier.