Comment PCI Proxy fonctionne
Vous nous envoyez des données de carte. Nous les tokenisons, les stockons dans un vault PCI DSS et vous renvoyons un token. Vos systèmes ne reçoivent jamais le numéro de carte.
Vous envoyez
Nous conservons
Vous recevez
Le flux en 5 étapes
Du moment où le client saisit sa carte jusqu'au token que vous enregistrez dans votre back-office : voici ce qui se passe étape par étape.
Données entrantes
Checkout web, appel API ou formulaire centre d'appels
PCI Proxy intercepte
Nous recevons les données de carte du payload HTTP avant qu'elles atteignent vos serveurs
Tokenisation
Nous chiffrons le numéro de carte et générons un token unique
Vault sécurisé
Le numéro de carte reste chiffré dans notre vault PCI DSS Niveau 1, EU uniquement
Token vers vous
Vous recevez le token et l'utilisez pour les paiements, abonnements ou remboursements
Ce qui se passe lors de la tokenisation
Nous remplaçons le numéro de carte par un token. Vous ne voyez jamais la carte en clair dans vos systèmes. Voici les trois étapes internes.
Étape
Nous détectons les données de carte
Nous analysons les requêtes entrantes et identifions les numéros de carte dans les payloads JSON, formulaires ou multipart. Aucune modification de votre code : connectez votre flux et c'est terminé.
Étape
Nous créons le token
Chaque token commence par tok_pci_eu_ et inclut les quatre derniers chiffres, le réseau et la date d'expiration. Votre interface peut ainsi afficher « Visa se terminant par 1234 » sans jamais détenir le numéro de carte.
Étape
Même token, même carte
Si la même carte arrive de nouveau, nous renvoyons le même token. Utile pour les abonnements et les cartes enregistrées. Le mapping reste uniquement dans le vault et n'est pas exposé via l'API.
→ POST /v1/tokenize
{
"card_number": "4111 1111 1111 1234",
"expiry": "12/26"
}
← 200 OK · 47ms
{
"token": "tok_pci_eu_a1b2c3d4e5f61234",
"last_four": "1234",
"brand": "visa",
"card_in_your_systems": false
}
Quand le numéro de carte est nécessaire
Pour autoriser un paiement, le PSP a besoin du vrai numéro de carte. Vous envoyez le token : nous récupérons la carte du vault et la transmettons de manière sécurisée. Vous ne la voyez jamais.
Quand cela se produit
Lorsque vous devez débiter une carte enregistrée, envoyez le token à notre endpoint de transmission. Nous résolvons le numéro de carte dans le vault et le transmettons au PSP via une connexion chiffrée. Il n'apparaît pas dans vos logs.
Qui peut le faire
Uniquement les détenteurs d'une clé API avec la permission forward ou detokenize. Vous pouvez restreindre par IP, environnement et volume de requêtes.
Entièrement audité
Chaque récupération est journalisée : qui l'a demandée, quand, et quel PSP. Les logs sont conservés au moins 12 mois et sont accessibles depuis le tableau de bord ou l'API.
Couches de protection
Chaque requête est authentifiée
Uniquement depuis vos serveurs autorisés
TLS avec certificats vérifiés
Conservés au moins 12 mois
Deux endpoints, flux clair
Authentifiez-vous avec votre clé API. Un endpoint crée le token, l'autre l'utilise pour payer. JSON en entrée, JSON en sortie.
/v1/tokenize Scope: tokenize Corps de la requête
{ "card_number": "4111111111111111", "expiry": "12/26", "cvv": "123" }
Réponse 200 OK
{ "token": "tok_pci_eu_a1b2c3d4e5f6", "last_four": "1111", "brand": "visa", "expires_at": "2026-12-31" }
/v1/forward Scope: forward Corps de la requête
{ "token": "tok_pci_eu_a1b2c3d4e5f6", "target_url": "https://psp.eu/charge", "amount": 9900, "currency": "EUR" }
Réponse (du PSP, proxifiée)
{ "status": "authorized", "transaction_id": "txn_9f8e7d6c", "amount": 9900, "currency": "EUR" }
Webhooks et notifications
Quand un événement se produit (token créé, paiement envoyé, erreur), nous envoyons un événement en temps réel à votre endpoint. Chaque message est signé pour que vous puissiez le vérifier côté serveur.
En cas d'échec de livraison, nous réessayons jusqu'à 5 fois avec des intervalles croissants. Vous pouvez aussi rejouer manuellement depuis le tableau de bord pendant 72 heures.
Types d'événements pris en charge
token.created Nouveau token généré token.used Token envoyé au PSP token.expired Token a atteint sa TTL token.deleted Token supprimé sur demande forward.success PSP a renvoyé 2xx forward.failure PSP a renvoyé une erreur Exemple de payload webhook
your-server.com/webhooks/pci LIVE
{
"event": "token.created",
"timestamp": "2026-04-03T10:15:30Z",
"data": {
"token": "tok_pci_eu_a1b2c3d4e5f6",
"last_four": "1111",
"brand": "visa",
"merchant_id": "mrc_xyz789"
},
"signature": "sha256=4a8b9c..." // HMAC-SHA256
} Vérification de signature
Chaque webhook inclut l'en-tête X-PCI-Signature. Calculez le HMAC-SHA256 du corps avec votre secret et comparez-le à la signature. S'ils ne correspondent pas, rejetez la requête.
SDK et modes d'intégration
SDK pour Node, Python et PHP, ou champs hébergés en iFrames. Choisissez ce qui correspond à votre stack.
SDK JavaScript
npmimport PCIProxy from '@pci-proxy-eu/js';
const pci = new PCIProxy({
merchantId: 'mrc_xyz789'
});
const { token } = await pci.tokenize({
cardNumber: '4111...'
}); SDK Python
PyPIfrom pci_proxy_eu import Client
client = Client(
merchant_id="mrc_xyz789",
api_key="sk_live_..."
)
result = client.tokenize(
card_number="4111..."
) SDK PHP
Composeruse PCIProxyEU\Client;
$client = new Client(
merchantId: 'mrc_xyz789',
apiKey: 'sk_live_...'
);
$result = $client->tokenize([
'card_number' => '4111...'
]); iFrames sécurisés pour le checkout
Pour rester en SAQ A : les champs de carte sont rendus dans nos iFrames. Les données de carte ne transitent jamais par votre DOM.
<div id="card-number"></div>
<div id="card-expiry"></div>
<div id="card-cvv"></div>
<script>
PCIProxy.hostedFields({
merchantId: 'mrc_xyz789',
fields: {
cardNumber: '#card-number',
expiry: '#card-expiry',
cvv: '#card-cvv'
},
onTokenize: (result) => {
// token uniquement, jamais le numéro de carte
console.log(result.token);
}
});
</script> Détails de paiement
Données de carte jamais sur votre serveur
SAQ A
Moins de contraintes PCI
CSS
Style personnalisable
Mobile
Responsive
Prêt à intégrer ?
Découvrez ce qu'est un PCI Proxy, explorez la tokenisation en profondeur ou voyez comment les développeurs utilisent la plateforme.