Envoyer un formulaire de paiement en POST

Le site marchand redirige l’acheteur vers la plateforme de paiement sous la forme d'un formulaire HTML POST en HTTPS.

Ce formulaire contient :

Les éléments techniques suivants :

  • Les balises <form> et </form> qui permettent de créer un formulaire HTML.
  • L’attribut method="POST" qui spécifie la méthode utilisée pour envoyer les données.
  • L’attribut action="https://secure.lyra.com/vads-payment/" qui spécifie où envoyer les données du formulaire.

Les données du formulaire :

Toutes les données du formulaire doivent être encodées en UTF-8.

Les caractères spéciaux (accents, ponctuation etc.) seront ainsi correctement interprétés par la plateforme de paiement. Dans le cas contraire, le calcul de signature sera erroné et le formulaire sera rejeté.

Nous vous invitons à consulter le tableau suivant pour mieux comprendre la codification des formats.

Notation Description
a Caractères alphabétiques (de ‘A’ à ‘Z’ et de ‘a’ à ‘z’)
n Caractères numériques
s Caractères spéciaux
an Caractères alphanumériques
ans Caractères alphanumériques et spéciaux (à l'exception de "<" et ">")
3 Longueur fixe de 3 caractères
..12 Longueur variable jusqu’à 12 caractères
json JavaScript Object Notation.

Objet contenant des paires de clé/valeur séparées par une virgule.

Il commence par une accolade gauche " { et se termine par une accolade droite " } ".

Chaque paire clé/valeur contient le nom de la clé entre double-quotes suivi par " : ", suivi par une valeur.

Le nom de la clé doit être alphanumérique.

La valeur peut être :
  • une chaine de caractères (dans ce cas elle doit être encadrée par des doubles-quotes)
  • un nombre
  • un objet
  • un tableau
  • un booléen
  • vide
Exemple: {"name1":45,"name2":"value2", "name3"=false}
enum

Caractérise un champ possédant un nombre fini de valeurs.

La liste des valeurs possibles est donnée dans la définition du champ.

liste d'enum Liste de valeurs séparées par un " ; ".

La liste des valeurs possibles est donnée dans la définition du champ.

Exemple: vads_payment_cards=VISA;MASTERCARD

map Liste de paires clé/valeur séparées par un " ; ".

Chaque paire clé/valeur contient le nom de la clé suivi par " = ", suivi par une valeur.

La valeur peut être :
  • une chaine de caractères
  • un booléen
  • un objet json
  • un objet xml

La liste des valeurs possibles pour chaque paire de clé/valeur est donnée dans la définition du champ.

Exemple: vads_theme_config=SIMPLIFIED_DISPLAY=true;RESPONSIVE_MODEL=Model_1

  • Les champs obligatoires :
    Nom du champ Description Format Valeur
    signature Signature garantissant l'intégrité des requêtes échangées entre le site marchand et la plateforme de paiement. ans

    Ex :

    ycA5Do5tNvsnKdc/eP1bj2xa19z9q3iWPy9/rpesfS0=

    vads_action_mode Mode d’acquisition des données du moyen de paiement enum INTERACTIVE
    vads_amount Montant du paiement dans sa plus petite unité monétaire (le centime pour l'euro) n..12 Ex : 3000 pour 30,00 EUR
    vads_ctx_mode Mode de communication avec la plateforme de paiement enum TEST ou PRODUCTION
    vads_currency Code numérique de la monnaie à utiliser pour le paiement, selon la norme ISO 4217 (code numérique) n3 Ex : 978 pour l'euro (EUR)
    vads_page_action Action à réaliser enum PAYMENT
    vads_payment_config Type de paiement enum SINGLE pour un paiement en 1 fois

    MULTI pour un paiement en plusieurs fois

    vads_site_id Identifiant de la boutique n8 Ex : 12345678
    vads_trans_date Date et heure du formulaire de paiement dans le fuseau horaire UTC n14

    Respectez le format AAAAMMJJHHMMSS

    Ex : 20200101130025
    vads_trans_id Numéro de la transaction.

    Attention : ce champ n'est pas sensible à la casse.

    an6 Ex : xrT15p
    vads_version Version du protocole d’échange avec la plateforme de paiement enum V2
  • Les champs fortement recommandés :
    • Le moyen de paiement à utiliser
      Nom du champ Description Format Valeur
      vads_payment_cards Permet de forcer le type de carte à utiliser.

      Il est recommandé de proposer sur le site marchand un bouton de paiement différent pour chaque moyen de paiement.

      Il est déconseillé de laisser le champ vide.

      Consultez le chapitre Gérer les moyens de paiement proposés à l'acheteur du Guide d'implémentation - API Formulaire pour plus d'informations.

      enum Ex :
      • CB
      • CVCONNECT
      • PAYLIB
      • MASTERCARD
      • VISA
      • SDD
    • Les données de la commande
      Nom du champ Description Format Valeur
      vads_order_id Numéro de commande

      Peut être composé de majuscules ou de minuscules, chiffres ou tiret ([A-Z] [a-z], 0-9, _, -).

      ans..64 Ex : 2-XQ001
      vads_order_info Informations supplémentaires sur la commande an..255 Ex : Code interphone 3125
      vads_order_info2 Informations supplémentaires sur la commande an..255 Ex : Sans ascenseur
      vads_order_info3 Informations supplémentaires sur la commande an..255 Ex : Express
      vads_ext_info_xxxx Information complémentaire nécessaire au marchand qui apparaîtra dans l'e-mail de confirmation de paiement à destination du marchand et dans le Back Office Expert (onglet Extra du détail de la transaction).

      xxxx correspond au nom de la donnée transmise.

      Par exemple : vads_ext_info_departure_city

      ans..255 Ex : LHR
    • Les données de l'acheteur
      Nom du champ Description Format Valeur
      vads_cust_email Adresse e-mail de l’acheteur ans..150 Ex : abc@example.com
      vads_cust_id Référence de l’acheteur sur le site marchand an..63 Ex : C2383333540
      vads_cust_national_id Identifiant national ans..255 Ex : 940992310285
      vads_cust_title Civilité de l’acheteur an..63 Ex : M
      vads_cust_status Statut

      enum

      PRIVATE : pour un particulier

      COMPANY : pour une entreprise

      vads_cust_first_name Prénom ans..63 Ex : Laurent
      vads_cust_last_name Nom ans..63 Ex : Durant
      vads_cust_legal_name Raison sociale de l'acheteur an..100 Ex : D. & Cie
      vads_cust_phone Numéro de téléphone an..32 Ex : 0467330222
      vads_cust_cell_phone Numéro de téléphone mobile an..32 Ex : 06 12 34 56 78
      vads_cust_address_number Numéro de voie ans..64 Ex : 109
      vads_cust_address Adresse postale ans..255 Ex : Rue de l'innovation

      vads_cust_address2 Deuxième ligne d'adresse ans..255 Ex :
      vads_cust_district Quartier ans..127 Ex : Centre ville
      vads_cust_zip Code postal an..64 Ex : 31670
      vads_cust_city Ville an..128 Ex : Labège
      vads_cust_state Etat / Région ans..127 Ex : Occitanie
      vads_cust_country Code pays suivant la norme ISO 3166 alpha-2 a2

      Ex : "FR" pour la France, "PF" pour la Polynésie Française, "NC" pour la Nouvelle Calédonie, "US" pour les Etats-Unis.

  • Les champs recommandés :
    • Les données de livraison
      Nom du champ Description Format Valeur
      vads_ship_to_city Ville an..128 Ex : Bordeaux
      vads_ship_to_country Code pays suivant la norme ISO 3166 (obligatoire pour déclencher une ou plusieurs actions si le profil Contrôle du pays de la livraison est activé). a2 Ex : FR
      vads_ship_to_district Quartier ans..127 Ex : La Bastide
      vads_ship_to_first_name Prénom ans..63 Ex : Albert
      vads_ship_to_last_name Nom ans..63 Ex : Durant
      vads_ship_to_legal_name Raison sociale an..100 Ex : D. & Cie
      vads_ship_to_phone_num Numéro de téléphone ans..32 Ex : 0460030288
      vads_ship_to_state Etat / Région ans..127 Ex : Nouvelle aquitaine
      vads_ship_to_status Définit le type d'adresse de livraison

      enum

      PRIVATE : pour une livraison chez un particulier

      COMPANY : pour une livraison en entreprise

      vads_ship_to_street_number Numéro de voie ans..64 Ex : 2
      vads_ship_to_street Adresse postale ans..255 Ex : Rue Sainte Catherine
      vads_ship_to_street2 Deuxième ligne d’adresse ans..255
      vads_ship_to_zip Code postal an..64 Ex : 33000
    • Les données du panier
      Nom du champ Description Format Valeur
      vads_nb_products Nombre d’articles présents dans le panier n..12 Ex : 2
      vads_product_ext_idN Code barre du produit dans le site web du marchand. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) an..100 Ex :

      vads_product_ext_id0 = "0123654789123654789"

      vads_product_ext_id1 = "0223654789123654789"

      vads_product_ext_id2 = "0323654789123654789"

      vads_product_labelN Libellé de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) ans..255 Ex :

      vads_product_label0 = "tee-shirt"

      vads_product_label1 = "Biscuit"

      vads_product_label2 = "sandwich"

      vads_product_amountN Montant de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) n..12 Ex :

      vads_product_amount0 = "1200"

      vads_product_amount1 = "800"

      vads_product_amount2 = "950"

      vads_product_typeN Type de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...)

      enum Ex :

      vads_product_type0 = "CLOTHING_AND_ACCESSORIES"

      vads_product_type1 = "FOOD_AND_GROCERY"

      vads_product_type2 = "FOOD_AND_GROCERY"

      vads_product_refN Référence de l’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) an..64 Ex :

      vads_product_ref0 = "CAA-25-006"

      vads_product_ref1 = "FAG-B5-112"

      vads_product_ref2 = "FAG-S9-650"

      vads_product_qtyN Quantité d’article. N correspond à l'indice de l'article (0 pour le premier, 1 pour le second...) n..12 Ex :

      vads_product_qty0 = "1"

      vads_product_qty1 = "2"

      vads_product_qty2 = "2"

      Remarque :

      En renseignant le champ vads_nb_products, l'onglet Panier dans le détail d'une transaction depuis le Back Office Expert s'affichera.

      Cependant, si les autres champs commençant par vads_product_ ne sont pas renseignés, l'onglet ne comportera pas d'information. Pour cette raison, en valorisant le champ vads_nb_products, il devient obligatoire de valoriser les autres champs commençant par vads_product_.

  • Les champs facultatifs :

    Vous pouvez utiliser des paramètres facultatifs supplémentaires.

    Référez-vous au chapitre Dictionnaire de données du guide d'implémentation API Formulaire disponible sur notre site documentaire afin de visualiser la liste des champs disponibles.

Le bouton Payer qui va permettre l’envoi des données :

<input type="submit" name="payer" value="Payer"/>