Introduction
Sherlock's est une solution de paiement de commerce électronique multicanale sécurisée conforme à la norme PCI DSS. Elle vous permet d’accepter et de gérer des transactions de paiement en prenant en compte les règles métier liées à votre activité (paiement à la livraison, paiement différé, paiement récurrent, paiement en plusieurs fois…).
L’objectif du présent document est d’expliquer l'intégration des moyens de paiement CACF_3X et CACF_4X dans Sherlock's.
À qui s’adresse ce document ?
Ce document a pour objectif de vous aider à implémenter les moyens de paiement CACF_3X et CACF_4X sur votre site de commerce électronique.
Il comprend :
- des informations fonctionnelles à votre attention ;
- des instructions d'implémentation à destination de votre équipe technique.
Pour avoir une vue d’ensemble de la solution Sherlock's, nous vous conseillons de consulter les documents suivants :
- Présentation fonctionnelle
- Guide de configuration des fonctionnalités
Comprendre les paiements CACF_3X et CACF_4X avec Sherlock's
Principes généraux
Le moyen de paiement CACF est un moyen de paiement privatif proposé par des grandes enseignes de la distribution, ayant pour acquéreur exclusif le Crédit Agricole en France.
Les moyens de paiement CACF_3X et CACF_4X sont des moyens de paiement de crédit en plusieurs fois, avec ou sans frais.
A l'issu d'un paiement de ce type, vous êtes crédité du montant en une fois, et le porteur sera débité en 3 ou 4 fois (suivant le moyen de paiement choisi).
Règles d’acceptation
Fonctionnalités disponibles
Canaux de paiement | ||
---|---|---|
Internet | V | Canal de paiement par défaut |
MOTO | X | |
Télécopie | X | |
SVI | X |
Typologies de paiement | ||
---|---|---|
Paiement immédiat | X | |
Paiement en fin de journée | V | |
Paiement différé | V | |
Paiement à l'expédition | V | |
Paiement en plusieurs fois | X | |
Paiement par abonnement | X | |
Paiement par fichier | X | |
Paiement OneClick | X |
Gestion des devises | ||
---|---|---|
Acceptation multidevise | X | |
Règlement en devise | X | |
Conversion dynamique des devises | X |
Pages de paiement
Le client sélectionne l'un des moyens de paiement entre CACF_3X, CACF_4X, CACF_3XSANSFRAIS ou CACF_4XSANSFRAIS.
Il est ensuite redirigé vers la page de la saisie des informations requises :
Le ticket de paiement s’affiche, puis le client retourne sur votre site Web :
Ouvrir votre contrat d'acceptation CACF_3X et CACF_4X
Afin de proposer le moyen de paiement CACF_3X et CACF_4X sur votre site Web, vous devez souscrire un contrat d'acceptation auprès de Crédit Agricole Consumer Finance. Vous nous transmettez par la suite le numéro de contrat afin de l’enregistrer dans notre système d’information.
Effectuer un paiement CACF_3X et CACF_4X
Sherlock's vous offre deux solutions pour intégrer CACF_3X et CACF_4X :
- Sherlock’s Paypage qui assure l’interface de paiement directement avec le client via son navigateur Web.
- Sherlock’s Office qui vous laisse la possibilité d’afficher vous-même vos pages de paiement et qui fonctionne par un dialogue de serveur à serveur.
Les modes de remise disponibles pour une transaction sont les suivants :
- Mode annulation : mode par défaut, il permet de remiser la transaction à une date prédéfinie, appelée délai de capture. Lorsque ce délai de capture est atteint, la remise est automatiquement envoyée. Ce délai est paramétré via le champ captureDay, sa valeur par défaut est 0 (paiement en fin de journée).
- Mode validation : vous devez valider la transaction pour déclencher la remise. Un délai de capture doit aussi être défini. Lorsque ce délai de capture est atteint ou dépassé, vous ne pourrez plus valider la transaction, celle-ci expire donc automatiquement.
Le diagramme ci-dessous explique les différents états par lesquels peuvent passer les transactions selon le mode de capture choisi :
Effectuer un paiement avec Sherlock’s Paypage
La cinématique de paiement pour Sherlock’s Paypage est décrite ci-dessous :
Paramétrer la requête de paiement
Les champs suivants ont un comportement particulier :
Nom du champ | Remarque / règles |
---|---|
captureDay |
La valeur envoyée dans la requête doit être de 8 au
maximum. Une valeur supérieure sera forcée à 8. |
customerLanguage |
Permet de choisir la langue utilisée sur les pages Sherlock's et CACF. |
orderId |
Obligatoire |
customerId |
Obligatoire |
amount |
Obligatoire |
deliveryData.deliveryMethod |
Facultatif (Se rapprocher de Thunes pour obtenir la liste exhaustive des valeurs.) |
customerContact |
Pour plus de détails, voir les tableaux ci-dessous |
billingContact |
Pour plus de détails, voir les tableaux ci-dessous |
billingAddress |
Pour plus de détails, voir les tableaux ci-dessous |
deliveryAddress |
Pour plus de détails, voir les tableaux ci-dessous |
shoppingCartDetail |
Pour plus de détails, voir les tableaux ci-dessous |
CustomerAccountHistoric |
Pour plus de détails, voir les tableaux ci-dessous |
CustomerData |
Pour plus de détails, voir les tableaux ci-dessous |
Nom du champ | Remarque / règles |
---|---|
customerContact.email |
Obligatoire |
customerContact.title |
Facultatif |
customerContact.firstname |
Obligatoire |
customerContact.lasttname |
Obligatoire |
customerContact.mobile |
Facultatif |
customerContact.phone |
Facultatif |
Nom du champ | Remarque / règles |
---|---|
billingContact.title |
Obligatoire {0,4} ANS (exemple : MR / MME / MLLE …) |
billingContact.firstname |
Obligatoire |
billingContact.lastname |
Obligatoire |
billingContact.mobile |
Obligatoire |
billingContact.phone |
Obligatoire |
Nom du champ | Remarque / règles |
---|---|
billingAddress.street |
Obligatoire |
billingAddress.streetNumber |
Obligatoire |
billingAddress.zipCode |
Obligatoire |
billingAddress.city |
Obligatoire |
billingAddress.country |
Obligatoire |
billingAddress.addressAdditional1 |
Obligatoire |
Nom du champ | Remarque / règles |
---|---|
deliveryAddress.street |
Facultatif |
deliveryAddress.addressAdditional1 |
Facultatif |
deliveryAddress.city |
Facultatif |
deliveryAddress.zipCode |
Facultatif |
Nom du champ | Remarque / règles |
---|---|
shoppingCartDetails.shoppingCartItemList.itemX.productCategory |
Facultatif |
shoppingCartDetails.shoppingCartItemList.itemX.productName |
Facultatif |
shoppingCartDetails.shoppingCartItemList.itemX.productQuantity |
Facultatif |
shoppingCartDetails.shoppingCartItemList.itemX.productUnitAmount |
Facultatif |
Nom du champ | Remarque / règles |
---|---|
customerAccountHistoric.numberOfPurchase |
Facultatif |
customerAccountHistoric.creationDate |
Facultatif |
customerAccountHistoric.lastPurchaseDate |
Facultatif |
customerAccountHistoric.numberOfUncancelledPurchase |
Facultatif |
customerAccountHistoric.numberOfScoringCancelledPurchase |
Facultatif |
Nom du champ | Remarque / règles |
---|---|
customerData.loyaltyIndicator
|
Facultatif |
Analyser la réponse
Le tableau suivant récapitule les différents cas de réponse à traiter :
État | Champs de la réponse | Action à réaliser |
---|---|---|
Paiement accepté | acquirerResponseCode = 00
authorisationId = (voir le
Dictionnaire des données).paymentMeanBrand = CACF_3X ou
CACF_4XpaymentMeanType =
ONELINE_CREDITresponseCode =
00 |
Vous pouvez livrer la commande. |
Transaction en attente | acquirerResponseCode = (voir
le Dictionnaire des données).responseCode =
60 |
Vous devez attendre de recevoir la seconde réponse automatique pour cette transaction afin de connaître son statut final et savoir si vous pouvez expédier la marchandise. Si vous ne recevez pas la réponse automatique, vous devrez consulter régulièrement les journaux des transactions. |
Refus acquéreur | acquirerResponseCode = (voir
le Dictionnaire des données).responseCode =
05 |
L’autorisation est refusée pour un motif non lié à la
fraude. Si vous n’avez pas opté pour l’option « nouvelle
tentative de paiement » (pour plus de détails veuillez consulter
le Guide de configuration des
fonctionnalités), vous pouvez proposer à votre
client de payer avec un autre moyen de paiement en générant une
nouvelle requête. |
Refus nombre max essais atteint | responseCode = 75 |
Le client a fait plusieurs tentatives qui ont toutes échoué. |
Refus suite problème technique | acquirerResponseCode = 90-98
responseCode = 90, 99
|
Problème technique temporaire lors du traitement de la transaction. Proposez à votre client de refaire un paiement ultérieurement. |
Pour connaître l'intégralité des codes réponses (responseCode
) et codes réponses
acquéreur (acquirerResponseCode
), veuillez vous
référer au Dictionnaire des
données.
Effectuer un paiement avec Sherlock’s Office
Le processus de paiement pour Sherlock’s Office est décrit ci-dessous :
Initialiser un paiement (PaymentProviderInitialize)
L’initialisation d'un paiement CACF_3X et CACF_4X est effectuée en appelant la méthode PaymentProviderInitialize.
Requête d’initialisation du paiement
Les champs génériques suivants sont définis dans le cas d’une initialisation de paiement:
Nom du champ | Remarques / règles |
---|---|
merchantReturnUrl | URL de retour du commerçant. |
paymentMeanBrand | Doit être valorisé avec CACF_3X ou CACF_4X. |
Vous devez valoriser les champs spécifiques suivants dans la requête d'initialisation pour un paiement CACF_3X ou CACF_4X :
Nom du champ | Remarque / règles |
---|---|
orderId | Obligatoire |
customerId | Obligatoire |
customerContact.email | Obligatoire |
customerLanguage | Permet de choisir la langue utilisée sur les pages Sherlock's et CACF. |
billingContact.title | Obligatoire {0,4} ANS (exemple : MR / MME / MLLE …) |
billingContact.firstname | Obligatoire |
billingContact.lastname | Obligatoire |
billingContact.mobile | Obligatoire |
billingContact.phone | Obligatoire |
billingAddress.street | Obligatoire |
billingAddress.streetNumber | Obligatoire |
billingAddress.zipCode | Obligatoire |
billingAddress.city | Obligatoire |
billingAddress.country | Obligatoire |
Réponse d’initialisation du paiement
Le tableau suivant récapitule les différents cas de réponse à traiter :
État | Champs de la réponse | Action à réaliser |
---|---|---|
Initialisation de paiement acceptée | acquirerNativeResponseCode =
00messageVersion = version du
message récupérée en réponse à l’initialisation du
paiement.responseCode =
00redirectionData = données de
redirection récupérées en réponse à l’initialisation du
paiement.redirectionUrl = URL de
redirection vers le site Web du moyen de paiement. |
Redirigez le client vers redirectionUrl . |
Initialisation de paiement rejetée | responseCode <>
00 |
Consultez le champ errorFieldName , puis corrigez
la requête.En cas d’erreur persistante, contactez
l'assistance technique. |
Refus acquéreur | acquirerResponseCode = (voir
le Dictionnaire des données).responseCode =
05 |
L’autorisation est refusée pour un motif non lié à la fraude, vous pouvez proposer à votre client de payer avec un autre moyen de paiement en générant une nouvelle requête. |
Refus suite problème technique | acquirerResponseCode = 90-98
responseCode = 90, 99
|
Problème technique temporaire lors du traitement de la transaction. Proposez à votre client de refaire un paiement ultérieurement. |
Pour connaître l'intégralité des codes réponses (responseCode
) et codes réponses
acquéreur (acquirerResponseCode
), veuillez vous
référer au Dictionnaire des
données.
Rediriger le client vers le site Web du moyen de paiement
Le client doit être redirigé vers l’URL redirectionUrl fournie en réponse de la méthode paymentProviderInitialize. Cette redirection consiste à effectuer un appel POST sur l’URL redirectionUrl obtenue dans la réponse à l’initialisation de paiement. Les paramètres POST à transmettre sont redirectionData et messageVersion obtenus également dans la réponse à l’initialisation de paiement.
A la fin de la cinématique de paiement, le client est redirigé sur l’URL fournie dans la requête d’initialisation, merchantReturnUrl. Les champs suivants sont transmis en POST et doivent être récupérés pour finaliser le paiement :
Nom du champ | Remarques / règles |
---|---|
responseCode | Code réponse du processus |
redirectionData | Données de redirection récupérées en réponse à l’initialisation du paiement. |
messageVersion | Version du message récupérée en réponse à l’initialisation du paiement. |
amount | Montant de la transaction en centimes |
merchantId | Identifiant de la boutique |
transactionReference | Référence de la transaction |
transactionId | Identifiant de la transaction |
transactionDate | Date de la transaction |
Finaliser un paiement (PaymentProviderFinalize)
Cette dernière étape vous permet d’obtenir le statut du paiement. Les paramètres obtenus lors de la redirection après la cinématique de paiement sur le site Web du moyen de paiement sont à transmettre lors de cet appel. La méthode utilisée pour finaliser un paiement est paymentProviderFinalize.
Requête de finalisation du paiement
Vous devez fournir les champs spécifiques suivants dans la requête de finalisation pour un paiement CACF_3X ou CACF_4X.
Nom du champ | Remarques / règles |
---|---|
redirectionData | Données de redirection récupérées au retour du client vers votre site Web (voir Rediriger le client vers le site Web du moyen de paiement). |
messageVersion | Version du message récupérée au retour du client vers votre site Web (voir Rediriger le client vers le site Web du moyen de paiement). |
Réponse de finalisation du paiement
Le tableau suivant récapitule les différents cas de réponse à traiter :
État | Champs de la réponse | Action à réaliser |
---|---|---|
Paiement accepté | acquirerResponseCode =
00authorisationId = (voir le
Dictionnaire des données).paymentMeanBrand = CACF_3X ou
CACF_4XresponseCode =
00transactionStatus = (voir le
Dictionnaire des données). |
Vous pouvez livrer la commande. |
Refus acquéreur | acquirerResponseCode = (voir
le Dictionnaire des données).responseCode =
05 |
L’autorisation est refusée pour un motif non lié à la fraude, vous pouvez proposer à votre client de payer avec un autre moyen de paiement en générant une nouvelle requête. |
Refus suite problème technique | acquirerResponseCode = 90-98
responseCode = 90, 99
|
Problème technique temporaire lors du traitement de la transaction. Proposez à votre client de refaire un paiement ultérieurement. |
Pour connaître l'intégralité des codes réponses (responseCode
) et codes réponses
acquéreur (acquirerResponseCode
), veuillez vous
référer au Dictionnaire des
données.
Gérer vos transactions CACF_3X et CACF_4X
Opérations de caisse disponibles
Les opérations suivantes sont disponibles sur les transactions CACF_3X et CACF_4X :
Gestion de caisse | ||
---|---|---|
Annulation | V | |
Validation | V | |
Remboursement | V | |
Duplication | X |
Le diagramme ci-dessous vous permet de savoir quelle opération de gestion de caisse est disponible lorsqu'une transaction est dans un état donné :
Consulter vos transactions CACF_3X et CACF_4X
Journaux
Les journaux mis à disposition par Sherlock's vous permettent d’avoir une vision exhaustive et consolidée de vos transactions, opérations de caisse, situation comptable et impayés. Vous pouvez utiliser ces informations pour enrichir votre système d’information.
La disponibilité des transactions CACF_3X et CACF_4X pour chaque type de journal est récapitulée dans le tableau ci-dessous :
Disponibilité des journaux | |
---|---|
Journal des transactions | V |
Journal des opérations | V |
Journal de rapprochement des transactions | V |
Journal de rapprochement des impayés | V |
Sherlock's Gestion
Vous pouvez consulter vos transactions CACF_3X et CACF_4X et effectuer différentes opérations de gestion de caisse grâce à Sherlock's Gestion.
Voici le détail d'une transaction CACF_3X :