Passa al contenuto
Crea account o Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un accountAccedi
Inizia
Pagamenti
Ricavi
Per piattaforme e marketplace
Gestione del denaro
Risorse per sviluppatori
API e SDKGuida
Panoramica
Informazioni sui pagamenti con Stripe
Eseguire l'upgrade dell'integrazione
Analisi dei dati sui pagamenti
Pagamenti online
PanoramicaTrovare il caso d'uso più adattoUsa Managed Payments
Utilizzare Payment Links
Utilizza una pagina di completamento della transazione preintegrata
Crea un'integrazione personalizzata con Elements
Creare un'integrazione in-app
Pagamenti di persona
Terminal
Metodi di pagamento
Aggiungere modalità di pagamento
    Panoramica
    Opzioni di integrazione delle modalità di pagamento
    Gestire i metodi di pagamento predefiniti nella Dashboard
    Tipi di metodi di pagamento
    Carte
    Pagare con il saldo Stripe
    Pagamenti in stablecoin
    Addebiti bancari
    Reindirizzamenti bancari
    Trasferimenti bancari
    Bonifici (Sources)
    Acquista ora, paga dopo
      Affirm
      Afterpay / Clearpay
      Alma
      Billie
      Capchase Pay
      Klarna
        Accettare un pagamento
        Configura pagamenti futuri
        Ottimizza la conversione
        Mantieni la conformità a Klarna
        Rispondere alle contestazioni
      Kriya
      Mondu
      Pagamento su fattura
      Scalapay
      SeQura
      Sunbit
      Zip
    Pagamenti in tempo reale
    Voucher
    Wallet
    Abilitare metodi di pagamento locali per Paese
    Metodi di pagamento personalizzati
Gestire i metodi di pagamento
Pagare più velocemente con Link
Scenari di pagamento
Gestire più valute
Flussi di pagamento personalizzati
Acquisizione flessibile
Orchestrazione
Oltre i pagamenti
Costituire un'azienda
Criptovaluta
Commercio agentico
Financial Connections
Climate
Informazioni sulle frodi
Protezione contro le frodi di Radar
Gestisci le contestazioni
Verificare l'identità
Stati Uniti
Italiano
Pagina inizialePagamentiAdd payment methodsBuy now, pay laterKlarna

Accettare un pagamento Klarna

Scopri come accettare un pagamento con Klarna, una modalità di pagamento a rate utilizzata in tutto il mondo.

Per creare un’integrazione avanzata che gestisca flussi di pagamento complessi e accetti i pagamenti con Klarna, puoi utilizzare Stripe Elements, come Payment Element ed Express Checkout Element. Payment Element accetta oltre 40 metodi di pagamento, convalida i dati inseriti e gestisce gli errori. Express Checkout Element fornisce pulsanti per i metodi di pagamento con un solo clic per Klarna e altri metodi di pagamento.

Segui QuickStart per scoprire come integrare un modulo di pagamento Stripe personalizzato nel tuo sito web.

Questa guida illustra i passaggi consigliati per gestire i pagamenti Klarna in un’integrazione che utilizza Elements e l’API Payment Intents.

Nota

Prima di avviare l’integrazione, assicurati che il tuo account sia idoneo per Klarna rivedendo le tue impostazioni dei metodi di pagamento.

Elencare manualmente i metodi di pagamento

Consigliamo di utilizzare metodi di pagamento dinamici, in cui Stripe gestisce la logica per mostrare dinamicamente i metodi di pagamento idonei più confacenti a ciascun cliente, per massimizzare la conversione. Se scegli di elencare manualmente i metodi di pagamento, specifica Klarna nell’elenco payment_method_types quando crei un PaymentIntent.

Crea un PaymentIntent

Per massimizzare i tassi di accettazione e ridurre le contestazioni, specifica i seguenti parametri quando crei un PaymentIntent per i pagamenti Klarna:

  • shipping: assicurati che questi campi siano definiti e non vuoti: name, address.line1, city, country e postal_code.
  • amount_details.line_items
  • payment_method_data.billing_details: assicurati che questi campi siano definiti e non vuoti: name, address.line1, city, country e postal_code.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_method_types[0]"=klarna \ -d amount=1099 \ -d currency=eur \ -d "amount_details[line_items][0][product_name]"="Your product name" \ -d "amount_details[line_items][0][unit_cost]"=1099 \ -d "amount_details[line_items][0][quantity]"=1 \ -d "shipping[address][city]"=Brothers \ -d "shipping[address][country]"=US \ -d "shipping[address][line1]"="27 Fredrick Ave" \ -d "shipping[address][postal_code]"=97712 \ -d "shipping[address][state]"=OR \ -d "payment_method_data[billing_details][address][city]"=Brothers \ -d "payment_method_data[billing_details][address][country]"=US \ -d "payment_method_data[billing_details][address][line1]"="27 Fredrick Ave" \ -d "payment_method_data[billing_details][address][postal_code]"=97712 \ -d "payment_method_data[billing_details][address][state]"=OR \ --data-urlencode "payment_method_data[billing_details][email]"="jenny.rosen@example.com" \ -d "payment_method_data[billing_details][name]"="Jenny Rosen"

Recuperare la chiave privata client

L’oggetto PaymentIntent contiene una chiave privata client, che il lato client usa per completare la procedura di pagamento in modo sicuro. Per specificare la chiave privata sul lato client, puoi utilizzare approcci diversi.

Recupera la chiave privata client dall’endpoint sul server utilizzando la funzione fetchdel browser. Questo approccio è più adatto quando il lato client è un’applicazione con un’unica pagina, in particolare creata con un framework front-end moderno come React. Crea l’endpoint server che invia la chiave privata client:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Quindi recupera la chiave privata client con JavaScript sul lato client:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Invia il pagamento a Stripe.

In questo passaggio, completi i pagamenti Klarna sul client con Stripe.js.

Configurare Stripe.js

Quando un cliente fa clic per pagare con Klarna, ti consigliamo di utilizzare Stripe.js per inviare il pagamento a Stripe. Stripe.js è la nostra libreria JavaScript di base per creare i flussi di pagamento. Gestisce automaticamente le operazioni complesse, come il reindirizzamento descritto di seguito. Inoltre ti consente di estendere facilmente la tua integrazione ad altre modalità di pagamento in futuro. Per includere lo script di Stripe.js nella tua pagina di pagamenti, aggiungilo nell’intestazione del file HTML.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>

Crea un’istanza di Stripe.js con il seguente JavaScript nella pagina di pagamento:

script.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Anziché inviare tutto l’oggetto PaymentIntent al client, utilizza la chiave privata client (diversa dalle chiavi API che autenticano le richieste API di Stripe).

Assicurati di gestire con attenzione la chiave privata client in quanto può completare l’addebito. Non devi registrarla, inserirla negli URL né mostrarla a nessuno se non al cliente.

Usa stripe.confirmKlarnaPayment per gestire il reindirizzamento dalla tua pagina e completare il pagamento. Aggiungi un return_url a questa funzione per indicare dove Stripe deve reindirizzare l’utente dopo che ha completato il pagamento sul sito web o nell’applicazione mobile Klarna.

Nella pagina dei pagamenti di Klarna, il cliente esegue una selezione tra le opzioni di pagamento disponibili nel proprio mercato. Per le disponibilità nei diversi mercati, consulta la tabella nella pagina della panoramica. Non è possibile limitare o preselezionare le opzioni di pagamento dalla pagina dei pagamenti di Klarna: il fatto che sia il consumatore a scegliere aumenta le possibilità che effettui le transazioni con la tua attività.

client.js
// Redirects away from the client const {error} = await stripe.confirmKlarnaPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}',{ return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }

Quando il cliente invia un pagamento, Stripe lo reindirizza al return_url e include i seguenti parametri di ricerca dell’URL. La pagina di ritorno può utilizzarli per ottenere lo stato del PaymentIntent in modo da poter mostrare lo stato del pagamento al cliente.

Quando specifichi il parametro return_url, puoi anche aggiungere i tuoi parametri di ricerca da utilizzare nella pagina di ritorno.

ParametroDescrizione
payment_intentIdentificativo univoco per il PaymentIntent
payment_intent_client_secretLa chiave privata client dell’oggetto PaymentIntent. Per le integrazioni per gli abbonamenti, questo client_secret è esposto anche nell’oggetto Invoice tramite confirmation_secret

Quando il cliente viene reindirizzato al tuo sito, puoi utilizzare il payment_intent_client_secret per eseguire una query per il PaymentIntent e mostrare al cliente lo stato della transazione.

I dettagli sull’opzione di pagamento Klarna selezionata dal cliente in charge sono disponibili nella proprietà payment_method_details. I valori consentiti sono quattro: pay_later, pay_with_financing, pay_now e pay_in_installments. Per ulteriori informazioni su queste opzioni, consulta la pagina della panoramica di Klarna.

Puoi anche trovare le impostazioni locali utilizzate per localizzare la pagina dei pagamenti di Klarna nella proprietà payment_method_details.

{ "charges": { "data": [ { "payment_method_details": { "klarna": { "payment_method_category": "pay_in_installments", "preferred_locale": "en-US" }, "type": "klarna" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU",

Esegui il test dell’integrazione

Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito.

ApprovatoRifiutato
Data di nascita10-07-197003-05-1994
NomeTestJohn
CognomePerson-ausnow
ViaWharf StSilverwater Rd
Numero civico41-5
Codice postale48772.128
CittàPort DouglasSilverwater
Area geograficaQLDNSW
Telefono+61473752244+61473763254
Emailcustomer@email.aucustomer+denied@email.au

Per i test in produzione, puoi utilizzare un importo di 3500nella tua valuta locale per testare tutte le opzioni di pagamento di Klarna oltre ai finanziamenti. Ad esempio, se vuoi testare il pagamento in tre rate in Italia, puoi utilizzare una transazione di 35,00 EUR.

Autenticazione a due fattori

Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza 999999 per la mancata autenticazione.

Modalità di rimborso

Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso:

TipoValore
Addebito direttoDE11520513735120710131
Bonifico bancarioBanca demo
Carta di credito
  • Numero: 4111 1111 1111 1111
  • CVV: 123
  • Scadenza: qualsiasi data valida nel futuro
Carta di debito
  • Numero: 4012 8888 8888 1881
  • CVV: 123
  • Scadenza: qualsiasi data valida nel futuro

Pagamenti non riusciti

Klarna decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Klarna, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente.

Quando il cliente seleziona un metodo di pagamento a rate, Klarna esegue una valutazione del rischio prima di accettare la transazione. A seconda del risultato della valutazione, dell’importo della transazione o del debito residuo del cliente, Klarna potrebbe rifiutare la transazione. Pertanto ti consigliamo di inserire altre opzioni di pagamento nel flusso di completamento della transazione, come ad esempio card. In questi casi, il PaymentMethod viene scollegato e lo stato dell’oggetto PaymentIntent diventa automaticamente a requires_payment_method.

I clienti devono completare il pagamento entro 48 ore dal reindirizzamento al sito Klarna. Se non viene intrapresa alcuna azione dopo 48 ore, l’oggetto PaymentMethod viene scollegato e lo stato dell’oggetto PaymentIntent passa automaticamente da requires_action a requires_payment_method.

In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione.

Limiti di frequenza di Klarna

Le richieste API indirizzate a Klarna sono soggette a limiti di frequenza oltre ai limiti di frequenza a livello dell’API di Stripe. Questi limiti possono variare a seconda della forma delle richieste API effettuare. In generale, se invii più di 50 richieste al minuto,potresti riscontrare alcuni limiti di frequenza sotto forma di risposte con codice di stato HTTP 400 o 402. Contattaci per ulteriori informazioni se temi che il tuo utilizzo possa raggiungere questi livelli, poiché Klarna potrebbe essere in grado di aumentare questi limiti caso per caso.

Messaggi di errore

In genere i pagamenti Klarna non riusciti restituiscono uno dei seguenti codici di errore. Questi codici vengono visualizzati nell’oggetto API last_payment_error.

Attenzione

Prima della versione API 2023-08-16, tutti gli errori di Klarna venivano segnalati come payment_intent_authentication_failure. Verifica che la tua versione dell’API sia aggiornata per visualizzare gli errori dettagliati elencati di seguito.

Codice di erroreSpiegazione
payment_method_customer_declineIl cliente ha annullato il pagamento sulla pagina di Klarna
payment_method_provider_declineKlarna ha rifiutato il pagamento del cliente
payment_intent_payment_attempt_expiredIl cliente non ha mai completato il pagamento sulla pagina di Klarna e la sessione di pagamento è scaduta
payment_method_not_availableSi è verificato un errore imprevisto durante il tentativo di utilizzare Klarna

Personalizzazioni facoltative

Puoi implementare facoltativamente diverse personalizzazioni per i flussi di pagamento Klarna (come la separazione dell’autorizzazione e dell’acquisizione dei fondi) e le interazioni con i clienti (come la gestione dei reindirizzamenti).

Separa l’autorizzazione dall’acquisizione

Klarna supporta l’autorizzazione e l’acquisizione separate. Se si verifica un ritardo tra il pagamento e la consegna dei prodotti al cliente, autorizza prima il pagamento e acquisiscilo in un secondo tempo. Al momento dell’acquisizione, Klarna invia un estratto al cliente e stabilisce le date di scadenza per gli eventuali pagamenti successivi che devono essere effettuati. Un pagamento Klarna autorizzato deve essere acquisito entro 28 giorni dall’autorizzazione. Altrimenti, l’autorizzazione viene annullata automaticamente e non potrai più acquisire il pagamento.

  1. Indicare a Stripe di eseguire solo l’autorizzazione

    Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta capture_method su manual quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "payment_method_types[]"=klarna \ -d amount=1099 \ -d currency=eur \ -d capture_method=manual
  2. Acquisire i fondi

    Dopo l’avvenuta autorizzazione, lo stato PaymentIntent passa a requires_capture. Per acquisire i fondi autorizzati, crea una richiesta di acquisizione di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents/
    {{PAYMENT_INTENT_ID}}
    /capture
    \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d amount_to_capture=750
  3. Facoltativo Annullare l’autorizzazione

    Klarna confronta tutti i pagamenti autorizzati con il potere d’acquisto totale del cliente in Klarna. Per questo motivo devi annullare attivamente tutti i pagamenti autorizzati degli ordini che non puoi evadere (ad esempio, i prodotti non possono essere spediti) non appena il dato risulta evidente.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents/
    {{PAYMENT_INTENT_ID}}
    /cancel
    \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d cancellation_reason=abandoned

Gestisci manualmente il reindirizzamento di Klarna

Per gestire i reindirizzamenti e i pagamenti Klarna lato client con confirmKlarnaPayment, consigliamo di utilizzare Stripe.js. Utilizzando Stripe.js puoi estendere l’integrazione ad altri metodi di pagamento. Tuttavia, puoi anche reindirizzare manualmente i clienti al tuo server seguendo questi passaggi:

  1. Crea e conferma un PaymentIntent di tipo klarna. Devi specificare l’URL di reindirizzamento successivo al pagamento per il cliente nel campo return_url. Quando specifichi i parametri di ricerca in questo URL, questi verranno automaticamente inclusi nell’URL di reindirizzamento finale.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "payment_method_types[]"=klarna \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode return_url="https://example.com/checkout/complete" \ -d "payment_method_data[type]"=klarna
  2. Il PaymentIntent creato ha lo stato requires_action e il tipo per next_action è redirect_to_url.

    { "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099,
  3. Reindirizza il cliente all’URL specificato nella proprietà next_action.redirect_to_url.url. Il codice esemplificativo indicato qui è approssimativo. La modalità di reindirizzamento potrebbe essere diversa nel tuo web framework.

    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    if payment_intent.status == 'requires_action' && payment_intent.next_action.type == 'redirect_to_url' url = payment_intent.next_action.redirect_to_url.url redirect(url) end

Al termine della procedura di pagamento, il cliente viene indirizzato al return_url configurato nel passaggio 1. Sono inclusi i parametri di ricerca dell’URL payment_intent e payment_intent_client_secret. Se return_url includeva già parametri di ricerca, vengono conservati anche questi.

Ti consigliamo di utilizzare i webhook per confermare lo stato di un pagamento.

Gestisci gli eventi successivi al pagamento

Stripe invia un evento payment_intent.succeeded quando il pagamento viene completato. Utilizza la Dashboard, un webhook personalizzato o una soluzione partner per ricevere questi eventi ed eseguire azioni come l’invio della conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione.

Ascolta questi eventi invece di attendere un callback dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente anche di accettare metodi di pagamento diversi in futuro. Ulteriori informazioni sulle differenze tra tutti i metodi di pagamento supportati.

  • Gestisci gli eventi manualmente nella dashboard

    Utilizza la dashboard per visualizzare i pagamenti di test nella dashboard, inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti.

  • Crea un webhook personalizzato

    Crea un gestore webhook personalizzato per rilevare gli eventi e creare flussi di pagamento asincroni personalizzati. Esegui il test e il debug in locale dell’integrazione webhook con la CLI di Stripe.

  • Integra un’app preimpostata

    Gestisci eventi comuni dell’attività, come l’automazione, il marketing e i saldi, integrando una richiesta di registrazione del partner.

Personalizzazione della pagina di pagamento Klarna

  • Precompilazione del modulo Klarna

    Quando il cliente sceglie di pagare Klarna con un’opzione di pagamento posticipato, ad esempio un pagamento a rate e un finanziamento, Klarna raccoglie informazioni sufficienti per la valutazione del rischio e l’approvazione. Il tipo di informazioni dipende dal Paese del cliente. Per la maggior parte dei Paesi europei, si tratta dei dettagli di fatturazione completi e della data di nascita. Puoi specificare queste informazioni attraverso l’API e il modulo verrà precompilato quando il cliente arriverà sulla pagina.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/payment_intents \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "payment_method_types[]"=klarna \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode return_url="https://example.com/checkout/complete" \ -d "payment_method_data[type]"=klarna \ --data-urlencode "payment_method_data[billing_details][email]"="customer@example.com" \ -d "payment_method_data[billing_details][name]"="Jenny Rosen" \ --data-urlencode "payment_method_data[billing_details][phone]"="+4915142321555" \ -d "payment_method_data[billing_details][address][line1]"="Alexanderplatz 1" \ -d "payment_method_data[billing_details][address][city]"=Berlin \ -d "payment_method_data[billing_details][address][postal_code]"=10551 \ -d "payment_method_data[billing_details][address][country]"=DE \ -d "payment_method_data[klarna][dob][day]"=10 \ -d "payment_method_data[klarna][dob][month]"=10 \ -d "payment_method_data[klarna][dob][year]"=1990
    Screenshot di una pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall'API e personalizzata in modo da visualizzarla in inglese

    Pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall’API e personalizzata in modo da visualizzarla in inglese per un cliente in Germania

Aggiungi gli articoli al PaymentIntent

Voci riga unificate con Klarna

Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati line_items per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le voci riga di Payments.

Visualizza i messaggi sulla modalità di pagamento nel tuo sito web

Payment Method Messaging Element è un componente dell’interfaccia utente incorporabile che aiuta i clienti a sapere quali opzioni di pagamento a rate hanno al momento del pagamento direttamente dalle pagine del prodotto, del carrello o del pagamento.

Per aggiungere Payment Method Messaging Element al tuo sito web, consulta Messaggi sul metodo di pagamento.

Prince of Persia book
The Making of Prince of Persia: Journals 1985-1993
Jordan Mechner
99,00 USD
Questa pagina è stata utile?
SìNo
  • Hai bisogno di aiuto? Contatta l'assistenza clienti.
  • Dai un'occhiata al nostro registro delle modifiche.
  • Domande? Contattaci.
  • LLM? Leggi llms.txt.
  • Realizzato da Markdoc