heygrc
Réponse

Comment accepter des paiements sans stocker les données de carte ?

l'équipe heygrc

Utilisez la tokenisation de votre processeur de paiement pour que les détails bruts de la carte soient envoyés directement à celui-ci, sans passer par vos serveurs. Stockez le jeton retourné et les quatre derniers chiffres pour l'affichage, et ne conservez jamais le numéro de carte complet ni le code de vérification. Cela vous permet de respecter l'exigence 3 de PCI DSS et réduit la portée de la conformité PCI qui s'applique à vous.

  1. Tokeniser à la source

    Collectez les détails de la carte via les champs hébergés ou le SDK du processeur, afin que le numéro brut soit envoyé directement à celui-ci et que vous receviez un jeton en retour. Les données de carte ne transitent jamais par votre application.

  2. Stocker le jeton, pas la carte

    Conservez le jeton du processeur et les quatre derniers chiffres pour l'affichage. Ne stockez jamais le numéro de carte complet, et ne stockez jamais le code de vérification de la carte, qui ne doit pas être conservé après autorisation.

  3. Réduire la portée PCI

    Moins les données de carte transitent par vos systèmes, plus la portée PCI est réduite. La tokenisation est la méthode standard pour réduire cette portée, privilégiez-la plutôt que de gérer vous-même le numéro brut.

checkout/charge.ts+2 -1
// paymentMethodId is a token from the processor's hosted fields (no raw card here)- await orders.insert({ id, pan: card.number })+ await processor.charge(paymentMethodId, amount)+ await orders.insert({ id, paymentMethodId, last4 })return ok()
heygrcPCI DSS Req 3

Les données brutes de la carte sont capturées par les champs hébergés du processeur et n'atteignent jamais votre serveur ; la commande ne stocke que le jeton de paiement et les quatre derniers chiffres, et non le numéro de carte ni le code de vérification.