Approfondimento Tecnico

Come Funziona PCI Proxy

Una guida tecnica ma accessibile al flusso dati, al motore di tokenizzazione e all'architettura API-first che mantiene i dati carta fuori dalla tua infrastruttura e la tua azienda fuori dall'ambito PCI.

MERCHANT 4111 •••• •••• 1234 Has PAN PCI PROXY Tokenizes PAN ACQUIRER Gets token Step 1 Step 2 Step 3
Flusso Dati

Flusso Dati End-to-End

Dal momento in cui un titolare di carta inserisce il proprio PAN al punto in cui la tua applicazione riceve un token sicuro, ecco ogni passaggio che i dati attraversano.

Fase 1

Sorgente Dati Carta

Checkout del browser, chiamata API REST o input IVR dell'agente del call center

Fase 2

Intercettazione PCI Proxy

Il reverse proxy rileva ed estrae il PAN a 16 cifre dal payload HTTP

Fase 3

Motore di Tokenizzazione

Il PAN viene crittografato (AES-256) e viene generato un token unico con preservazione del formato

Fase 4

Vault Sicuro

PAN originale archiviato in un data center certificato PCI DSS Level 1 con HSM all'interno dell'UE

Fase 5

Token Restituito

La tua applicazione riceve un token sicuro, usalo per pagamenti, abbonamenti o rimborsi

Motore di Tokenizzazione

Il Processo di Tokenizzazione

La tokenizzazione sostituisce i dati carta sensibili con un valore surrogato non sensibile. Ecco esattamente come PCI Proxy EU esegue questa operazione - passo dopo passo.

01

Fase

Rilevamento PAN

Il proxy ispeziona i body HTTP in entrata con motori di pattern-matching ottimizzati per tutti i principali circuiti. Le sequenze di 13–19 cifre validate Luhn vengono segnalate - su payload JSON, XML, form-encoded e multipart. Zero modifiche al codice da parte tua.

02

Fase

Formato del Token

Ogni token segue una struttura deterministica: un prefisso (tok_pci_eu_) seguito da una stringa crittograficamente casuale di 30 caratteri. Porta metadati - ultime quattro cifre, brand, scadenza - permettendo alla tua UI di mostrare "Visa che termina con 1234" senza mai accedere al PAN reale.

03

Fase

Mappatura Uno-a-Uno

Ogni PAN corrisponde a esattamente un token nel tuo namespace merchant. La stessa carta inviata due volte restituisce lo stesso token - abilitando deduplicazione, rilevamento frodi e matching card-on-file. La mappatura è archiviata solo nel vault e non è mai esposta via API.

pci-proxy-engine · traccia live ATTIVO

→ POST in entrata /v1/tokenize

{

"card_number": "4111 1111 1111 1234",

"expiry": "12/26"

}

AES-256 · HSM

← Risposta 200 OK · 47ms

{

"token": "tok_pci_eu_a1b2c3d4e5f61234",

"last_four": "1234",

"brand": "visa",

"pan_nei_tuoi_sistemi": false

}

PAN mai toccato i tuoi server · Vault: EU-West · Registrato
De-Tokenizzazione

Recupero dei Dati Carta Originali

La de-tokenizzazione è il processo controllato e auditato di sostituzione di un token con il PAN originale, e avviene esclusivamente all'interno dell'ambiente sicuro di PCI Proxy.

1

Quando Avviene

La de-tokenizzazione avviene solo quando un PSP o acquirer downstream richiede il PAN reale per autorizzare una transazione. Il tuo sistema invia il token all'endpoint forward-proxy di PCI Proxy; il proxy risolve il PAN internamente e lo inoltra al PSP tramite una connessione TLS con autenticazione reciproca. Il PAN non appare mai nei tuoi log.

2

Chi Può Richiederla

Solo le chiavi API autenticate con lo scope di permesso detokenize possono attivare una de-tokenizzazione. L'accesso è concesso per-merchant, per-ambiente e può essere limitato per whitelist IP e rate limit configurabili.

3

Traccia di Audit Completa

Ogni evento di de-tokenizzazione viene registrato con timestamp, chiave API richiedente, PSP di destinazione, IP sorgente e ID richiesta. I log vengono conservati per un minimo di 12 mesi e sono disponibili tramite la dashboard merchant e l'API di audit. Immutabili, tamper-proof.

Livelli di Sicurezza

Livello 1 Chiave API + Secret HMAC

Secret rotanti, richieste firmate

Livello 2 Whitelist IP

Accesso limitato a IP server conosciuti

Livello 3 TLS Reciproco (mTLS)

Connessioni certificate pinned verso PSP

Livello 4 Log di Audit Immutabile

Tamper-proof, conservazione ≥ 12 mesi

Riferimento API

Architettura API-First

Un'API RESTful JSON. Autenticati con la tua chiave, invia i dati carta, ricevi token. Di seguito i due endpoint principali che userai quotidianamente.

POST /v1/tokenize Scope: tokenize

Corpo della Richiesta

{
  "card_number": "4111111111111111",
  "expiry":      "12/26",
  "cvv":         "123"
}

Risposta 200 OK

{
  "token":      "tok_pci_eu_a1b2c3d4e5f6",
  "last_four": "1111",
  "brand":     "visa",
  "expires_at": "2026-12-31"
}
POST /v1/forward Scope: forward

Corpo della Richiesta

{
  "token":      "tok_pci_eu_a1b2c3d4e5f6",
  "target_url": "https://psp.eu/charge",
  "amount":     9900,
  "currency":   "EUR"
}

Risposta (dal PSP, proxyata)

{
  "status":         "authorized",
  "transaction_id": "txn_9f8e7d6c",
  "amount":         9900,
  "currency":       "EUR"
}
Richieste firmate HMAC
Latenza media < 50ms
REST + Webhook
Eventi in Tempo Reale

Webhook e Flussi di Callback

PCI Proxy EU invia notifiche di eventi in tempo reale ai tuoi endpoint webhook registrati. Ogni evento include una firma crittografica che puoi verificare lato server.

I webhook utilizzano backoff esponenziale con fino a 5 tentativi. Le consegne fallite vengono archiviate per 72 ore e possono essere replicate dalla dashboard.

Tipi di Eventi Supportati

token.created Nuovo token generato
token.used Token inviato al PSP
token.expired Token ha raggiunto il TTL
token.deleted Token rimosso su richiesta
forward.success PSP ha restituito 2xx
forward.failure PSP ha restituito errore

Esempio di Payload Webhook

POST tuo-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
}

Verifica della Firma

Ogni webhook include l'header X-PCI-Signature. Calcola HMAC-SHA256 del body grezzo con il tuo webhook secret e confrontalo con il valore della firma. Rifiuta le richieste dove le firme non corrispondono.

Anti-replay Autenticità garantita 5 retry con backoff
Integrazione

SDK e Opzioni di Integrazione

SDK ufficiali in 5 linguaggi, campi hosted e iniezione iFrame - scegli il metodo più adatto al tuo stack.

JS

SDK JavaScript

npm
import PCIProxy from '@pci-proxy-eu/js';

const pci = new PCIProxy({
  merchantId: 'mrc_xyz789'
});

const { token } = await pci.tokenize({
  cardNumber: '4111...'
});
Node.js 18+ · Browser · TypeScript incluso
PY

SDK Python

PyPI
from pci_proxy_eu import Client

client = Client(
  merchant_id="mrc_xyz789",
  api_key="sk_live_..."
)

result = client.tokenize(
  card_number="4111..."
)
Python 3.9+ · AsyncClient disponibile
PHP

SDK PHP

Composer
use PCIProxyEU\Client;

$client = new Client(
  merchantId: 'mrc_xyz789',
  apiKey: 'sk_live_...'
);

$result = $client->tokenize([
  'card_number' => '4111...'
]);
PHP 8.1+ · Java e .NET disponibili
Hosted Fields

Campi Hosted e Iniezione iFrame

Per l'idoneità SAQ A. I campi vengono renderizzati in iFrame sicuri - i dati carta non toccano mai il tuo DOM.

hosted-fields.html
<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) => {
      // solo token, mai il PAN
      console.log(result.token);
    }
  });
</script>
checkout.il-tuo-negozio.com

Dati di Pagamento

4111 1111 1111 •••• iFrame
12/27 iFrame
••• iFrame

Dati carta mai sul tuo server

SAQ A

Ambito minimo

CSS API

Personalizzabile

Mobile

Responsive

Inizia a Integrare Oggi

Scopri cos'è un PCI Proxy, approfondisci i dettagli della tokenizzazione o guarda come gli sviluppatori usano la piattaforma.