Arborescence des pages

Vous regardez une version antérieure (v. /display/DT/Cadhoc) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) Actuel »


Contenu


Qu'est-ce que Cadhoc ?

La carte Cadhoc est un titre prépayé du groupe Up, partenaire privilégié des Comités d’entreprise, entreprises et collectivités depuis 1964.

Groupe indépendant, N°3 mondial sur le marché des solutions sociales, culturelles, cadeaux, et des dispositifs de stimulation depuis 50 ans. Leader avec +50% de Comités d’entreprise (et COS) clients de solutions cadeaux, culturelles et sociales du Groupe Chèque Déjeuner.

Les clients peuvent ajouter plusieurs cartes prépayées cadhoc ou chèque lire ou chèque déjeuner sur la page de paiement et payer le complément par carte bancaire.

Le marchand peut bénéficier au sein de la même page de paiement des moyens de paiement Chèques Lire te Chèques Culture.


Lien vers le site web : https://www.macarte-cadhoc.com/accueil.html

Les fonctions disponibles

Fonctionnalités générales

Service Payline

Disponibilités du service

Gestion de caisse

Capture (201)

Oui

Refund (421)

Oui (+partiel)

Reset (annulation de remise)

Non

Débit (204) – idem 201 sans autorisation

Non

Crédit (422) – idem 421 sans autorisation

Non

Mode de paiement

Comptant (CPT)

Non

Différé (DIF)

Non

Nx

Non

Récurrent (REC)

Non

Actions de paiement

Autorisation (100)

Oui

Autorisation+validation (101)

Oui

Signature

Non



Traitement synchrone/asynchrone

Le traitement du paiement est réalisé en mode synchrone. Le commerçant reçoit la réponse en temps réel.

Quel est le parcours utilisateur avec Cadhoc ?

L'expérience utilisateur d'un paiement se résume à :

  1. Le consommateur valide sa commande sur votre site marchand ;
  2. Il sélectionne le moyen de paiement Cadhoc;
  3. Payline redirige le consommateur sur la page Cadhoc ;
  4. Le consommateur sélectionne le mode de paiement ;
  5. Il saisit ses données cartes. Ses données cartes ne sont pas connues du commerçant et de Payline ;
  6. Il confirme le montant et il valide le paiement ;
  7. Une fois le paiement effectué, Payline affiche le résultat et le ticket de paiement (optionel) ;
  8. Puis l’acheteur est redirigé sur le site marchand ;
    Le site marchand contacte Payline pour obtenir le résultat du paiement ;
    Le résultat est renvoyé au commerçant.

Parcours utilisateur d’un paiement web


La figure ci-dessus donne le séquencement des pages. Notons que les pages 2 et 5 sont optionnelles


Page de paiement Payline : sélection du moyen de paiement



Page de paiement : sélection du mode de paiement Cadhoc



Page de paiement : Saisie des informations de paiement


Affichage du nouveau solde de la carte et demande de confirmation du paiement


Demande de finalisation du paiement


Quel est le reporting disponible ?

Les transactions apparaissent dans le backoffice Payline en temps réel et dans les fichiers de reporting suivants :

  • fichier des transactions ;
  • fichier des paiements avec ou sans l'option réconciliation.

Comment proposer Cadhoc à vos clients ?

Une fois le moyen de paiement activé, il est utilisable au travers des fonctions standard Payline.

L'intégration en mode API Web est disponible  services doWebPayment et getWebPaymentDetail.

Comment configurer votre compte ?

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

Les champs obligatoires

Nom du champType

Id transaction

Libellé

Numéro de carte

PAN masqué
Type = CadhocLibellé
Date d’expirationDate
MontantMontant avec code devise

Comment réaliser des tests ?

Il vous faut obtenir une carte de test auprès du processeur UP.


Les codes de retour

Payline vous informe du résultat d'un paiement via le code retour des messages « getWebPaymentDetails » et « getTransactionDetails ».
Lorsque le paiement est accepté, Payline renvoie le code retour à la valeur « 00000 ».

Pour un paiement refusé, le code varie en fonction du motif de refus (Par exemple : 04xxx pour une suspicion de fraude).

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

  • Reset : non; l'erreur suivante est retournée 02621 - Operation not allowed on this site
  • Debit (204) : non; l'erreur suivante est retournée 36016 - Requested function not available
  • Credit (422) : non; l'erreur suivante est retournée 36016 - Requested function not available

Return codes : Limonetik (36)

CodeShortMessageLongMessage
36000ONHOLD_PARTNER Credit Transaction In progress
36001REFUSEDTransaction refused
36002ERRORPayment partner error
36003REFUSEDTransaction charges
36004REFUSEDTransaction is charging
36005ACCEPTEDTransaction refunded
36010ERRORUnreachable host
36011ERRORThe fields shippingAddress.title, shippingAddress.firstname, shippingAddress.lastname, shippingAddress.name, shippingAddress.street1, shippingAddress.zipCode, shippingAddress.cityName, shippingAddress.country of object buyer are mandatory.
36012ERRORThe fields billingAddress.title, billingAddress.firstname, billingAddress.lastname, billingAddress.name, billingAddress.street1, billingAddress.zipCode, billingAddress.cityName, billingAddress.country of object buyer are mandatory.
36013ERRORThe fields order.deliveryMode, order.deliveryTime, order.deliveryexpectedDate, order.deliveryexpectedDelay, details.ref, details.comment, details.price, details.quantity, details.category, details.brand are mandatory.
36014ERRORSyntax error.
36015ERRORInvalid amount.
36016REFUSEDRequested function not available
36017ERRORInvalid title
36018ERRORInvalid Item Category
36019ERRORInvalid expected delivery date
36020ERRORInvalid data. Refer to transaction details.
36025ERROROperation not allowed. Refer to transaction details.
36030ERROROperation refused.
36500ERRORRemote error.
36505ERRORUnreachable host.
36940ERRORSyntax error.
36941ERRORAuthentication error.
36943ERRORUnauthorised request.
36944ERRORUnknown transaction.
36945ERRORUnauthorised http primitive.
36950ERRORError.

Exemple de trame SOAP

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:impl="http://impl.ws.payline.experian.com" xmlns:obj="http://obj.ws.payline.experian.com">
   <soapenv:Header/>
   <soapenv:Body>
      <impl:doWebPaymentRequest>
         <impl:version>9</impl:version>
         <impl:payment>
            <obj:amount>100</obj:amount>
            <obj:currency>978</obj:currency>
            <obj:action>100</obj:action>
            <obj:mode>CPT</obj:mode>
            <obj:contractNumber>CADHOC_01</obj:contractNumber>
            <!--Optional:-->
            <obj:differedActionDate></obj:differedActionDate>
            <!--Optional:-->
            <obj:method></obj:method>
            <obj:softDescriptor></obj:softDescriptor>
            <!--Optional:-->
            <obj:cardBrand></obj:cardBrand>
         </impl:payment>
         <impl:returnURL>http://www.soapui.org/</impl:returnURL>
         <impl:cancelURL>http://sahi.co.in/</impl:cancelURL>
         <impl:order>
            <obj:ref>CTUx30371</obj:ref>
            <!--Optional:-->
            <obj:origin></obj:origin>
            <!--Optional:-->
            <obj:country></obj:country>
            <!--Optional:-->
            <obj:taxes></obj:taxes>
            <obj:amount>11000</obj:amount>
            <obj:currency>978</obj:currency>
            <obj:date>06/07/2014 10:19</obj:date>
            <!--Optional:-->
            <obj:details>
               <!--0 to 100 repetitions:-->
               <obj:details>
                  <!--Optional:-->
                  <obj:ref>00001 (ref1)</obj:ref>
                  <!--Optional:-->
                  <obj:price>50</obj:price>
                  <!--Optional:-->
                  <obj:quantity>1</obj:quantity>
                  <!--Optional:-->
                  <obj:comment>comment1 (rem1)</obj:comment>
                  <!--Optional:-->
                  <obj:category>1</obj:category>
                  <!--Optional:-->
                  <obj:brand>My HERMES (brd1)</obj:brand>
                  <!--Optional:-->
                  <obj:subcategory1>BOSS</obj:subcategory1>
                  <!--Optional:-->
                  <obj:subcategory2>MONTRE</obj:subcategory2>
                  <!--Optional:-->
                  <obj:additionalData>LegalAge=18;Discount=0105</obj:additionalData>
                  <!--Optional:-->
                  <obj:taxRate>1234</obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref>00002 (ref2)</obj:ref>
                  <obj:price>50</obj:price>
                  <obj:quantity>1</obj:quantity>
                  <obj:comment>comment2 (rem2)</obj:comment>
                  <obj:category>1</obj:category>
                  <obj:brand>My HERMES (brd2)</obj:brand>
                  <obj:subcategory1>HERMES</obj:subcategory1>
                  <obj:subcategory2>FOULARD</obj:subcategory2>
                  <obj:additionalData>LegalAge=18;Discount=0105</obj:additionalData>
                  <obj:taxRate>1234</obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref>00003 (ref3)</obj:ref>
                  <obj:price>50</obj:price>
                  <obj:quantity>1</obj:quantity>
                  <obj:comment>comment3 (rem3)</obj:comment>
                  <obj:category>1</obj:category>
                  <obj:brand>My HERMES (brd3)</obj:brand>
                  <obj:subcategory1>HERMES</obj:subcategory1>
                  <obj:subcategory2>MONTRE</obj:subcategory2>
                  <obj:additionalData>LegalAge=19;Discount=0105</obj:additionalData>
                  <obj:taxRate>1234</obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref>00004 (ref4)</obj:ref>
                  <obj:price>50</obj:price>
                  <obj:quantity>1</obj:quantity>
                  <obj:comment>comment4 (rem4)</obj:comment>
                  <obj:category>1</obj:category>
                  <obj:brand>My HERMES (brd4)</obj:brand>
                  <obj:subcategory1>HERMES</obj:subcategory1>
                  <obj:subcategory2>MONTRE</obj:subcategory2>
                  <obj:additionalData>LegalAge=18;Discount=0105</obj:additionalData>
                  <obj:taxRate>4321</obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref>00005 (ref5)</obj:ref>
                  <obj:price>51</obj:price>
                  <obj:quantity>1</obj:quantity>
                  <obj:comment>comment5 (rem5)</obj:comment>
                  <obj:category>1</obj:category>
                  <obj:brand>My HERMES (brd5)</obj:brand>
                  <obj:subcategory1>HERMES</obj:subcategory1>
                  <obj:subcategory2>MONTRE</obj:subcategory2>
                  <obj:additionalData>LegalAge=18;Discount=0105</obj:additionalData>
                  <obj:taxRate>1234</obj:taxRate>
               </obj:details>
               <!--<obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>
               <obj:details>
                  <obj:ref></obj:ref>
                  <obj:price></obj:price>
                  <obj:quantity></obj:quantity>
                  <obj:comment></obj:comment>
                  <obj:category></obj:category>
                  <obj:brand></obj:brand>
                  <obj:subcategory1></obj:subcategory1>
                  <obj:subcategory2></obj:subcategory2>
                  <obj:additionalData></obj:additionalData>
                  <obj:taxRate></obj:taxRate>
               </obj:details>-->
            </obj:details>
            <!--Optional:-->
            <obj:deliveryTime>1</obj:deliveryTime>
            <!--Optional:-->
            <obj:deliveryMode>1</obj:deliveryMode>
            <!--Optional:-->
            <obj:deliveryExpectedDate>31/08/2017</obj:deliveryExpectedDate>
            <!--Optional:-->
            <obj:deliveryExpectedDelay>1</obj:deliveryExpectedDelay>
         </impl:order>
         <impl:notificationURL></impl:notificationURL>
         <impl:selectedContractList>
            <!--1 to 25 repetitions:-->
            <obj:selectedContract>CADHOC_01</obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
         </impl:selectedContractList>
         <impl:secondSelectedContractList>
            <!--1 to 25 repetitions:-->
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
            <obj:selectedContract></obj:selectedContract>
         </impl:secondSelectedContractList>
         <impl:privateDataList>
            <!--0 to 100 repetitions:-->
            <obj:privateData>
               <obj:key>key1</obj:key>
               <obj:value>value1</obj:value>
            </obj:privateData>
            <!--<obj:privateData>
               <obj:key>PAYLINE.PRE_SCORE</obj:key>
               <obj:value>21330</obj:value>
            </obj:privateData>
            <obj:privateData>
               <obj:key></obj:key>
               <obj:value></obj:value>
            </obj:privateData>
            <obj:privateData>
               <obj:key></obj:key>
               <obj:value></obj:value>
            </obj:privateData>
            <obj:privateData>
               <obj:key></obj:key>
               <obj:value></obj:value>
            </obj:privateData>-->
         </impl:privateDataList>
         <impl:languageCode></impl:languageCode>
         <impl:customPaymentPageCode></impl:customPaymentPageCode>
         <impl:buyer>
            <obj:title>M</obj:title>
            <obj:lastName>TUPU</obj:lastName>
            <obj:firstName>Christian</obj:firstName>
            <obj:email>christian.tupu@monext.net</obj:email>
            <obj:shippingAdress>
               <!--Optional:-->
               <obj:title>2</obj:title>
               <!--Optional:-->
               <obj:name>BUYER (shipping)</obj:name>
               <!--Optional:-->
               <obj:firstName>Validation Team (shipping)</obj:firstName>
               <!--Optional:-->
               <obj:lastName>PAYLINE (shipping)</obj:lastName>
               <!--Optional:-->
               <obj:street1>Colombus Circle (shipping)</obj:street1>
               <!--Optional:-->
               <obj:street2>Central Park (shipping)</obj:street2>
               <!--Optional:-->
               <obj:cityName>New York (shipping)</obj:cityName>
               <!--Optional:-->
               <obj:zipCode>NY 10023</obj:zipCode>
               <!--Optional:-->
               <obj:country>france</obj:country>
               <!--Optional:-->
               <obj:phone>0123458789</obj:phone>
               <!--Optional:-->
               <obj:state>NYC (state)</obj:state>
               <!--Optional:-->
               <obj:county>Upper East Side (shipping)</obj:county>
               <!--Optional:-->
               <obj:phoneType>1</obj:phoneType>
            </obj:shippingAdress>
            <obj:billingAddress>
               <!--Optional:-->
               <obj:title>3</obj:title>
               <!--Optional:-->
               <obj:name>BUYER (billing)</obj:name>
               <!--Optional:-->
               <obj:firstName>Christian (billing)</obj:firstName>
               <!--Optional:-->
               <obj:lastName>TUPU (billing)</obj:lastName>
               <!--Optional:-->
               <obj:street1>260, rue Claude Nicolas Ledoux</obj:street1>
               <!--Optional:-->
               <obj:street2>Complément d'adresse</obj:street2>
               <!--Optional:-->
               <obj:cityName>AIX EN PROVENCE</obj:cityName>
               <!--Optional:-->
               <obj:zipCode>13593</obj:zipCode>
               <!--Optional:-->
               <obj:country>FR</obj:country>
               <!--Optional:-->
               <obj:phone>0442251515</obj:phone>
               <!--Optional:-->
               <obj:state></obj:state>
               <!--Optional:-->
               <obj:county>Bouches-du-Rhône</obj:county>
               <!--Optional:-->
               <obj:phoneType>4</obj:phoneType>
            </obj:billingAddress>
            <obj:accountCreateDate></obj:accountCreateDate>
            <obj:accountAverageAmount></obj:accountAverageAmount>
            <obj:accountOrderCount></obj:accountOrderCount>
            <obj:walletId></obj:walletId>
            <obj:walletDisplayed></obj:walletDisplayed>
            <obj:walletSecured></obj:walletSecured>
            <obj:walletCardInd></obj:walletCardInd>
            <obj:ip>172.22.120.218,172.0.0.3</obj:ip>
            <obj:mobilePhone></obj:mobilePhone>
            <obj:customerId>CTU</obj:customerId>
            <obj:legalStatus>1</obj:legalStatus>
            <obj:legalDocument>83006389468</obj:legalDocument>
            <obj:birthDate>1981-12-29</obj:birthDate>
            <obj:fingerprintID></obj:fingerprintID>
            <obj:deviceFingerprint></obj:deviceFingerprint>
            <obj:isBot></obj:isBot>
            <obj:isIncognito></obj:isIncognito>
            <obj:isBehindProxy></obj:isBehindProxy>
            <obj:isFromTor></obj:isFromTor>
            <obj:isEmulator></obj:isEmulator>
            <obj:isRooted></obj:isRooted>
            <obj:hasTimezoneMismatch></obj:hasTimezoneMismatch>
         </impl:buyer>
         <impl:owner>
            <obj:lastName>owner.lastName</obj:lastName>
            <obj:firstName>owner.firstName</obj:firstName>
            <obj:billingAddress>
               <obj:street>owner.billingAddress</obj:street>
               <obj:cityName>owner.billingAddress.cityName</obj:cityName>
               <obj:zipCode>zipCode 3</obj:zipCode>
               <obj:country>owner.billingAddress.country</obj:country>
               <obj:phone>0323458789</obj:phone>
            </obj:billingAddress>
            <obj:issueCardDate></obj:issueCardDate>
         </impl:owner>
         <impl:securityMode>SSL</impl:securityMode>
         <impl:recurring>
            <obj:firstAmount>51</obj:firstAmount>
            <obj:amount>100</obj:amount>
            <obj:billingCycle>10</obj:billingCycle>
            <obj:billingLeft>3</obj:billingLeft>
            <obj:billingDay></obj:billingDay>
            <obj:startDate></obj:startDate>
            <obj:endDate></obj:endDate>
            <obj:newAmount></obj:newAmount>
            <obj:amountModificationDate></obj:amountModificationDate>
         </impl:recurring>
         <impl:customPaymentTemplateURL></impl:customPaymentTemplateURL>
        <impl:contractNumberWalletList>
            <!--0 to 10 repetitions:-->
            <obj:contractNumberWallet></obj:contractNumberWallet>
            <obj:contractNumberWallet></obj:contractNumberWallet>
            <obj:contractNumberWallet></obj:contractNumberWallet>
            <obj:contractNumberWallet></obj:contractNumberWallet>
            <obj:contractNumberWallet></obj:contractNumberWallet>
         </impl:contractNumberWalletList>
         <impl:merchantName></impl:merchantName>
      </impl:doWebPaymentRequest>
   </soapenv:Body>
</soapenv:Envelope>
  • Aucune étiquette