Connecteur JSON

De Documentation Mercanet
Aller à : navigation, rechercher

Paiement par carte via le connecteur JSON

Schema mercanet json.png

  1. Envoi des données :
    Le marchand envoie les données à Mercanet via une requête JSON.
  2. Paramètres de redirection :
    Le marchand reçoit en retour les paramètres de redirection lui permettant de faire l'appel de la page de paiement.
  3. Appel de Mercanet :
    Le marchand fait l'appel à la page de paiement Mercanet en envoyant avec la méthode POST un formulaire contenant les champs : redirectionData et redirectionVersion.
  4. Redirection sur la page de paiement Mercanet :
    Après vérification de l'intégrité des données reçues, Mercanet redirige le porteur sur :
    • la page de sélection des moyens de paiement puis,
    • la page de saisie des données carte.
  5. Demande d'autorisation et affichage de la réponse :
    Après la saisie des données cartes, une demande d'autorisation est réalisée auprès de la banque de l'acheteur (banque émettrice) et la réponse est ensuite affichée.
  6. Réponse automatique :
    Suite au résultat de la transaction, Mercanet envoie immédiatement une réponse automatique au serveur du marchand. Cette réponse est envoyée à l'URL qui est renseignée dans le champ automaticResponseUrl du champ Data.
  7. Réponse manuelle :
    Après que l'acheteur ait cliqué sur le bouton "Continuer" sur la page de résultat de la transaction, Mercanet effectue une redirection sur le serveur du marchand. L'acheteur est ainsi redirigé sur l'URL du marchand qui est renseignée dans le champ normalReturnUrl du champ Data.

Détail sur l'envoi des données de la requête de paiement

L'envoi des données à Mercanet s'effectue via une requête JSON.

Envoi de données simples

Les données simples doivent être envoyées au format suivant :

{“nom du champ 1” : ”valeur 1”, “nom du champ 2” : “valeur 2”, “nom du champ 3” : “valeur 3”}

Les champs obligatoires à envoyer à Mercanet sont les suivants :

Champ

Valeur

Description

amount

1200

A renseigner avec le montant de la transaction.
Dans notre exemple, la valeur correspond à 12.00€

currencyCode

978

Code ISO 4217 de la devise de la transaction
Dans notre exemple, la valeur correspond à la devise €

interfaceVersion

IR_WS_2.18

Version de l’interface du connecteur

keyVersion

1

Version de la clé secrète récupérée dans Mercanet Téléchargement

merchantId

211000021310001

Identifiant de la boutique Mercanet

normalReturnUrl

https://www.marchand.com/normal_return.php

Traitement de retour manuel sur le site du commerçant

orderChannel

INTERNET

Canal de commande utilisé

transactionReference 

123456

Identifiant unique de la transaction de paiement

Seal

8b3e01a5c2ec76a3954f93bd5ce1ad894a9a8280f68fb9a8b0ffe9523a790e4b

Vérification de l'intégrité des données transmises : champ calculé à partir des données transmises et de la clé secrète

Envoi de données sous forme de liste

Les données listes doivent être envoyées au format suivant :

{“nom du champ 1” : [”valeur 1”, “valeur 2”], “nom du champ 2” : [”valeur 3”, “valeur 4”, “valeur 5”]}

Voici un exemple avec le champ paymentMeanBrandList :

{"amount" : "1000", "paymentMeanBrandList" : ["VISA","MASTERCARD"], ... }

Envoi de données sous forme d'objet

Les données objet doivent être envoyées au format suivant :

{“nom du champ 1” : {“nom du champ 2” : ”valeur 2”, “nom du champ 3” : “valeur 3”}, ... }

Voici un exemple avec le champ customerContact :

{"amount" : "1000", customerContact" : {"email" : "assistance.mercanet@bnpparibas.com", "firstname" : "Assistance", "lastname" : "Mercanet"}, ... }

Calcul de la signature


Pour assurer l’intégrité des données envoyées par le commerçant vers Mercanet, les données émises sont signées afin de vérifier qu’elles n’ont pas été altérées et authentifier qu’il s’agit bien du commerçant.

Le calcul de la signature est basé sur un HMAC avec SHA256 sur :

  • une concaténation des valeurs des champs correspondant au nom des champs triés par ordre alphabétique,
  • les valeurs des champs "keyVersion" et "sealAlgorithm" ne sont pas à prendre en compte pour le calcul de la signature,
  • les valeurs des données doivent être encodées en UTF8.


Voici un exemple de calcul de la signature en PHP :

<?php
  $SecretKey = "S9i8qClCnb2CZU3y3Vn0toIOgz3z_aBi79akR30vM9o";
  $PaymentRequest = '{"amount" : "1200","currencyCode" : "978","interfaceVersion" : "IR_WS_2.18","keyVersion" : "1","merchantId" : "211000021310001","normalReturnUrl" : "https://www.marchand.com/normal_return.php","orderChannel" : "INTERNET,"transactionReference" : "123456","seal" : "fac5bc8e5396d77a8b31a2a79a38750feea71b22106a2cec88efa3641a947345"}';
  $DataForSeal = "1200978IR_WS_2.18211000021310001https://www.marchand.com/normal_return.phpINTERNET123456";   // Valeur des champs triés sur le nom des champs
  $DataToSend = utf8_encode($DataForSeal);                   // conversion du champ DataForSeal en UTF8
  $Seal=hash_hmac('sha256', $DataToSend, $SecretKey);        // hmac avec un hash du champ DatatToSend crypté par la clé secrète 
  
  echo "Seal = ".$Seal;
?>


Le résultat du Seal dans notre cas est : 8b3e01a5c2ec76a3954f93bd5ce1ad894a9a8280f68fb9a8b0ffe9523a790e4b

URL et service à utiliser avec le connecteur JSON

Les données de la requête de paiement doivent être envoyées avec la méthode POST à l'adresse d'appel de Mercanet constitué de :

  1. l'URL d'appel de Mercanet,
  2. le service utilisé.


Voici la liste des URL d'appel de Mercanet en fonction des différents environnements :

ContexteDescriptionURL d'appel de Mercanet
SIMU Boutique de simulation https://payment-webinit.simu.mercanet.bnpparibas.net/
TEST Boutique de test https://payment-webinit-mercanet.test.sips-atos.com
PROD Boutique de production https://payment-webinit.mercanet.bnpparibas.net


En plus de l'URL d'accès à Mercanet, il faut ajouter le service en fonction de l'usage souhaité pour constituer l'adresse d'appel de Mercanet :

Description

Service

Appel de la page de paiement déportée

paymentInit

Gestion du Wallet

walletManagementInit


Voici par exemple l'URL d'appel de Mercanet utilisée pour appeler en production le service de paiement : https://payment-webinit.mercanet.bnpparibas.net/paymentInit

Détail sur la réception des paramètres de redirection

En retour de l'envoi des données de la requête de paiement via JSON, Mercanet répond les paramètres suivants dont voici un exemple de valeurs :

Champ

Valeur

Description

redirectionData

4AgbsrffvPgzDghQ ...

Données encodées contenant les informations sur la transaction

redirectionStatusCode

00

Code statut
00 = Tout s'est bien passé.
Cf valeurs possibles du champ dans le dico des données

redirectionStatusMessage

INITIALISATION REQUEST ACCEPTED

Libellé du statut
Dans notre cas, confirmation que tout s'est bien passé.

redirectionUrl

https://payment-web-mercanet.test.sips-atos.com/payment

URL sur laquelle il faut rediriger les informations pour appeler la page de paiement Mercanet

redirectionVersion

IR_WS_2.0

Version de l'interface

seal

fb320ed327fbb07297f07611384b58da35cbd1a9b6f09e2f47cdfe237d221809

Signature permettant de vérifier l'intégrité des données transmises afin de s'assurer que c'est bien Mercanet qui a répondu

Détail sur l'appel de Mercanet

L'appel de Mercanet consiste à reprendre les paramètres de redirection retournés dans le chapitre précédent et à les envoyer à Mercanet via un formulaire POST.

Voici la liste des champs à envoyer dans un formulaire POST à l'adresse "redirectionUrl" retournée précédemment :

Champ

Valeur

Description

redirectionVersion

IR_WS_2.0

Version de l'interface

redirectionData

4AgbsrffvPgzDghQ ...

Données encodées


Exemples

Exemple simple d'appel de Mercanet

L'exemple simple ci-dessous, écrit en PHP, vous permet de comprendre comment envoyer une requête de paiement à Mercanet :

<?php
	// Données à envoyer à Mercanet
	$transactionReference = "test" . rand(100000,999999);            // Génère un numéro de transaction aléatoire
	$amount = "1200";                                                // Montant de la transaction en centime
	$currencyCode = "978";                                           // Code de la devise 
	$normalReturnUrl = "https://www.marchand.com/normal_return.php"; // URL de retour pour récupérer le résultat du paiement sur le site e-commerce du marchand
	$merchandId = "211000021310001";                                 // Identifiant du marchand de test
	$secretKey = "S9i8qClCnb2CZU3y3Vn0toIOgz3z_aBi79akR30vM9o";      // Clé secrète du marchand liée au marchand de test
	$keyVersion = "1";                                               // Version de la clé secrète liée au marchand de test
	$orderChannel = "INTERNET";                                      // Canal de commande utilisé
	$interfaceVersion = "IR_WS_2.18";                                // Version de l'interface JSON

	// Calcul de la signature des données  
	$dataForSeal = $amount.$currencyCode.$interfaceVersion.$merchandId.$normalReturnUrl.$orderChannel.$transactionReference; // Ne pas mettre les champs keyVersion et sealAlgorithm
	$dataToSend = utf8_encode($dataForSeal);                         // conversion du champ Data en UTF8
	$seal=hash_hmac('sha256', $dataToSend, $secretKey);              // hmac avec SHA256 des valeurs des données envoyées en UTF8 (triées par nom de champs)

	// Contruit la requête des données à envoyer à Mercanet
	$paymentRequest = '{"amount" : "'.$amount.'","currencyCode" : "'.$currencyCode.'","interfaceVersion" : "'.$interfaceVersion.'","keyVersion" : "'.$keyVersion.'","merchantId" : "'.$merchandId.'","normalReturnUrl" : "'.$normalReturnUrl.'","orderChannel" : "'.$orderChannel.'","transactionReference" : "'.$transactionReference.'","seal" : "'.$seal.'"}';

	// Envoi des données à Mercanet
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "https://payment-webinit-mercanet.test.sips-atos.com/rs-services/v2/paymentInit" );
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
	curl_setopt($ch, CURLOPT_POST, true );
	curl_setopt($ch, CURLOPT_POSTFIELDS, $paymentRequest);
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept:application/json'));
	curl_setopt($ch, CURLOPT_PORT, 443);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	$result = curl_exec($ch); 
	$info = curl_getinfo($ch);

	if (!$result) {
		Print "curl error: " . curl_error($ch) . "\n";
		curl_close($ch);
		die();
	}

	if ($info['http_code'] != 200) {
		Print "service error: " . $info['http_code'] . "\n";
		Print "return: " . $result . "\n";
		curl_close($ch);
		die();
	}
	curl_close($ch);

	if (strlen($result) == 0) {
		Print "service did not sent back data\n";
		die();
	}
	
	$result_array = json_decode($result);

        // Appel de Mercanet avec les données de redirection retournées par Mercanet
	if ($result_array->redirectionStatusCode == "00")
	{
		echo "<html><body><form name=\"redirectForm\" method=\"POST\" action=\"" . $result_array->redirectionUrl . "\">" .
		 "<input type=\"hidden\" name=\"redirectionVersion\" value=\"". $result_array->redirectionVersion . "\">" .
		 "<input type=\"hidden\" name=\"redirectionData\" value=\"". $result_array->redirectionData . "\">" .
		 "<noscript><input type=\"submit\" name=\"Go\" value=\"Click to continue\"/></noscript> </form>" .
		 "<script type=\"text/javascript\"> document.redirectForm.submit(); </script>" .
		 "</body></html>";
	}
?>

[Démonstration d'un paiement simple]

Exemple d'un paiement N fois

[Démonstration d'un paiement en n fois]

Exemple simple de traitement de la réponse de Mercanet

L'exemple simple ci-dessous, écrit en PHP, vous permet de comprendre comment réceptionner la réponse de Mercanet :

<?php
  $chaine = "";
  foreach($_POST as $k => $v)
  {
    if (strlen($v) > 0)
    {
      $chaine .= $k . '=' . $v ."<br>"; 
    }
  }
  echo "Retour = " . $chaine;
?>

Dans le programme de retour, il faut :

  • vérifier le seal retourné par Mercanet pour s'assurer que c'est bien Mercanet qui a fait la réponse au site e-commerce du marchand,
  • vérifier le résultat du paiement avec le champ responseCode contenu dans le champ POST Data
  • mettre à jour la commande du client avec le résultat du paiement

Kit de démarrage

Veuillez trouver ci-après un exemple de programme plus complet écrit en PHP vous permettant de mettre en oeuvre l'appel à la page de paiement de Mercanet :

Vous pourrez tester les différents moyens de paiement:

  • Paiement simple
  • paiement en N fois
  • Paiement différé
  • Paiement One click

Il vous suffit pour cela de télécharger le fichier zip ci-dessus et de décompresser le contenu du fichier zip sur votre serveur Web.

Paramétrer la requête de paiement

Voici un exemple de paramétrage de la requête de paiement pour chaque fonctionnalité disponible dans Sips Paypage JSON (le détail de ces fonctionnalités est décrit dans le guide des fonctionnalités).

Affichage dynamique des moyens de paiement

Il faut filtrer ceux qui s’afficheront dans la page de sélection des moyens de paiement grâce au champ paymentMeanBrandList:

.. ,"paymentMeanBrandList":["VISA","PAYPAL"],..

Affichage du ticket par Sips

La page de confirmation du paiement, affichée par défaut par Sips peut être désactivée. Cette désactivation se fait par le champ paypageData.bypassReceiptPage:

..,"paypageData":{"bypassReceiptPage":"true"},..

Canal de paiement

Pour choisir votre canal de paiement, vous devez remplir le champ orderChannel dans la requête de paiement:

..,"orderChannel":"INTERNET",..

Paiement en fin de journée

Dans le cas d’un paiement en fin de journée, il suffit de remplir les champs captureMode et captureDay:

..,"captureDay":"0","captureMode":"AUTHOR_CAPTURE",..

Paiement différé

Dans le cas d’un paiement à remiser N jours après l’acceptation en ligne, il suffit de remplir les champs captureMode et captureDay(3 jours dans notre exemple) :

..,"captureDay":"3","captureMode":"AUTHOR_CAPTURE",..

Paiement à l’expédition

Dans le cas d’un paiement à l’expédition, la transaction est envoyée en paiement lors votre validation, il faut juste remplir les champs captureMode et captureDay(3 jours de délai possible avant validation dans notre exemple) :

..,"captureDay":"3","captureMode":"VALIDATION",..

Paiement échelonné

Dans le cas d’un paiement en plusieurs échéances liées à une même transaction, il faut renseigner le champ paymentPattern à INSTALMENT et fournir le détail des échéances dans le champ instalmentData (600€ payés en 3 échéances dans notre exemple) :

.."amount":"60000",..,"transactionReference":"tref1",..,"instalmentData":{"amountsList":["10000","20000","30000"],"datesList":["20170504","20170603","20170703"],"number":"3","transactionReferencesList":["tref1","tref2","tref3"]},..,"paymentPattern":"INSTALMENT",…

Paiement immédiat

Si vous souhaitez un paiement immédiat (disponible uniquement pour certains moyens de paiement), la transaction est payée lors de l’autorisation en ligne :

..,"captureMode":"IMMEDIATE",..

Acceptation multidevises

Dans le casdes transactions multidevises le code devise doit être spécifié dans la requête. C’est dans le contrat d’acquisition qu’est précisée la devise de règlement.

..,"currencyCode":"840",..

Règlement en devises

L’acceptation et le règlement sont effectués dans la même devise qui doit être spécifiée dans la requête. Le règlement en devises est une option du contrat d’acquisition.

..,"currencyCode":"826",..

Conversion dynamique des devises (DCC)

Dans le cas où un service financier de conversion dynamique de devise (DCC) est utilisé, le code devise de référence doit être spécifié:

....,"currencyCode":"978",..

Débrayage dynamique du 3D Secure

Pour désactiver dynamiquement l’authentification 3D Secure, il faut spécifier cette action dans le champ fraudData.bypass3DS:

..,{"bypass3DS":"ALL"},..

Débrayage 3D Secure pour paiement Oneclick

Pour désactiver dynamiquement l’authentification 3D Secure pour les paiements en One click, il faut spécifier cette action dans le champ fraudData.bypass3DS:

..,{"bypass3DS":"MERCHANTWALLET"},..

Inscription et paiement Oneclick

Pour un paiement One click, l’identifiant du wallet du client doit être renseigné dans le champ merchantWalletId.

.. ,"merchantWalletId":"1205987",..

Prestataire agissant pour le compte d’un commerçant

Il faut passer l’identifiant du prestataire dans la requête dans le champ intermediateServiceProvider et utiliser la clé secrète de ce dernier pour calculer la donnée Seal:

..,"intermediateServiceProviderId":"241591",..

Données échangées avec Mercanet

Vous trouverez dans l'interface JSON , la liste des champs :

Exemple de réponse

Mercanet retourne par POST les mêmes champs Data, Seal et InterfaceVersion avec en retour les informations sur la transaction :

Data=captureDay=0|captureMode=AUTHOR_CAPTURE|currencyCode=978|merchantId=211000021310001|orderChannel=INTERNET|responseCode=00|transactionDateTime=2016-12-30T16:03:19+01:00|transactionReference=test337624|keyVersion=1|acquirerResponseCode=00|amount=100|authorisationId=368530|panExpiryDate=201701|paymentMeanBrand=VISA|paymentMeanType=CARD|complementaryCode=00|complementaryInfo=<RULE_RESULT SC=0 />,<CARD_INFOS BDOM=XXX COUNTRY=FRA PRODUCTCODE=F NETWORK=VISA BANKCODE=20041 PRODUCTNAME=VISA CLASSIC PRODUCTPROFILE=XXX />|customerIpAddress=159.50.252.71|maskedPan=5017##########02|returnContext=123456|scoreProfile=11_GONOGO_PRE_AUTHORISATION|holderAuthentRelegation=N|holderAuthentStatus=NO_AUTHENT|transactionOrigin=INTERNET|paymentPattern=ONE_SHOT|customerMobilePhone=null|mandateAuthentMethod=null|mandateUsage=null|transactionActors=null|mandateId=null|captureLimitDate=20161230|dccStatus=null|dccResponseCode=null|dccAmount=null|dccCurrencyCode=null|dccExchangeRate=null|dccExchangeRateValidity=null|dccProvider=null|statementReference=null|panEntryMode=MANUAL|walletType=null|holderAuthentMethod=NO_AUTHENT_METHOD|holderAuthentProgram=NO_AUTHENT|paymentMeanId=null|instalmentNumber=null|instalmentDatesList=null|instalmentTransactionReferencesList=null|instalmentAmountsList=null|settlementMode=null|mandateCertificationType=null|valueDate=null|creditorId=null|acquirerResponseIdentifier=null|acquirerResponseMessage=null|paymentMeanTradingName=null|additionalAuthorisationNumber=null|issuerWalletInformation=null|s10TransactionId=794066|s10TransactionIdDate=20161230|preAuthenticationColor=null|preAuthenticationInfo=null|preAuthenticationProfile=null|preAuthenticationThreshold=null|preAuthenticationValue=null|invoiceReference=null|s10transactionIdsList=null|cardProductCode=F|cardProductName=VISA CLASSIC|cardProductProfile=null|issuerCode=20041|issuerCountryCode=FRA|acquirerNativeResponseCode=00|settlementModeComplement=null|preAuthorisationProfile=11_GONOGO_PRE_AUTHORISATION|preAuthorisationProfileValue=unknown|preAuthorisationRuleResultList=[{"ruleCode":"SC","ruleType":"NG","ruleWeight":"D","ruleSetting":"I","ruleResultIndicator":"0","ruleDetailedInfo":"TRANS=1:5;CUMUL=100:X"}]|preAuthenticationProfileValue=null|preAuthenticationRuleResultList=null|paymentMeanBrandSelectionStatus=null|transactionPlatform=PROD

Seal=f9d0a4a11b046113c75285213fd772b9207d2861d4dfd46f1fda33136221c2d4

InterfaceVersion=HP_2.18

Réponses de Mercanet

Le marchand doit renseigner dans sa requête envoyée à Mercanet les URL de réponses manuelle et automatique pour vérifier si le paiement a été réalisé avec succès ou non.

Réponse manuelle

Le marchand doit obligatoirement renseigner une réponse manuelle pour que le porteur soit redirigé vers cette URL du marchand à la fin du paiement.

Cette URL du marchand est à renseigner dans le champ normalReturnUrl.

L'appel de cette URL du marchand ne signifie pas que le paiement soit réalisé et accepté.

Cette URL du marchand est appelé dans les cas suivants :

  • quand le porteur clique sur le bouton "Continuer" sur la page de résultat du paiement affichée par Mercanet
  • quand le porteur clique sur le bouton "Annuler" sur la page de saisie des informations de la carte

Warning sign.pngAttention :
Il faut savoir que le porteur peut :

  • ne pas cliquer sur le bouton "Continuer" à la fin du paiement,
  • avoir un problème de connexion réseau qui empêche la redirection cette URL du marchand.

C'est pour cela qu'à été ajouté une réponse automatique pour informer systématiquement le serveur du marchand du résultat du paiement.

Réponse automatique

La réponse automatique est le seul moyen pour assurer le marchand qu'un retour soit envoyé systématiquement vers son serveur à la fin de la transaction.

Le contenu de la réponse automatique est le même que celui de la réponse manuelle.

L'URL du marchand, appelée pour une réponse automatique, est à renseigner dans le champ automaticResponseUrl.

Warning sign.pngAttention :
Le marchand doit veiller à ne pas créer des commandes en double sur son serveur marchand suite à la réception des 2 réponses envoyées par Mercanet : réponse manuelle et automatique.

Contrôle des réponses

Les réponses manuelles et automatiques doivent être impérativement contrôlées par le marchand car ce n'est pas parce qu'une réponse est réceptionnée qu'elle provient forcément de Mercanet.

C'est pour cela que le signature de la réponse envoyée par Mercanet doit être contrôlé par le marchand afin de s'assurer de la provenance et de l'intégrité des données réceptionnées.

Le marchand doit donc vérifié que le champ Seal envoyé par Mercanet correspond bien à la signature du champ Data de la même façon que pour l'appel de Mercanet.

Ne pas afficher la page de résultat de Mercanet

Il est donné la possibilité au marchand d'afficher lui même le résultat du paiement à la place de Mercanet.

Dans ce cas :

  • la page de résultat du paiement n'est pas affichée par Mercanet,
  • l'URL de réponse manuelle est appelée directement sans action du poteur à la fin de la transaction.


Le marchand peut ainsi raccourcir le tunnel de paiement et afficher un ticket de paiement pour le porteur depuis son site marchand.


Analyser la réponse de paiement

Etat

Champs de la réponse

Action à réaliser

Paiement accepté

responseCode = 00
acquirerResponseCode = 00
garanteeIndicator = Y,N,U, vide

Vous pouvez livrer la commande en fonction du niveau de garantie que vous souhaitez (champ garanteeIndicator)

Refus Fraude Sips GONOGO

responseCode = 05
complementaryCode = XX
preAuthorisationRuleResultList

Le paiement a été refusé par le moteur de fraude Sips que vous avez configuré. Ne livrez pas la marchandise. Analysez le détail des règles fraudes exécutées par Sips pour connaitre la cause du refus (champ preAuthorisationRuleResultList).

Refus Fraude Sips GONOGO

responseCode = 05
complementaryCode = XX
preAuthorisationRuleResultList

Le paiement a été refusé par le moteur de fraude Sips que vous avez configuré. Ne livrez pas la marchandise. Analysez le détail des règles fraudes exécutées par Sips pour connaitre la cause du refus (champ preAuthorisationRuleResultList).

Refus Fraude Sips BUSINESS SCORE

responseCode = 05
scoreColor = RED, BLACK
scoreValue = X (score de la transaction)
scoreThreshold = X,Y (seuil orange, seuil vert)

Le paiement a été refusé par le moteur de fraude Sips que vous avez configuré Ne livrez pas la marchandise. Analysez le détail des règles fraudes exécutées par Sips pour connaitre la cause du refus (champ preAuthorisationRuleResultList).

Warning Fraude Sips BUSINESS SCORE

responseCode = 05
scoreColor = ORANGE
scoreValue = X (score de la transaction)
scoreThreshold = X,Y (seuil orange, seuil vert)

Le paiement a été autorisé par l’acquéreur mais le moteur de fraude Sips émet un warning par rapport aux règles que vous avez configurées. Analysez le détail des règles fraudes exécutées par Sips pour connaitre la cause du warning (champ preAuthorisationRuleResultList). Si transaction non risquée alors acceptez la avec la fonction acceptChallenge. Si transaction risquée alors refusez la avec la fonction refuseChallenge. Les fonctions acceptChallenge et refuseChallenge sont disponibles sur l’extranet et les connecteurs office.

Refus 3D Secure

reponseCode = 05
holderAuthenStatus = FAILURE

L’authentification de l’acheteur a échoué, ce n’est pas nécessairement un cas de fraude. Vous pouvez proposer à votre client de payer avec autre moyen de paiement en générant une nouvelle requête

Refus bancaire acquéreur

responseCode = 05
acquirerResponseCode = XX

L’autorisation est refusée pour un motif non lié à la fraude. Vous pouvez proposer à votre client de payer avec autre moyen de paiement en générant une nouvelle requête.

Refus fraude acquéreur

responseCode = 34
acquirerResponseCode = XX

Autorisation refusée pour cause de fraude. Ne livrez pas la commande.

Refus nombre max essais atteint

responseCode = 75
acquirerResponseCode = XX

L’acheteur a fait plusieurs tentatives toutes échouées car les informations saisies n’étaient pas correctes. Deux possibilités: Difficulté pour votre client pour renseigner les informations cartes Tentative de carding (recherche de numéros de cartes possibles) Prenez contact avec votre client pour définir la suite à donner.

Refus suite problème technique

responseCode = 90, 99
acquirerResponseCode = 90 à 98

Problème technique temporaire lors du traitement de la transaction. Proposez à votre client de refaire un paiement ultérieurement.