Klarna pay later - Intégration

S’abonner




Comment configurer votre compte ?


Il vous faut obtenir un compte de test auprès de Klarna. Voici un lien pour demander la création d'un compte de test : www.klarna.com
Les données de tests vous seront communiquées par Klarna avec votre compte de tests.

Vous devez vous rapprocher de votre responsable de compte partenaire pour obtenir les informations nécessaires permettant de configurer votre compte de production sur Payline (login du compte et  mot de passe).
Ensuite veuillez adresser un email à notre équipe support@payline.com avec les informations, afin qu'ils puissent procéder au paramétrage dans votre compte marchand Payline en indiquant l’ID Marchand et le nom de l’alias du contrat partenaire à créer.
Vous devez réaliser des transactions 'pilote' pour valider le bon fonctionnement en production.

La configuration du moyen de paiement nécessite de renseigner les champs suivants :


Comment proposer le paiement Klarna pay later à vos clients ?

Les principes d’utilisation

Une fois le moyen de paiement activé, il est utilisable au travers des fonctions standard Payline en indiquant le contrat du moyen de paiement Contrat_Number. 
Le mode d'intégration est disponible avec l'API WebPayment  : services doWebPayment et getWebPaymentDetails

Les web services en mode Web

  • Interfaces de paiement : API WebPayment, Cente d'administration.

  • Paiement à la commande : en utilisant le service  doWebPayment  avec payment.mode à CPT et code Action à 101.

  • Paiement à l'expédition : en utilisant les services doWebPayment  et doCapture avec le code Mode à CPT et code Action à 100.
  • Mode de paiement :  sélectionner votre mode de paiement : comptant, différé, récurrent, n fois  avec le code Mode = CPT, DIF.
  • Paiement en différé : en utilisant les services doAuthorization et doCapture avec le code Mode à DIF et le code Action à 100.
  • Demande d'annulation d'une autorisation non encaissée : utilisez la fonction doReset permet au marchand de demander l’annulation totale ou partielle de la commande.
  • Demande de remboursement d'une transaction remisée : utilisez la fonction doRefund pour rembourser la commande.

Les champs obligatoires

Les champs obligtoires doivent être renseignés lors de la demande de paiement, dans le cas contraire la demande sera refusée. 

Les balises ci-dessous sont obligatoires dans la trame SOAP Payline lors de la demande de paiement.

Si ces champs ne sont pas valorisés dans les requêtes SOAP lors de l'invocation aux services Web doAuthorisation et doWebPayment, alors une erreur PAYLINE est remontée : "code=41103, shortMessage=Transaction refused, longMessage=Missing data".

Balises Description Requis Type
payment.currency Code de la devise du paiement oui N3
buyer.title Titre de l'acheteur oui AN1
buyer.lastName Nom de l’acheteur oui AN100
buyer.firstName Prénom de l’acheteur oui AN100
buyer.email Adresse email de l’acheteur oui AN150
buyer.shippingAdress.street1 Nom de la rue de la livraison oui AN100
buyer.shippingAdress.cityName Nom de la ville de livraison oui AN100
buyer.shippingAdress.zipCode Code postal de la livraison oui AN20
buyer.shippingAdress.country Pays de la livraison (ISO 3166-1) oui AN2
buyer.shippingAdress.phone Téléphone de l'acheteur oui AN15
buyer.ip L’adresse IP de l’acheteur

(Format : IPv4 ou IPv6)

oui AN50
buyer.birthDate Date de naissance de l'acheteur oui AN15
order.details Détail d'une commande oui voir les clefs ci dessous


La liste des balises ci-dessous présente le détail des articles d'une commande KLARNA y compris les frais de transport et les frais de manutention :

Services Description
order.details.comment Description d'un article.
order.details.price Prix unitaire TVA comprise de l'article.
discountRate dans order.details.additionalData Taux de TVA appliqué à l'article. Pour information : une TVA > 100% est interdite.
order.details.quantity Quantité de l'article.
flags dans order.details.additionalData

Identifie le type d'article :

Les valeurs possibles sont les suivantes :

8  : Frais de transport ;
16 : Frais de manutention ;
32 : Prix d'un article TTC.

Comment réaliser des tests ?

Le banc de test KLARNA impose des valeurs spécifiques pour simuler une commande refusée ou approuvée.
Ci-dessous, les différentes valeurs nécessaires pour l'exploitation de l'environnement de test PAYSOURCE.
Pour plus d'informations sur les données de tests, veuillez consulter la page Web suivante https://developers.klarna.com/en/de+php/kpm/test-credentials

BALISES

COMMANDE APPROUVÉE

COMMANDE REFUSÉE

VALEURS

VALEURS

payment.currency

978

idem

buyer.title

M

idem

buyer.lastName

Approved

Denied

buyer.firstName

Testperson-de

idem

buyer.email

youremail@email.com

idem

buyer.shippingAdress.street1

Hellersbergstrabe 14

idem

buyer.shippingAdress.cityName

Neuss

idem

buyer.shippingAdress.zipCode

41460

idem

buyer.shippingAdress.country

DE

idem

buyer.shippingAdress.phone

01522113356

idem

buyer.ip

Valeur quelconque

idem

buyer.birthDate

1960-07-07

idem

Les codes de retour

Avec l'API WebPayment, Payline vous informe du résultat d'un paiement via le ShortMessage des services getWebPaymentDetails.
Avec l'API DirectPayment, Payline vous informe du résultat de manière synchrone en réponse du service getTransactionDetails.
Lorsque le paiement est accepté, Payline renvoie le ShortMessage = ACCEPTED.
Pour un paiement refusé, le code varie en fonction du motif de refus (Par exemple : 04xxx pour une suspicion de fraude).

Les codes spécifiques au moyen de paiement sont listés ici.


Exemple de trame

Ouvrir l'exemple
<ns1:doWebPaymentRequest xmlns:ns2="http://obj.ws.payline.experian.com" xmlns:ns1="http://impl.ws.payline.experian.com" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/enve
lope/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  <ns1:version>9</ns1:version>
 
<ns1:payment>
   
<ns2:amount>1000</ns2:amount>
   
<ns2:currency>978</ns2:currency>
   
<ns2:action>101</ns2:action>
   
<ns2:mode>CPT</ns2:mode>
   
<ns2:contractNumber>KLARNA_01</ns2:contractNumber>
   
<ns2:differedActionDate xsi:nil="true"/>
   
<ns2:method xsi:nil="true"/>
 
</ns1:payment>
 
<ns1:returnURL>http://demo.payline.com/~kitphp/examples/demos/web.php?e=getWebPaymentDetails</ns1:returnURL>
 
<ns1:cancelURL>http://demo.payline.com/~kitphp/examples/demos/web.php?e=getWebPaymentDetails</ns1:cancelURL>
 
<ns1:order>
   
<ns2:ref>PHP-1449845087</ns2:ref>
   
<ns2:origin>1</ns2:origin>
   
<ns2:country>FR</ns2:country>
   
<ns2:taxes>50</ns2:taxes>
   
<ns2:amount>1000</ns2:amount>
   
<ns2:currency>978</ns2:currency>
   
<ns2:date>11/12/2015 15:44</ns2:date>
   
<ns2:details>
     
<ns2:details>
       
<ns2:ref>reference1</ns2:ref>
       
<ns2:price>400</ns2:price>
       
<ns2:quantity>1</ns2:quantity>
       
<ns2:comment>Comment for item 1</ns2:comment>
       
<ns2:category>10</ns2:category>
       
<ns2:brand>br1</ns2:brand>
       
<ns2:subcategory1 xsi:nil="true"/>
       
<ns2:subcategory2 xsi:nil="true"/>
       
<ns2:additionalData xsi:nil="true"/>
       
<ns2:taxRate>5</ns2:taxRate>
     
</ns2:details>
     
<ns2:details>
       
<ns2:ref>reference2</ns2:ref>
       
<ns2:price>600</ns2:price>
       
<ns2:quantity>1</ns2:quantity>
       
<ns2:comment>Comment for item 2</ns2:comment>
       
<ns2:category>10</ns2:category>
       
<ns2:brand>br2</ns2:brand>
       
<ns2:subcategory1 xsi:nil="true"/>
       
<ns2:subcategory2 xsi:nil="true"/>
       
<ns2:additionalData xsi:nil="true"/>
       
<ns2:taxRate>5</ns2:taxRate>
     
</ns2:details>
   
</ns2:details>
   
<ns2:deliveryTime>1</ns2:deliveryTime>
   
<ns2:deliveryMode>4</ns2:deliveryMode>
   
<ns2:deliveryExpectedDate>15/12/2015</ns2:deliveryExpectedDate>
   
<ns2:deliveryExpectedDelay>4</ns2:deliveryExpectedDelay>
 
</ns1:order>
 
<ns1:notificationURL>http://demo.payline.com/~kitphp/examples/demos/web.php?e=getWebPaymentDetails</ns1:notificationURL>
 
<ns1:selectedContractList>
   
<ns2:selectedContract>KLARNA_01</ns2:selectedContract>
   
<ns2:selectedContract>1234567</ns2:selectedContract>
 
</ns1:selectedContractList>
 
<ns1:secondSelectedContractList xsi:nil="true"/>
 
<ns1:privateDataList>
   
<ns2:privateData>
     
<ns2:key>key 1</ns2:key>
     
<ns2:value>value 1</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 3</ns2:key>
     
<ns2:value>value 3</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 2</ns2:key>
     
<ns2:value>value 2</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 4</ns2:key>
     
<ns2:value>value 4</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 5</ns2:key>
     
<ns2:value>value 5</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 7</ns2:key>
     
<ns2:value>value 7</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 6</ns2:key>
     
<ns2:value>value 6</ns2:value>
   
</ns2:privateData>
   
<ns2:privateData>
     
<ns2:key>key 8</ns2:key>
     
<ns2:value>value 8</ns2:value>
   
</ns2:privateData>
 
</ns1:privateDataList>
 
<ns1:languageCode xsi:nil="true"/>
 
<ns1:customPaymentPageCode>rv7hobkSIcgdoCAHzdSa</ns1:customPaymentPageCode>
 
<ns1:buyer>
   
<ns2:title>M</ns2:title>
   
<ns2:lastName>Approved</ns2:lastName>
   
<ns2:firstName>Testperson-de</ns2:firstName>
   
<ns2:email>youremail@email.com</ns2:email>
   
<ns2:shippingAdress>
     
<ns2:title>M</ns2:title>
     
<ns2:name xsi:nil="true"/>
     
<ns2:firstName>Approved</ns2:firstName>
     
<ns2:lastName>Testperson-de</ns2:lastName>
     
<ns2:street1>Hellersbergstrabe 14</ns2:street1>
     
<ns2:street2 xsi:nil="true"/>
     
<ns2:cityName>Neuss</ns2:cityName>
     
<ns2:zipCode>41460</ns2:zipCode>
     
<ns2:country>DE</ns2:country>
     
<ns2:phone>01522113356</ns2:phone>
     
<ns2:state xsi:nil="true"/>
     
<ns2:county xsi:nil="true"/>
     
<ns2:phoneType>1</ns2:phoneType>
   
</ns2:shippingAdress>
   
<ns2:billingAddress>
     
<ns2:title>M</ns2:title>
     
<ns2:name xsi:nil="true"/>
     
<ns2:firstName>Approved</ns2:firstName>
     
<ns2:lastName>Testperson-de</ns2:lastName>
     
<ns2:street1>Hellersbergstrabe 14</ns2:street1>
     
<ns2:street2 xsi:nil="true"/>
     
<ns2:cityName>Neuss</ns2:cityName>
     
<ns2:zipCode>41460</ns2:zipCode>
     
<ns2:country>DE</ns2:country>
     
<ns2:phone>01522113356</ns2:phone>
     
<ns2:state xsi:nil="true"/>
     
<ns2:county xsi:nil="true"/>
     
<ns2:phoneType>2</ns2:phoneType>
   
</ns2:billingAddress>
   
<ns2:accountCreateDate>10/02/09</ns2:accountCreateDate>
   
<ns2:accountAverageAmount>5123</ns2:accountAverageAmount>
   
<ns2:accountOrderCount>7</ns2:accountOrderCount>
   
<ns2:walletId>W_JohnDOE_20090210</ns2:walletId>
   
<ns2:walletDisplayed xsi:nil="true"/>
   
<ns2:walletSecured xsi:nil="true"/>
   
<ns2:walletCardInd xsi:nil="true"/>
   
<ns2:ip xsi:nil="true"/>
   
<ns2:mobilePhone>0600000000</ns2:mobilePhone>
   
<ns2:customerId>JohnDOE_20090210</ns2:customerId>
   
<ns2:legalStatus xsi:nil="true"/>
   
<ns2:legalDocument xsi:nil="true"/>
   
<ns2:birthDate>1960-07-07</ns2:birthDate>
   
<ns2:fingerprintID>65w4765xf45qs4fmjslgkj354q354</ns2:fingerprintID>
 
</ns1:buyer>
 
<ns1:owner xsi:nil="true"/>
 
<ns1:securityMode xsi:nil="true"/>
 
<ns1:recurring xsi:nil="true"/>
 
<ns1:customPaymentTemplateURL xsi:nil="true"/>
 
<ns1:contractNumberWalletList xsi:nil="true"/>
</ns1:doWebPaymentRequest>
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande

Commentaires

Réalisé par Zendesk