Introduction
Worldline Sips 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 du moyen de paiement Oney 3X 4X dans Worldline Sips.
À qui s’adresse ce document ?
Ce document a pour objectif de vous aider à implémenter le moyen de paiement 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 Worldline Sips, nous vous conseillons de consulter les documents suivants :
- Présentation fonctionnelle
- Guide de configuration des fonctionnalités
Comprendre les paiements Oney 3X 4X avec Worldline Sips
Principes généraux
Oney Bank est un organisme financier français spécialisé dans les solutions de paiement et le crédit à la consommation.
Oney propose une solution de crédit en ligne avec un paiement en 3 ou 4 fois par carte bancaire nommée Oney 3X 4X.
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 | V | |
Paiement en fin de journée | V | |
Paiement différé | X | Forcé vers un paiement immédiat |
Paiement à l'expédition | V | Forcé à 30 jours maximum. |
Paiement en plusieurs fois | X | |
Paiement par abonnement | X | |
Paiement par fichier | X | |
Paiement OneClick | X |
Caractéristiques du moyen de paiement Oney 3X 4X
Oney 3X 4X regroupe 4 modalités de paiement : les paiements en 3 fois et 4X avec frais, et les paiements en 3 fois et 4 fois sans frais.
- Pour sélectionner l’offre souhaitée, il faut envoyer dans la requête
de paiement (settlementMode) le code commercial de l’offre Oney.
Pour connaître les différents codes commerciaux possibles, vous devez vous rapprocher d’Oney.
- Pour chacune des offres, des seuils spécifiques (montants minimum et
maximum) sont paramétrés chez Oney.
Si vous n'en avez pas connaissance, vous devez vous rapprocher d’Oney pour les connaître.
Les contrôles effectués par le serveur de paiement sont :
- Le champ orderId qui doit être obligatoirement renseigné. Il correspond à la référence de la commande chez Oney. Vous devrez garantir l’unicité de ce champ.
- Oney impose le renseignement de nombreux champs, pour en connaître la liste exhaustive, veuillez-vous référer au paragraphe «Paramétrer la requête de paiement».
Livraison du panier
La réponse instantanée retournée lors du paiement en ligne peut être définitive (CAPTURED) ou temporaire (statut TO_CONFIRM_CAPTURE).
La réponse définitive est connue lors de l’opération de confirmation (passage au statut CAPTURED en cas d’acceptation, ou REFUSED dans le cas contraire). Afin de connaître le résultat définitif du paiement, vous devez consulter les opérations de remise détaillées quotidiennement dans le journal des opérations où vous pouvez consulter notre extranet si vous en y disposez l’accès.
Par conséquent, vous devez attendre que la transaction passe à l’état CAPTURED pour livrer le colis à vos clients.
Pages de paiement
Le client sélectionne le moyen de paiement Oney 3X 4X.
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 Oney 3X 4X
Afin de proposer le moyen de paiement Oney 3X 4X sur votre site Web, vous devez souscrire un contrat d’acceptation auprès d'Oney. Vous nous transmettez par la suite le numéro de contrat afin de l’enregistrer dans notre système d’information.
Effectuer un paiement Oney 3X 4X
Vous pouvez proposer le moyen de paiement Oney 3X 4X au travers de Sips Paypage qui assure l’interface de paiement directement avec le client via son navigateur Web.
Les modes de remise disponibles pour une transaction Oney 3X 4X sont les suivants :
- Mode immédiat : la remise de la transaction est réalisée au moment de l’acceptation du paiement en ligne
- 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 expirera 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 Oney 3X 4X avec Sips Paypage
La cinématique de paiement pour Sips Paypage est décrite ci-dessous :
Paramétrer la requête de paiement
Les champs suivants ont un comportement particulier :
Nom du champ | Remarques / règles |
---|---|
captureDay |
La valeur envoyée dans la requête doit être de 30 au
maximum. Une valeur supérieure sera forcée à 30. |
paymentPattern |
La valeur envoyée dans la requête est ignorée. Le type
de paiement est forcé à ONE_SHOT. |
orderId |
Obligatoire |
customerId |
Obligatoire : maximum 8 caractères. |
paymentMeanData.oney34x.settlementMode |
Obligatoire : Code de l’opération commerciale ; Se rapprocher d’Oney pour obtenir la liste exhaustive de ces modalités de paiement. |
customerContact |
Pour plus de détails, voir les tableaux ci-dessous. |
customerAddress |
Pour plus de détails, voir les tableaux ci-dessous. |
customerLanguage |
Permet de choisir la langue utilisée sur les pages Worldline Sips et Oney. |
deliveryData |
Pour plus de détails, voir les tableaux ci-dessous. |
deliveryContact |
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. |
customerContact
Nom du champ | Remarques / règles |
---|---|
customerContact.title |
Obligatoire (M, MME ou MLLE) |
customerContact.lastname |
Obligatoire |
customerContact.firstname |
Obligatoire |
customerContact.phone |
Obligatoire |
customerContact.mobile |
Obligatoire |
customerContact.email | Obligatoire |
customerAddress
Nom du champ | Remarques / règles |
---|---|
customerAddress.streetNumber |
Facultatif |
customerAddress.street |
Obligatoire |
customerAddress.zipCode |
Obligatoire |
customerAddress.city |
Obligatoire |
customerAddress.country |
Obligatoire (ISO 3166-1 alpha-3) |
customerAddress.addressAdditional1 |
Facultatif |
deliveryData
Nom du champ | Remarques / règles |
---|---|
deliveryData.estimatedDeliveryDate |
Obligatoire |
deliveryData.deliveryMode |
Obligatoire 1 – Chez le commerçant 2 – Point de relai tiers 3 - Aéroport, gare, agence de voyage 4 – Adresse de facturation 5 – Adresse de livraison 6 – Ticket électronique |
deliveryData.deliveryMethod |
Obligatoire, sur 2 digits 1er digit : option de livraison 1 - Express (- de 24h) 2 – Standard 3 – Prioritaire 2ème digit : Priorité du mode de livraison 0 - si pas de priorité 1 - livraison supérieure à une heure 2 – livraison immédiate |
deliveryContact
Nom du champ | Remarques / règles |
---|---|
deliveryContact.title |
Facultatif (M, MME ou MLLE) |
deliveryContact.lastname |
Obligatoire |
deliveryContact.firstname |
Obligatoire |
deliveryContact.phone |
Obligatoire |
deliveryContact.email |
Obligatoire |
deliveryAddress
Nom du champ | Remarques / règles |
---|---|
deliveryAddress.streetNumber |
Facultatif |
deliveryAddress.street |
Obligatoire |
deliveryAddress.zipCode |
Obligatoire |
deliveryAddress.city |
Obligatoire |
deliveryAddress.country |
Obligatoire (ISO 3166-1 alpha-3) |
deliveryAddress.addressAdditional1 |
Facultatif |
deliveryAddress.company |
Facultatif |
shoppingCartDetail
shoppingCartItemList
est un objet complexe.
Nom du champ | Remarques / règles |
---|---|
shoppingCartDetail.shoppingCartTotalQuantity |
Obligatoire |
Avec N items … (au minimum 1
item) |
Obligatoire |
shoppingCartDetail.shoppingCartItemList.itemX.productSKU |
Obligatoire Valeurs : 1 – Nourriture et boissons 2 – Voiture et moto 3 – Culture et divertissement 4 – Maison et jardin 5 – appareils ménagers 6 - Enchères et achats multiples 7 – Fleurs et cadeaux 8 – PC et logiciels 9 - Beauté et bien être 10 – Services à la personne 11 – Services professionnels 12 – Sport 13 – Vêtements et accessoires 14 – Voyage et tourisme 15 – Hifi, photo et vidéo 16 – Téléphone et communication |
shoppingCartDetail.shoppingCartItemList.itemX.productDescription
|
Obligatoire : libellé |
shoppingCartDetail.shoppingCartItemList.itemX.productCode |
Obligatoire : référence externe |
shoppingCartDetail.shoppingCartItemList.itemX.productQuantity |
Obligatoire |
shoppingCartDetail.shoppingCartItemList.itemX.productUnitAmount |
Obligatoire |
shoppingCartDetail.shoppingCartItemList.itemX.travelData |
Facultatif A partir de la version IR_WS_2.38 (Sips Paypage SOAP/REST) ou HP_2.38 (Sips Paypage POST) Données voyage - voir le tableau ci-dessous |
travelData
travelData
est un container réservé aux
commerçants voyagistes. Un champ marqué "Obligatoire" ci-dessous ne l'est
que si son container n'est pas vide.Nom du champ | Remarques / règles |
---|---|
travelData.numberOfTravelers |
Facultatif Nombre de voyageurs |
travelData.journeyDataList |
Facultatif - Liste des données de trajet Les champs marqués "Obligatoire" dans cette liste ne le sont que si un trajet est renseigné dans la liste |
travelData.journeyDataList.journeyDataX.journeyStage |
Facultatif - Valeurs autorisées : OUTWARD - aller |
travelData.journeyDataList.journeyDataX.journeySequence |
Conditionnel - Obligatoire si journeyStage est TRANSITIndique la séquence du trajet transitoire dans la liste des trajets, de 1 à 9 |
travelData.journeyDataList.journeyDataX.departureDateTime |
Obligatoire - Format ISO8601 Date et heure de départ |
travelData.journeyDataList.journeyDataX.departureLocation |
Obligatoire Ville de départ |
travelData.journeyDataList.journeyDataX.arrivalLocation |
Obligatoire Ville d'arrivée |
travelData.journeyDataList.journeyDataX.classLevel |
Obligatoire - Valeurs autorisées : 1 - Première classe ou classe business |
travelData.journeyDataList.journeyDataX.ticketExchangeabilityIndicator |
Obligatoire - Valeurs autorisées : true - Le ticket est échangeable |
travelData.journeyDataList.journeyDataX.journeyInsuranceIndicator |
Obligatoire - Valeurs autorisées : true - Le trajet est assuré |
travelData.journeyDataList.journeyDataX.journeyMode |
Facultatif - Valeurs autorisées : AIR - Par air |
travelData.stayDataList |
Facultatif - Liste des données d'étapes Les champs marqués "Obligatoire" dans cette liste ne le sont que si une étape est renseignée dans la liste |
travelData.stayDataList.stayDataX.numberOfPeopleStaying |
Facultatif Nombre de personnes pour l'étape |
travelData.stayDataList.stayDataX.stayLocation |
Obligatoire Lieu de résidence |
travelData.stayDataList.stayDataX.stayNumberOfRooms |
Facultatif Nombre de chambres |
travelData.stayDataList.stayDataX.stayArrivalDateTime |
Obligatoire - Format ISO8601 Date et heure d'arrivée |
travelData.stayDataList.stayDataX.stayDepartureDateTime |
Obligatoire - Format ISO8601 Date et heure de départ |
travelData.stayDataList.stayDataX.stayRentalCarIndicator |
Facultatif - Valeurs autorisées : true - Un véhicule est loué pour cette étape |
travelData.stayDataList.stayDataX.stayInsuranceIndicator |
Obligatoire - Valeurs autorisées : true - L'étape est assurée |
travelData.stayDataList.stayDataX.stayCategory |
Facultatif - Valeurs autorisées : HOTEL - Hôtel |
- Un séjour à New York avec un vol aller-retour au départ de Paris et un séjour dans un hôtel ;
- Une journée à Londres, aller en train au départ de Paris avec correspondance à Lille et retour à Paris en avion.
shoppingCartDetail.shoppingCartTotalQuantity=2
|shoppingCartDetail.shoppingCartItemList={productDescription=Paris NewYork,productCode=189,productSKU=14,productUnitAmount=250000,productQuantity=1,travelData.numberOfTravelers=1,
travelData.journeyDataList={departureLocation=Paris,arrivalLocation=New York,departureDateTime=2021-01-01T10:30:00+02:00,classLevel=1,journeyMode=AIR,journeyStage=OUTWARD,journeyInsuranceIndicator=true,ticketExchangeabilityIndicator=true},
{departureLocation=New York,arrivalLocation=Paris,departureDateTime=2021-01-05T17:30:00+02:00,classLevel=1,journeyMode=AIR,journeyStage=RETURN,journeyInsuranceIndicator=true,ticketExchangeabilityIndicator=true},
travelData.stayDataList={stayLocation=Blue Motel,stayArrivalDateTime=2021-01-01T20:00:00+02:00,stayDepartureDateTime=2021-01-05T07:30:00+02:00,stayNumberOfRooms=1,stayInsuranceIndicator=true,stayRentalCarIndicator=true}},
{productDescription=Paris London,productCode=190,productSKU=14,productUnitAmount=15000,productQuantity=1,travelData.numberOfTravelers=1,
travelData.journeyDataList={departureLocation=Paris,arrivalLocation=Lille,departureDateTime=2021-06-01T07:00:00+02:00,classLevel=2,journeyMode=RAIL,journeyStage=OUTWARD,journeyInsuranceIndicator=false,ticketExchangeabilityIndicator=false},
{departureLocation=Lille,arrivalLocation=London,departureDateTime=2021-06-01T09:00:00+02:00,classLevel=2,journeyMode=RAIL,journeyStage=TRANSIT,journeySequence=1,journeyInsuranceIndicator=false,ticketExchangeabilityIndicator=false},
{departureLocation=London,arrivalLocation=Paris,departureDateTime=2021-06-01T20:00:00+02:00,classLevel=1,journeyMode=AIR,journeyStage=RETURN,journeyInsuranceIndicator=true,ticketExchangeabilityIndicator=true}}
Le même exemple, sur Sips Paypage JSON :
"shoppingCartDetail": {
"shoppingCartTotalQuantity": "2"
"shoppingCartItemList": [{
"productCode": "189",
"productDescription": "Paris New York",
"productQuantity": "1",
"productSKU": "14",
"productUnitAmount": "250000",
"travelData": {
"numberOfTravelers": "1",
"journeyDataList": [{
"arrivalLocation": "New York",
"classLevel": "1",
"departureDateTime": "2021-01-01T10:30:00+02:00",
"departureLocation": "Paris",
"journeyInsuranceIndicator": "true",
"journeyMode": "AIR",
"journeyStage": "OUTWARD",
"ticketExchangeabilityIndicator": "true"
},{
"arrivalLocation": "Paris",
"classLevel": "1",
"departureDateTime": "2021-01-05T17:30:00+02:00",
"departureLocation": "New York",
"journeyInsuranceIndicator": "true",
"journeyMode": "AIR",
"journeyStage": "RETURN",
"ticketExchangeabilityIndicator": "true"
}],
"stayDataList": [{
"stayArrivalDateTime": "2021-01-01T20:00:00+02:00",
"stayDepartureDateTime": "2021-01-05T07:30:00+02:00",
"stayInsuranceIndicator": "true",
"stayLocation": "Blue Motel",
"stayNumberOfRooms": "1",
"stayRentalCarIndicator": "true"
}]
}
},{
"productCode": "190",
"productDescription": "Paris London",
"productQuantity": "1",
"productSKU": "14",
"productUnitAmount": "15000",
"travelData": {
"numberOfTravelers": "1"
"journeyDataList": [{
"arrivalLocation": "Lille",
"classLevel": "2",
"departureDateTime": "2021-06-01T07:00:00+02:00",
"departureLocation": "Paris",
"journeyInsuranceIndicator": "false",
"journeyMode": "RAIL",
"journeyStage": "OUTWARD",
"ticketExchangeabilityIndicator": "false"
},{
"arrivalLocation": "London",
"classLevel": "2",
"departureDateTime": "2021-06-01T09:00:00+02:00",
"departureLocation": "Lille",
"journeyInsuranceIndicator": "false",
"journeyMode": "RAIL",
"journeySequence": "1",
"journeyStage": "TRANSIT",
"ticketExchangeabilityIndicator": "false"
},{
"arrivalLocation": "Paris",
"classLevel": "1",
"departureDateTime": "2021-06-01T20:00:00+02:00",
"departureLocation": "London",
"journeyInsuranceIndicator": "true",
"journeyMode": "AIR",
"journeyStage": "RETURN",
"ticketExchangeabilityIndicator": "true"
}],
}
}],
}
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 = ONEY_3X ou
ONEY_4XpaymentMeanType =
PROVIDERresponseCode =
00 |
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. 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 Oney 3X 4X avec Sips Office
L’acceptation Oney 3X 4X n’est pas disponible au travers de la solution Sips Office.
Gérer vos transactions Oney 3X 4X
Opérations de caisse disponibles
Les opérations suivantes sont disponibles sur les transactions Oney 3X et 4X :
Gestion de caisse | ||
---|---|---|
Annulation | V | |
Validation | V | Validation possible sur le montant total ou partiel de la transaction. |
Remboursement | V | |
Duplication | X | |
Crédit | 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 ses transactions Oney 3X 4X
Journaux
Les journaux mis à disposition par Worldline Sips 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 Oney 3X 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 | X |
Sips Office Extranet
Vous pouvez consulter le détail de vos transactions Oney 3X 4X et effectuer différentes opérations de gestion de caisse grâce à Sips Office Extranet.