3D Secure 2 su Stripe

3D Secure 2 su Stripe

3D Secure 2 (3DS2) è il protocollo di autenticazione carte di seconda generazione, sviluppato da EMVCo e supportato da Visa, Mastercard e American Express. Stripe lo integra nativamente per soddisfare i requisiti SCA PSD2 e ottenere liability shift sulle frodi.

Frictionless vs Challenge flow

3DS2 introduce il concetto di frictionless flow: la banca emittente, ricevendo oltre 100 data point sul cliente (device fingerprint, IP, browser, storico acquisti), può autorizzare la transazione senza chiedere nulla all'utente. Solo in caso di rischio elevato si attiva il challenge flow con OTP/biometria. Tipicamente il 70-80% delle transazioni 3DS2 passa frictionless.

Liability shift e conversion

Quando 3DS2 viene completato con successo (anche frictionless), la liability sulle frodi passa dall'emittente alla banca del cliente: in caso di chargeback per frode, non perdi il denaro. Stripe applica automaticamente 3DS2 quando richiesto da SCA o quando Radar rule lo specifica. La conversion impact è minimo grazie al frictionless flow.

Eccezioni 3DS2 e Out-of-band authentication

Non tutti i pagamenti che richiedono SCA passano per 3DS2 visibile: l'OOB (Out-of-Band) authentication permette alla banca di autenticare il cliente via app bancaria propria, senza challenge web visibile. Il cliente apre l'app banca sul telefono, autorizza con biometria, e il pagamento procede senza step aggiuntivi nel checkout. UX nettamente migliore di OTP via SMS. Stripe lo supporta nativamente ma dipende dall'emittente: banche italiane (Intesa, Unicredit, BancoPosta) lo implementano sempre più' diffusamente. La percentuale OOB cresce annualmente vs SMS OTP.

Compatibilità' e fallback

3DS2 è implementato dal 99% delle carte Visa/Mastercard EU dal 2022. Per le poche carte legacy che supportano solo 3DS1, Stripe fa fallback automatico se la transazione lo richiede. Le carte USA in genere non implementano 3DS2 perché' SCA non si applica fuori EU; Stripe non triggera 3DS2 su carte non-EU di default. Per merchant globali che vogliono comunque liability shift su transazioni alto rischio anche su carte US, esiste 'Acceptance' Radar rule che forza 3DS2 manualmente. Pricing identico: 3DS2 non ha sovrapprezzo Stripe.

Risk-based authentication e adaptive UX

3DS2 introduce risk-based authentication: la banca emittente valuta il rischio della singola transazione in base a 100+ data point (device, IP, hour, location, basket size, customer history) e decide frictionless vs challenge. Per merchant: più' dati condividi nel PaymentIntent (billing_details, shipping, customer history) più' la banca può approvare frictionless. Stripe Payment Element raccoglie automaticamente questi data point. Best practice: includere sempre email, name, address nel customer object - migliora drasticamente percentuale frictionless (target 80%+).

Dynamic 3DS rule: solo dove serve

Per minimizzare friction, applica 3DS2 solo dove necessario. Radar rules dinamiche: 1) Trigger 3DS se amount > 500 EUR; 2) Trigger se card_country != ip_country; 3) Trigger se primo acquisto da questo email; 4) Skip se customer.metadata.vip='true'. SCA mandate richiede 3DS sempre per UE consumer cards a meno di esenzione valida - Stripe applica automaticamente. Per carte non-UE puoi optare per skip 3DS (perdi liability shift ma migliori UX). Trade-off measurabile in conversion vs fraud rate dashboard.

Browser support e fallback strategy

3DS2 ha requirement browser specifici: HTTPS obbligatorio, JavaScript abilitato, iframe support, cookie third-party (modal Stripe). Browser supportati: Chrome 60+, Firefox 55+, Safari 11+, Edge 79+. Per browser obsoleti o configurazioni restrittive, Stripe espone fallback: redirect-based 3DS in pagina dedicata (no iframe). Strategy 'progressive enhancement': prova iframe modal, se fallisce dopo timeout 30s usa redirect. Monitor: % di transazioni che attivano fallback (idealmente <5%). Se più alto, indagare browser/network policy. Per enterprise con corporate network restrittivo, fornisci documentazione IT-team su firewall whitelist (api.stripe.com, js.stripe.com, hooks.stripe.com).

3DS2 e merchant requirements

Per merchant che vogliono qualificare per liability shift 3DS2, requirements: 1) Integration completa Payment Intent + Stripe.js v3+; 2) Confirm card payment lato client (no charges API legacy); 3) Customer information completa (billing address minimo); 4) Statement descriptor appropriato (no generic); 5) Compliance settoriale (no MCC restricted). Stripe applica liability shift automaticamente quando criteria match e 3DS2 success. Audit periodico: verifica % transazioni con liability shift in Dashboard reports. Target: >80% transazioni EU con liability shift. Se più basso, indagare flow integration per ottimizzazioni.

Procedura passo-passo

  1. Verifica che la tua integrazione usi Payment Intent (3DS2 richiede PI).
  2. Frontend: usa Payment Element o confirmCardPayment con stripe.js.
  3. Stripe determina automaticamente se serve 3DS2 in base a SCA/Radar.
  4. In caso di challenge, l'utente viene reindirizzato o vede un'iframe modale.
  5. Dopo l'autenticazione il PaymentIntent passa a 'succeeded' o 'requires_payment_method'.
  6. Gestisci lo stato con webhook payment_intent.succeeded.
  7. Imposta Radar rule per richiedere 3DS2 su importi alti o cambio paese.
  8. Monitora conversion impact tramite Dashboard analytics.

Errori comuni e come risolverli

  • PaymentMethod legacy: vecchie integrazioni non supportano 3DS2; migra.
  • Iframe bloccato: verifica che il sito permetta iframe per challenge modale.
  • 3DS2 non triggerato: se la carta non supporta 3DS2 Stripe fa fallback a 3DS1 quando possibile.
  • Ignorare requires_action: lo stato richiede confirmCardPayment lato client per challenge.

Domande frequenti

D: 3DS2 funziona su tutte le carte?
R: Sì sulle carte europee; sulle USA è raro perchè SCA non si applica.

D: Stripe paga le commissioni 3DS2?
R: Sì, le commissioni 3DS2 sono incluse nel pricing standard.

D: Posso disabilitare 3DS2?
R: Solo per transazioni dove SCA non si applica; altrimenti è obbligatorio.

D: Frictionless flow è automatico?
R: Sì, deciso dall'emittente carta in base ai data point ricevuti.

Hai bisogno di aiuto?

Se vuoi integrare Stripe con il team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?