Passer au contenu
Français - France
  • Il n'y a aucune suggestion car le champ de recherche est vide.

Draft english 25032020

En vigueur depuis le début de l’année 2018, la deuxième Directive sur les Services de Paiement (DSP2) redéfinit les normes de sécurité des paiements en ligne. Compte tenu de la forte croissance du commerce en ligne en Europe, elle vise à apporter plus de sécurité lors de la phase du paiement, tout en luttant plus activement contre les tentatives de fraude.

Tel est l’objectif de la DSP2 : renforcer et accroître la confiance des e-shoppers

Avec la mise en application des normes techniques de réglementation (« Regulatory Technical Standards » ou RTS) découlant de la DSP2 depuis le 14 septembre 2019, de nouvelles exigences en termes d’authentification forte devront être appliquées à l’ensemble des transactions effectuées sur Internet pour une meilleure protection des consommateurs.

Il est donc nécessaire de vous mettre en conformité avec le 3-D Secure v2, nouvelle version du protocole d’EMVCo (organisme regroupant des représentants des principaux réseaux de cartes et des leaders de l’industrie du paiement) normalisant le processus d’authentification forte pour les paiements en ligne.

N.B. : Le standard 3-D Secure ne s’applique que pour les paiements par carte (Visa, Mastercard, CB, American Express) et non pour les paiements réalisés via des méthodes de paiement alternatives ou locales (Klarna, iDEAL, Bancontact…).

En tant que prestataire de services de paiement, HiPay est là pour vous accompagner et faciliter votre transition vers ces nouvelles modalités d’authentification.

Ce qui change à partir du 14 septembre 2019

Aujourd’hui, le marchand ou son prestataire de paiement décide de recourir à l’authentification forte des transactions en fonction de sa politique de gestion de la fraude via un déclenchement du 3-D Secure 1.0. Les clients finaux sont alors redirigés vers une page de leur banque, où ils doivent, pour prouver leur identité, saisir un code à usage unique, généralement reçu par SMS.

À partir du 14 septembre 2019, la décision d’appliquer l’authentification forte sera prise par l’émetteur, banque du porteur de la carte (le consommateur). L’émetteur prendra cette décision en fonction des nombreux critères définis par la DSP2 (limitations, exemptions, gestion du taux de fraude…) et de l’analyse de plus de 150 données collectées à chaque processus d’achat.

Ainsi, afin de se conformer aux nouvelles exigences de la DSP2 et d’améliorer l’expérience utilisateur, le protocole 3-D Secure v2 a été développé pour bénéficier d’une authentification plus dynamique, plus sûre, et intégrant des méthodes innovantes d’authentification, comme les solutions d’authentification biométriques.

Mais surtout, la version 2 du protocole permettra aux marchands de proposer des parcours d’achat plus intégrés à leur environnement.

Lorsque les émetteurs jugeront que les données envoyées permettent d'identifier le porteur, ou que la transaction répond à certains critères d’éligibilité, le processus d’authentification sera complètement transparent pour le consommateur.

À l’inverse, lorsque les données analysées ne permettront pas d’identifier le porteur, une authentification forte sera requise.

Dans les deux cas, le transfert de responsabilité vers l’émetteur sera appliqué.

Bien comprendre le processus d’authentification forte

Cette nouvelle exigence impose aux clients de s’authentifier fortement lors de la finalisation de leurs achats, c’est-à-dire de combiner deux facteurs indépendants d’authentification.

Ces facteurs d’authentification peuvent être :

element_connu.jpg quelque chose de connu par le client (exemple : mot de passe, question secrète, code secret, etc.),

element_detenu.jpg quelque chose appartenant au client (exemple : téléphone portable, appareil connecté, token, carte à puce, etc.),

element_caracterisant.jpg quelque chose caractérisant le client (exemple : empreinte digitale, reconnaissance faciale ou vocale, reconnaissance d’iris, etc.).

 

La réponse technique à ces nouvelles exigences liées à l’authentification forte passe par la mise en place du 3-D Secure v2.

 

Pour être conforme à cette nouvelle réglementation, il est donc nécessaire :

  • dintégrer les champs requis pour le bon fonctionnement du 3-D Secure v2,
  • dévaluer le périmètre de vos transactions pouvant être exemptées d’authentification forte.

Transactions hors périmètre et exemptées d’authentification forte

Certaines transactions pourront bénéficier d’une exemption d’authentification forte; d’autres sont hors du champ de la DSP2.

Grâce aux outils de lutte anti-fraude de HiPay, nos équipes travailleront conjointement avec les marchands afin de permettre une mise en place optimale des exemptions, avec pour objectif de maximiser la fluidité des parcours d’achat, tout en luttant activement contre la fraude.

Pour plus d’informations sur les exemptions possibles, veuillez consulter notre page Web dédiée à la DSP2.

HiPay vous accompagne dans la mise en conformité avec la DSP2

Afin d’être conforme avec les exigences définies dans la DSP2, HiPay vous accompagne dans l’évolution de votre intégration technique.

Pour cela, HiPay a simplifié la mise en place du 3-D Secure v2, en minimisant les contraintes d’intégration de votre côté.

La mise en place du nouveau protocole ne modifie pas l’architecture actuelle entre le marchand et HiPay.

Cependant, afin de maximiser le succès de vos transactions et de simplifier les parcours d’achat de vos clients, il est fortement recommandé de collecter les nouveaux types de données décrits ci-dessous et de les transmettre à HiPay.

Nous vous invitons d’ores et déjà à prendre connaissance des nouveaux champs à intégrer, décrits dans le tableau qui suit.

Pour nos marchands utilisant nos modules CMS (Magento, PrestaShop, WooCommerce) ou nos SDK (iOS, Android, PHP, JavaScript), nous vous communiquerons leurs dates de publication.

Nouveaux champs à intégrer aux API /order et /hpayment existantes

 

Nom de l'objet / champ
Requis
Description
Informations de facturation
Oui
Informations relatives à la facturation du client:  Prénom, nom, adresse de facturation, etc.Cliquez ici pour plus d'informations
Titulaire de la carte
Oui
Nom du titulaire de la carteCliquez ici pour plus d'informations
account_info
Non
Informations relatives au compte du client
device_channel
Oui
Appareil depuis lequel la transaction est initiée
browser_info
Oui
Informations de navigation du client
previous_auth_info
Non
Informations relatives aux précédentes authentifications du client sur le site du marchand
merchant_risk_statement
Non
Informations relatives à la commande du client, permettant d'effectuer une évaluation du risque de celle-ci
recurring_info
Non
Informations relatives à une transaction récurrente
exemption
Non
Exemption(s) déclarée(s) par le marchand

Remarque : tous les champs non requis sont fortement conseillés.

 

account_info [customer]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
account_change
YYYYMMDD Integer
Non
Date de la dernière modification réalisée par le client sur son compte, incluant l'adresse de livraison et de facturation, l'ajout d'un moyen de paiement ou d'un utilisateur Remarque : Mettre en place un champ sur votre table utilisateur permettant d'enregistrer toute modification réalisée par l'utilisateur sur son compte, puis récupérer cette valeur. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507
opening_account_date
YYYYMMDD Integer
Non
Date de création du compte client Remarque : Mettre en place un champ sur votre table utilisateur permettant d'enregistrer la date de création du compte client. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507
password_change
YYYYMMDD Integer
Non
Date de la dernière modification du mot de passe du compte client Remarque : Mettre en place un champ sur votre table utilisateur permettant de signaler toute modification du mot de passe du compte client, puis récupérer cette valeur. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507

 

account_info [purchase]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
count
Integer (4)
Non
Nombre de commande(s) du client durant les six derniers mois (tous moyens de paiement confondus) Remarque : Récupérer le nombre de commandes, quel que soit le moyen de paiement utilisé et quel que soit le statut de la commande effectuée par le client (ex. : remboursée, annulée, etc.). Exemple de valeur : 2
card_stored_24h
Integer (3)
Non
Nombre de tentative(s) d'ajout de carte dans le compte client au cours des dernières 24 heures Remarque : Mettre en place une table qui enregistre les tentatives de sauvegarde de carte par un client avec la date et l'heure de la tentative. Si la carte n'est pas autorisée mais que l'utilisateur voulait l'enregistrer, prendre en compte la tentative. Récupérer le nombre de tentatives réalisées par le client à Date Heure - 24H. Exemple de valeur : 0
payment_attempts_24h
Integer (3)
Non
Nombre de transaction(s) (paiements par carte de paiement) du client dans les 24 dernières heures Remarque : Récupérer le nombre de commandes du client à Date Heure - 24H avec un paiement effectué par carte bancaire. Exemple de valeur : 0
payment_attempts_1y
Integer (3)
Non
Nombre de transaction(s) (paiements par carte de paiement) du client dans les 12 derniers mois Remarque : Récupérer le nombre de commandes du client à Date Heure - 365J avec un paiement effectué par carte bancaire. Exemple de valeur : 0

 

account_info [payment]

Nom de champ
Format
Requis
Remarque / Exemple de valeur
enrollment_date
YYYYMMDD Integer
Non
Remarque : Pour un paiement en un clic, renseigner la date à laquelle la carte de paiement a été sauvegardée dans le compte client. Si le paiement est effectué avec une carte enregistrée, récupérer la date à laquelle la carte a été sauvegardée dans le compte client. Exemple de valeur : 20180507

 

account_info [shipping]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur / Valeurs possibles
shipping_used_date
YYYYMMDD Integer
Non
Date de la première commande du client effectuée avec cette adresse de livraison Exemple de valeur : 20180507
name_indicator
Integer (1)
Non
Indique si le nom du client est identique à celui de l'adresse de livraison pour cette transaction Valeurs possibles : 1 = Nom sur le compte identique à celui pour la livraison 2 = Nom sur le compte différent de celui pour la livraison
suspicious_activity
Integer (1)
Non
Indique si le marchand a rencontré des activités suspicieuses (dont de la fraude) sur ce compte client Remarque : Si vous avez souscrit à HiPay Sentinel, vous n'avez pas à renseigner cette information. Si vous n'avez pas souscrit à HiPay Sentinel, vous devez nous envoyer la valeur (1 ou 2) correspondant à l'information de votre système anti-fraude. Valeurs possibles : 1 = Aucune activité suspecte observée 2 = Activité suspecte observée

Exemple JSON :


            "account_info": {
              "customer": {
                "account_change": 20180507,
                "opening_account_date": 20180507,
                "password_change": 20180507
              },
              "purchase": {
                "count": 2,
                "card_stored_24h": 0,
                "payment_attempts_24h": 0,
                "payment_attempts_1y": 0
              },
              "payment": {
                "enrollment_date": 20180507,
              },
              "shipping": {
                "shipping_used_date": 20180507,
                "name_indicator": 1,
                "suspicious_activity": 1
              }
            }
            

device_channel

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Oui
Indique le canal utilisé pour initier la transaction Remarque : La valeur par défaut est 2 (BROWSER); sinon, renseigner avec la valeur pertinente. Valeurs possibles : 1 = App-based (APP) 2 = Browser (BRW) 3 = 3DS Requestor Initiated (3RI = MIT)

browser_info

Si votre intégration utilise les méthodes Hosted Fields / Hosted Payments, les données browser_info vous seront retournées dans la réponse de la méthode getPaymentData (en format JSON).

Si vous utilisez un CMS, les données browser_info seront récupérées et envoyées à HiPay de façon automatique.

Si vous n’utilisez pas de CMS ni les méthodes Hosted Fields / Hosted Payments, mais que vous utilisez le SDK JavaScript HiPay, vous pouvez appeler la méthode getBrowserInfo pour récupérer les données browser_info.

Dans tout autre cas, vous devez récupérer directement les données browser_info pour nous les fournir.

browser_info [java_enabled]

Format
Requis
Description / Remarque
Boolean
Oui
Booléen représentant la possibilité pour le navigateur du client d'exécuter du Java Remarque : Utiliser la méthode Java suivante : navigator.javaEnabled()

 

browser_info [javascript_enabled]

Format
Requis
Description / Remarque / Valeurs possibles
Boolean
Oui
Booléen représentant la possibilité pour le navigateur du client d'exécuter du JavaScript Remarque : Par défaut à true Valeurs possibles : True False

 

browser_info [language]

Format
Requis
Description / Remarque / Exemple de valeur
String (1 - 8)
Oui
Valeur représentant la langue du navigateur du client comme définie dans IETF BCP47 Remarque : Utiliser la méthode JavaScript suivante : navigator.language Exemple de valeur : fr

 

browser_info [color_depth]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1 - 2)
Seulement si javascript_enabled = oui
Valeur représentant la profondeur de la palette de couleurs pour afficher une image, en bits/pixel Remarque : Utiliser la méthode JavaScript suivante : window.screen.colorDepth Valeurs possibles : 1 = 1 bit 4 = 4 bits 8 = 8 bits 15 = 15 bits 16 = 16 bits 24 = 24 bits 32 = 32 bits 48 = 48 bits

 

browser_info [screen_height]

Format
Requis
Description / Remarque / Exemple de valeur
Integer (1 - 6)
Seulement si javascript_enabled = oui
Hauteur totale de l'écran du client (en pixels) Remarque : Utiliser la méthode JavaScript suivante : window.screen.height Exemple de valeur : 1080

 

browser_info [screen_width]

Format
Requis
Description / Remarque / Exemple de valeur
Integer (1 - 6)
Seulement si javascript_enabled = oui
Largeur totale de l'écran du client (en pixels) Remarque : Utiliser la méthode JavaScript suivante : window.screen.width Exemple de valeur : 1920

 

browser_info [timezone]

Format
Requis
Description / Remarque / Exemple de valeur
String (1 - 5)
Seulement si javascript_enabled = oui
Décalage horaire en minutes entre l'heure UTC et l'heure locale du navigateur du titulaire de la carte Remarque : Utiliser la méthode JavaScript suivante : new Date().getTimezoneOffset() Exemple de valeur : 300


browser_info [ipaddr]

Format
Requis
Description / Exemple de valeur
String
Non
Adresse IP du client effectuant l'achat Exemple de valeur : 127.0.0.1

 

browser_info [http_accept]

Format
Requis
Description / Exemple de valeur
String
Non
Cet élément doit comprendre le contenu exact de l'en-tête HTTP Accept, tel qu'envoyé au marchand depuis le navigateur du client. Exemple de valeur : */*

 

browser_info [http_user_agent]

Format
Requis
Description / Exemple de valeur
String
Non
Cet élément doit comprendre le contenu exact de l'en-tête HTTP User_Agent, tel qu'envoyé au marchand depuis le navigateur du client. Exemple de valeur : Mozilla/4.0

 Exemple JSON pour toute la section browser_info :


          "browser_info": {
            "java_enabled": true,
            "javascript_enabled": true,
            "ipaddr": "127.0.0.1",
            "http_accept": "*/*",
            "http_user_agent": "Mozilla/4.0",
            "language": "fr",
            "color_depth": "1",
            "screen_height": 1080,
            "screen_width": 1920,
            "timezone": "300"
          }
          

previous_auth_info [transaction_reference]

Format
Requis
Description / Remarque / Exemple de valeur
String (16)
Non
Référence de la précédente transaction authentifiée pour ce client Remarque : Renseigner cette information si vous utilisez plusieurs prestataires de services de paiement et que la transaction précédente n'a pas été réalisée avec HiPay. Exemple de valeur : 987654321CBA

merchant_risk_statement [email_delivery_address]

Format
Requis
Description / Remarque / Exemple de valeur
String (254)
Non
Adresse électronique de livraison pour les produits dématérialisés Remarque : Renseigner si la commande contient au moins un produit dématérialisé. Exemple de valeur : jeanne.dupont@test.com

 

merchant_risk_statement [delivery_time_frame]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information sur le délai de livraison de la commande Remarque : En fonction de la méthode de livraison et du transporteur choisis par le client pour la commande, récupérer un délai approximatif de livraison. Si la commande contient des produits livrés par différents transporteurs, récupérer l'information à partir du produit qui aura le délai de livraison le plus long. Valeurs possibles : 1 = Livraison électronique 2 = Expédition le jour même 3 = Livraison le lendemain 4 = Livraison en deux jours ou plus

 

merchant_risk_statement [purchase_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information sur la disponibilité des produits Remarque : Renseigner la valeur 2 (disponibilité future) uniquement si aucun produit de la commande en cours n'est en stock. Valeurs possibles : 1 = Marchandise disponible 2 = Disponibilité future

 

merchant_risk_statement [pre_order_date]

Format
Requis
Description / Remarque / Exemple de valeur
YYYYMMDD Integer (8)
Non
Date prévisionnelle d'approvisionnement dans le cas d'une pré-commande Remarque : Si aucun produit n'est en stock lors de la commande (purchase_indicator = 2), renseigner la date de réapprovisionnement. Exemple de valeur : 20190925

 

merchant_risk_statement [reorder_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Indique si le client a déjà commandé les mêmes produits avec les mêmes quantités Remarque : Rechercher dans l'historique des commandes du client si une commande a déjà été effectuée pour les mêmes références produits et les mêmes quantités. Ne pas prendre en compte le prix des produits et d'éventuelles réductions appliquées. Valeurs possibles : 1 = Commandé pour la première fois 2 = Recommandé

 

merchant_risk_statement [shipping_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information concernant l'adresse de livraison Remarque : Renseigner cette information en fonction des typologies de produit de la commande et du mode de livraison. Si les produits sont de type dématérialisé et qu'ils ne nécessitent pas de transporteur, renseigner : 5 = Biens numériques 6 = Billets de transport ou de spectacle, pas de livraison 7 = Autre (jeux, services numériques sans livraison, abonnement e-média) Si les produits nécessitent une livraison, comparer l'adresse de livraison et l'adresse de facturation; en fonction du résultat, renseigner : 1 = Livraison à l'adresse de facturation du titulaire de la carte 2 = Livraison à une autre adresse vérifiée enregistrée chez le marchand 3 = Livraison à une adresse différente de celle de l'adresse de facturation du titulaire de la carte La comparaison des adresses doit s'effectuer sur tous les champs qui composent l'adresse (rue, ville, code postal, etc.).   Une adresse est considérée comme vérifiée si elle a déjà été utilisée lors d'une commande précédente.   Valeurs possibles : 1 = Livraison à l'adresse de facturation du titulaire de la carte 2 = Livraison à une autre adresse vérifiée enregistrée chez le marchand 3 = Livraison à une adresse différente de celle de l'adresse de facturation du titulaire de la carte 4 = Livraison / retrait en magasin 5 = Biens numériques 6 = Billets de transport ou de spectacle, pas de livraison 7 = Autre (jeux, services numériques sans livraison, abonnement e-média)

 

merchant_risk_statement [gift_card]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
amount
Number
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : montant total des cartes achetées Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer le montant total des cartes achetées. Exemple de valeur : 15.00
count
Integer
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : nombre total de cartes achetées Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer le nombre total de cartes achetées. Exemple de valeur : 0
currency
String (3)
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : code ISO 4217 de la devise des cartes Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer la devise des cartes. Exemple de valeur : EUR

Exemple JSON :


                  "merchant_risk_statement": {
                    "email_delivery_address": "jeanne.dupont@test.com",
                    "delivery_time_frame": 1,
                    "purchase_indicator": 1,
                    "pre_order_date": 20190925,
                    "reorder_indicator": 1,
                    "shipping_indicator": 1,
                    "gift_card": {
                      "amount": 15,
                      "count": 1,
                      "currency": "EUR"
                    }
                  }

recurring_info [expiration_date]

Format
Requis
Description / Exemple de valeur
YYYYMMDD Integer
Non
Dans le cadre d'une transaction récurrente, date après laquelle plus aucune autorisation ne doit être réalisée Exemple de valeur : 20180507

 

recurring_info [frequency]

Format
Requis
Description / Exemple de valeur
Integer (4)
Non
Dans le cadre d'une transaction récurrente, indique le nombre de jour(s) minimum entre les autorisations Exemple de valeur : 31

Exemple JSON :


           "recurring_info:" {
             "expiration_date": 20200318,
             "frequency": 31
           }
           

exemption

Format
Requis
Description / Remarque
String
Non
Exemption(s) déclarée(s) par le marchand Remarque : C'est via ce champ que vous pourrez communiquer vos demandes d'exemption : pour plus de détails, veuillez contacter l'équipe technique de HiPay.

 

Exemple complet PHP :


              $data = array(
                // Informations commande
                "orderid"=> "hipay-test-12345678910",
                "description"=> "test product 01",
                "long_description"=> "full description of test product 01",
                "payment_product"=> "mastercard",
                "cardtoken"=> "daaf85868bcaee8klniazereiuop7b0ce133e88d",
                "eci"=> "7",
                "authentication_indicator"=> "1",
                "operation"=> "authorization",
                "currency"=> "EUR",
                "amount"=> 100,
                "shipping"=> 1,
                "tax"=> 1,
                "tax_rate"=> 1,
                "custom_data" => '{
                    "shipping_method":"click and collect",
                    "first_order":"0",
                    "products_list":"First product, Second product",
                    "_reporting_data_1":"my custom data 1",
                    "_reporting_data_2":"my custom data 2",
                    "_reporting_data_3":"my custom data 3",
                    "_reporting_data_4":"my custom data 4",
                    "_reporting_data_5":"my custom data 5"
                  }',

                // Informations client
                "email"=> "jane.doe@test.com",
                "phone"=> "01234567890",
                "birthdate"=> "19890525",
                "gender"=> "f",
                "firstname"=> "Jane",
                "lastname"=> "Doe",
                "country"=> "FR",
                "streetaddress"=> "10 rue de la facturation",
                "streetaddress2"=> "",
                "city"=> "Paris",
                "zipcode"=> "75012",
                "shipto_firstname"=> "Jane",
                "shipto_lastname"=> "Doe",
                "shipto_streetaddress"=> "20 rue de la livraison",
                "shipto_streetaddress2"=> "",
                "shipto_city"=> "Paris",
                "shipto_zipcode"=> "75012",
                "shipto_country"=> "FR",
                "cid"=> "123456",
                "ipaddr"=> "xxx.xx.xxx.xx",
                "accept_url"=> "",
                "decline_url"=> "",
                "pending_url"=> "",
                "exception_url"=> "",
                "cancel_url"=> "",

                //Informations DSP2
                "account_info"=> "{
                  'customer': {
                    'account_change': 20180507,
                    'opening_account_date': 20180507,
                    'password_change': 20180507,
                    },
                  'purchase': {
                    'count': 2,
                    'card_stored_24h': 0,
                    'payment_attempts_24h': 0,
                    'payment_attempts_1y': 0
                    },
                  'payment': {
                      'enrollment_date': 20180507
                    },
                  'shipping': {
                      'shipping_used_date': 20180507,
                      'name_indicator': 1,
                      'suspicious_activity': 1
                      }
                    }",

                  "device_channel"=> 2,

                  "browser_info"=> "{
                    'java_enabled': true,
                    'javascript_enabled': true,
                    'ipaddr': '127.0.0.1',
                    'http_accept': '*/*',
                    'http_user_agent': 'Mozilla/4.0',
                    'language': 'fr',
                    'color_depth': '1',
                    'screen_height': 0,
                    'screen_width': 0,
                    'timezone': '300'
                    }",

                  "previous_auth_info"=> "{
                    'transaction_reference': '987654321CBA'
                    }",

                  "merchant_risk_statement"=> "{
                    'email_delivery_address': 'jane.doe@test.com',
                    'delivery_time_frame': 1,
                    'purchase_indicator': 1,
                    'pre_order_date': 20190925,
                    'reorder_indicator': 1,
                    'shipping_indicator': 1,
                    'gift_card': {
                      'amount': 15,
                      'count': 1,
                      'currency': 'EUR' }
                      }",

                  "recurring_info"=> "{
                    'expiration_date': 20200318,
                    'frequency': 31
                  }"
              );
              
Nom de l'objet / champ
Requis
Description
Informations de facturation
Oui
Informations relatives à la facturation du client:  Prénom, nom, adresse de facturation, etc.  Cliquez ici pour plus d'informations
account_info
Non
Informations relatives au compte du client
device_channel
Oui
Appareil depuis lequel la transaction est initiée
previous_auth_info
Non
Informations relatives aux précédentes authentifications du client sur le site du marchand
merchant_risk_statement
Non
Informations relatives à la commande du client, permettant d'effectuer une évaluation du risque de celle-ci
recurring_info
Non
Informations relatives à une transaction récurrente
exemption
Non
Exemption(s) déclarée(s) par le marchand

Remarque : tous les champs non requis sont fortement conseillés.

 

account_info [customer]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
account_change
YYYYMMDD Integer
Non
Date de la dernière modification réalisée par le client sur son compte, incluant l'adresse de livraison et de facturation, l'ajout d'un moyen de paiement ou d'un utilisateur Remarque : Mettre en place un champ sur votre table utilisateur permettant d'enregistrer toute modification réalisée par l'utilisateur sur son compte, puis récupérer cette valeur. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507
opening_account_date
YYYYMMDD Integer
Non
Date de création du compte client Remarque : Mettre en place un champ sur votre table utilisateur permettant d'enregistrer la date de création du compte client. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507
password_change
YYYYMMDD Integer
Non
Date de la dernière modification du mot de passe du compte client Remarque : Mettre en place un champ sur votre table utilisateur permettant de signaler toute modification du mot de passe du compte client, puis récupérer cette valeur. La plupart des CMS permettent nativement de récupérer cette information sur le compte client. Exemple de valeur : 20180507

 

account_info [purchase]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
count
Integer (4)
Non
Nombre de commande(s) du client durant les six derniers mois (tous moyens de paiement confondus) Remarque : Récupérer le nombre de commandes, quel que soit le moyen de paiement utilisé et quel que soit le statut de la commande effectuée par le client (ex. : remboursée, annulée, etc.). Exemple de valeur : 2
card_stored_24h
Integer (3)
Non
Nombre de tentative(s) d'ajout de carte dans le compte client au cours des dernières 24 heures Remarque : Mettre en place une table qui enregistre les tentatives de sauvegarde de carte par un client avec la date et l'heure de la tentative. Si la carte n'est pas autorisée mais que l'utilisateur voulait l'enregistrer, prendre en compte la tentative. Récupérer le nombre de tentatives réalisées par le client à Date Heure - 24H. Exemple de valeur : 0
payment_attempts_24h
Integer (3)
Non
Nombre de transaction(s) (paiements par carte de paiement) du client dans les 24 dernières heures Remarque : Récupérer le nombre de commandes du client à Date Heure - 24H avec un paiement effectué par carte bancaire. Exemple de valeur : 0
payment_attempts_1y
Integer (3)
Non
Nombre de transaction(s) (paiements par carte de paiement) du client dans les 12 derniers mois Remarque : Récupérer le nombre de commandes du client à Date Heure - 365J avec un paiement effectué par carte bancaire. Exemple de valeur : 0

 

account_info [payment]

Nom de champ
Format
Requis
Remarque / Exemple de valeur
enrollment_date
YYYYMMDD Integer
Non
Remarque : Pour un paiement en un clic, renseigner la date à laquelle la carte de paiement a été sauvegardée dans le compte client. Si le paiement est effectué avec une carte enregistrée, récupérer la date à laquelle la carte a été sauvegardée dans le compte client. Exemple de valeur : 20180507

 

account_info [shipping]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur / Valeurs possibles
shipping_used_date
YYYYMMDD Integer
Non
Date de la première commande du client effectuée avec cette adresse de livraison Exemple de valeur : 20180507
name_indicator
Integer (1)
Non
Indique si le nom du client est identique à celui de l'adresse de livraison pour cette transaction Valeurs possibles : 1 = Nom sur le compte identique à celui pour la livraison 2 = Nom sur le compte différent de celui pour la livraison
suspicious_activity
Integer (1)
Non
Indique si le marchand a rencontré des activités suspicieuses (dont de la fraude) sur ce compte client Remarque : Si vous avez souscrit à HiPay Sentinel, vous n'avez pas à renseigner cette information. Si vous n'avez pas souscrit à HiPay Sentinel, vous devez nous envoyer la valeur (1 ou 2) correspondant à l'information de votre système anti-fraude. Valeurs possibles : 1 = Aucune activité suspecte observée 2 = Activité suspecte observée

Exemple JSON :


              "account_info": {
                "customer": {
                  "account_change": 20180507,
                  "opening_account_date": 20180507,
                  "password_change": 20180507
                },
                "purchase": {
                  "count": 2,
                  "card_stored_24h": 0,
                  "payment_attempts_24h": 0,
                  "payment_attempts_1y": 0
                },
                "payment": {
                  "enrollment_date": 20180507,
                },
                "shipping": {
                  "shipping_used_date": 20180507,
                  "name_indicator": 1,
                  "suspicious_activity": 1
                }
              }
              

device_channel

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Oui
Indique le canal utilisé pour initier la transaction Remarque : La valeur par défaut est 2 (BROWSER); sinon, renseigner avec la valeur pertinente. Valeurs possibles : 1 = App-based (APP) 2 = Browser (BRW) 3 = 3DS Requestor Initiated (3RI = MIT)

previous_auth_info [transaction_reference]

Format
Requis
Description / Remarque / Exemple de valeur
String (16)
Non
Référence de la précédente transaction authentifiée pour ce client Remarque : Renseigner cette information si vous utilisez plusieurs prestataires de services de paiement et que la transaction précédente n'a pas été réalisée avec HiPay. Exemple de valeur : 987654321CBA

merchant_risk_statement [email_delivery_address]

Format
Requis
Description / Remarque / Exemple de valeur
String (254)
Non
Adresse électronique de livraison pour les produits dématérialisés Remarque : Renseigner si la commande contient au moins un produit dématérialisé. Exemple de valeur : jeanne.dupont@test.com

 

merchant_risk_statement [delivery_time_frame]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information sur le délai de livraison de la commande Remarque : En fonction de la méthode de livraison et du transporteur choisis par le client pour la commande, récupérer un délai approximatif de livraison. Si la commande contient des produits livrés par différents transporteurs, récupérer l'information à partir du produit qui aura le délai de livraison le plus long. Valeurs possibles : 1 = Livraison électronique 2 = Expédition le jour même 3 = Livraison le lendemain 4 = Livraison en deux jours ou plus

 

merchant_risk_statement [purchase_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information sur la disponibilité des produits Remarque : Renseigner la valeur 2 (disponibilité future) uniquement si aucun produit de la commande en cours n'est en stock. Valeurs possibles : 1 = Marchandise disponible 2 = Disponibilité future

 

merchant_risk_statement [pre_order_date]

Format
Requis
Description / Remarque / Exemple de valeur
YYYYMMDD Integer (8)
Non
Date prévisionnelle d'approvisionnement dans le cas d'une pré-commande Remarque : Si aucun produit n'est en stock lors de la commande (purchase_indicator = 2), renseigner la date de réapprovisionnement. Exemple de valeur : 20190925

 

merchant_risk_statement [reorder_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Indique si le client a déjà commandé les mêmes produits avec les mêmes quantités Remarque : Rechercher dans l'historique des commandes du client si une commande a déjà été effectuée pour les mêmes références produits et les mêmes quantités. Ne pas prendre en compte le prix des produits et d'éventuelles réductions appliquées. Valeurs possibles : 1 = Commandé pour la première fois 2 = Recommandé

 

merchant_risk_statement [shipping_indicator]

Format
Requis
Description / Remarque / Valeurs possibles
Integer (1)
Non
Information concernant l'adresse de livraison Remarque : Renseigner cette information en fonction des typologies de produit de la commande et du mode de livraison. Si les produits sont de type dématérialisé et qu'ils ne nécessitent pas de transporteur, renseigner : 5 = Biens numériques 6 = Billets de transport ou de spectacle, pas de livraison 7 = Autre (jeux, services numériques sans livraison, abonnement e-média) Si les produits nécessitent une livraison, comparer l'adresse de livraison et l'adresse de facturation; en fonction du résultat, renseigner : 1 = Livraison à l'adresse de facturation du titulaire de la carte 2 = Livraison à une autre adresse vérifiée enregistrée chez le marchand 3 = Livraison à une adresse différente de celle de l'adresse de facturation du titulaire de la carte La comparaison des adresses doit s'effectuer sur tous les champs qui composent l'adresse (rue, ville, code postal, etc.).   Une adresse est considérée comme vérifiée si elle a déjà été utilisée lors d'une commande précédente.   Valeurs possibles : 1 = Livraison à l'adresse de facturation du titulaire de la carte 2 = Livraison à une autre adresse vérifiée enregistrée chez le marchand 3 = Livraison à une adresse différente de celle de l'adresse de facturation du titulaire de la carte 4 = Livraison / retrait en magasin 5 = Biens numériques 6 = Billets de transport ou de spectacle, pas de livraison 7 = Autre (jeux, services numériques sans livraison, abonnement e-média)

 

merchant_risk_statement [gift_card]

Nom de champ
Format
Requis
Description / Remarque / Exemple de valeur
amount
Number
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : montant total des cartes achetées Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer le montant total des cartes achetées. Exemple de valeur : 15.00
count
Integer
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : nombre total de cartes achetées Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer le nombre total de cartes achetées. Exemple de valeur : 1
currency
String (3)
Non
Concerne l'achat de cartes prépayées ou de cartes cadeaux : code ISO 4217 de la devise des cartes Remarque : Si la commande contient des produits de type carte cadeau ou prépayée, récupérer la devise des cartes. Exemple de valeur : EUR

Exemple JSON :


             "merchant_risk_statement": {
               "email_delivery_address": "jeanne.dupont@test.com",
               "delivery_time_frame": 1,
               "purchase_indicator": 1,
               "pre_order_date": 20190925,
               "reorder_indicator": 1,
               "shipping_indicator": 1,
               "gift_card": {
                 "amount": 15,
                 "count": 1,
                 "currency": "EUR"
               }
             }
             

recurring_info [expiration_date]

Format
Requis
Description / Exemple de valeur
YYYYMMDD Integer
Non
Dans le cadre d'une transaction récurrente, date après laquelle plus aucune autorisation ne doit être réalisée Exemple de valeur : 20180507

 

recurring_info [frequency]

Format
Requis
Description / Exemple de valeur
Integer (4)
Non
Dans le cadre d'une transaction récurrente, indique le nombre de jour(s) minimum entre les autorisations Exemple de valeur : 31

Exemple JSON :


           "recurring_info:" {
             "expiration_date": 20200318,
             "frequency": 31
           }
           

exemption

Format
Requis
Description / Remarque
String
Non
Exemption(s) déclarée(s) par le marchand Remarque : C'est via ce champ que vous pourrez communiquer vos demandes d'exemption : pour plus de détails, veuillez contacter l'équipe technique de HiPay.

 

Exemple complet PHP :


$data = array(
  // Design et paramétrage de la page de paiement
	"template" =>"basic-js",
	"time_to_limit_to_pay" =>"",
	"css" =>"",
	"language" =>"fr_FR",
	"merchant_display_name" =>"My company name",
	"display_selector"=>"1",

  // Informations commande
  "orderid" => "hipay-test-12345678910",
  "description" => "produit test 01",
  "long_description" => "produit test 01 description complète",
  "payment_product" => "mastercard",
  "cardtoken" => "daaf85868bcaee8klniazereiuop7b0ce133e88d",
  "eci" => "7",
  "authentication_indicator" => "1",
  "operation" => "authorization",
  "currency" => "EUR",
  "amount" => 100,
  "shipping"=> 1,
  "tax" => 1,
  "tax_rate" => 1,
  "custom_data" =>
  '{
		"shipping_method":"click and collect",
		"first_order":"0",
		"products_list": "First product, Second product",
		"_reporting_data_1":"my custom data 1",
		"_reporting_data_2":"my custom data 2",
		"_reporting_data_3":"my custom data 3",
		"_reporting_data_4":"my custom data 4",
		"_reporting_data_5":"my custom data 5"
	 }',

  // Informations client
  "email" => "jeanne.dupont@test.com",
  "phone"=> "01234567890",
  "birthdate"=> "19890525",
  "gender"=> "f",
  "firstname"=> "Jeanne",
  "lastname"=> "Dupont",
  "country"=> "FR",
  "streetaddress"=> "10 rue de la facturation",
  "streetaddress2"=> "",
  "city"=> "Paris",
  "zipcode"=> "75012",
  "shipto_firstname"=> "Jeanne",
  "shipto_lastname"=> "Dupont",
  "shipto_streetaddress"=> "20 rue de la livraison",
  "shipto_streetaddress2"=> "",
  "shipto_city"=> "Paris",
  "shipto_zipcode"=> "75012",
  "shipto_country"=> "FR",
  "cid"=> "123456",
  "ipaddr"=> "xxx.xx.xxx.xx",
  "accept_url" => "",
  "decline_url" => "",
  "pending_url" => "",
  "exception_url" => "",
  "cancel_url" => "",

  // Informations DSP2
                "account_info" => 
                "{
                  'customer': 
                  {
                    'account_change': 20180507,
                    'opening_account_date': 20180507,
                    'password_change': 20180507,
                  },
                  'purchase': 
                  {
                    'count': 2,
                    'card_stored_24h': 0,
                    'payment_attempts_24h': 0,
                    'payment_attempts_1y': 0
                  },
                  'payment': 
                  {
                    'enrollment_date': 20180507
                  },
                  'shipping': 
                  {
                     'shipping_used_date': 20180507,
                     'name_indicator': 1,
                     'suspicious_activity': 1
                   }
                  }",

                  "device_channel"=> 2,

                  "previous_auth_info"=> 
                  "{
                    'transaction_reference': '987654321CBA'
                   }",

                  "merchant_risk_statement"=> "{
                    'email_delivery_address': 'jeanne.dupont@test.com',
                    'delivery_time_frame': 1,
                    'purchase_indicator': 1,
                    'pre_order_date': 20190925,
                    'reorder_indicator': 1,
                    'shipping_indicator': 1,
                    'gift_card': 
                    {
                      'amount': 15,
                      'count': 1,
                      'currency': 'EUR' 
                    }
                   }",

                  "recurring_info"=> 
                  "{
                    'expiration_date': 20200318,
                    'frequency': 31
                  }"
                 );

Dates importantes

  • 11 septembre 2019 :

La Banque de France a autorisé un plan de migration de 18 mois pour la mise en conformité des paiements électroniques avec la DSP2 (pour plus d’informations, veuillez lire le communiqué de presse).

  • 1er avril 2020 :

Authentification forte obligatoire pour toutes les transactions supérieures à 500 €

  • 1er avril 2021 :

Authentification forte obligatoire pour toutes les transactions e-commerce

 

SDK et modules disponibles et mis à jour pour la DSP2