Traiter les données de la réponse

Ci-dessous un exemple d'analyse pour vous guider pas à pas lors du traitement des données de la réponse.

  1. Identifiez la commande en récupérant la valeur du champ vads_order_id si vous l'avez transmis dans le formulaire de paiement.
    La valeur du champ vads_order_id est obligatoire.
    Vérifiez que le statut de la commande n'a pas déja été mis à jour.
  2. Récupérez le résultat du paiement transmis dans le champ vads_trans_status.
    Sa valeur vous permet de définir le statut de la commande.
    Tableau 1. Valeurs associées au champ vads_trans_status pour la première échéance
    Valeur Description
    AUTHORISED

    La transaction est acceptée et sera remise en banque automatiquement à la date prévue.

    CAPTURED

    Remisé

    La transaction est remise en banque.

    ABANDONED

    Paiement abandonné par l’acheteur.

    La transaction n’est pas créée et n’est donc pas visible dans le Back Office Marchand.

    CANCELLED

    Annulé

    Annulation par l'acheteur, l'acquéreur ou par la plateforme.

    REFUSED

    Refusé

    AUTHORISED_TO_VALIDATE

    A valider

    EXPIRED

    Expirée

    La date d'expiration de la demande d'autorisation est atteinte et le marchand n’a pas validé la transaction. Le porteur ne sera donc pas débité.

    WAITING_AUTHORISATION

    En attente d’autorisation

    Le "prêt à expédier" sera envoyé automatiquement le jour de la date de remise en banque. Le paiement pourra être accepté ou refusé. La remise en banque est automatique.

    NOT_CREATED

    La transaction n'est pas créée et n'est pas visible dans le Back Office Marchand.

    INITIAL

    En attente

    Ce statut est spécifique à tous les moyens de paiement nécessitant une intégration par formulaire de paiement en redirection.

    Ce statut est retourné lorsque :
    • aucune réponse n'est renvoyée par l'acquéreur

      ou

    • le délai de réponse de la part de l'acquéreur est supérieur à la durée de session du paiement sur la plateforme de paiement.

      Ce statut est temporaire. Le statut définitif sera affiché dans le Back Office Marchand aussitôt la synchronisation réalisée.

  3. Récupérez la référence du paiement transmise dans le champ vads_trans_id.
  4. Analysez les champs vads_payment_config et vads_sequence_number.
    Un paiement avec FacilyPay est considéré comme un paiement comptant (unitaire). Le champ vads_payment_config est toujours valorisé à SINGLE et le champ vads_sequence_number est donc valorisé à 1.
  5. Récupérez la valeur du champ vads_trans_date pour identifier la date du paiement.
  6. Récupérez la valeur du champ vads_capture_delay pour identifier le nombre de jours avant la remise en banque.
    Ceci vous permettra d'identifier s'il s'agit d'un paiement immédiat ou différé.
  7. Récupérez le montant et la devise utilisée. Pour cela, récupérez les valeurs des champs suivants:
    Tableau 2. Analyse du montant et de la devise utilisée
    Nom du champ Description
    vads_amount Montant du paiement dans sa plus petite unité monétaire.
    vads_currency Code de la devise utilisée pour le paiement.
    vads_change_rate Taux de change utilisé pour calculer le montant réél du paiement (voir vads_effective_amount).
    vads_effective_amount Montant du paiement dans la devise réellement utilisée pour effectuer la remise en banque.
    vads_effective_currency Devise dans laquelle la remise en banque va être effectuée.
    Remarque :
    Pour un paiement FacilyPay, le champ vads_currency sera toujours valorisé à 978 .
    Lorsque le champ vads_page_action est valorisé à REGISTER_SUBSCRIBE, le champ vads_amount est valorisé à 0, même si aucun paiement n'a été réalisé.
  8. Récupérez la valeur du champ vads_auth_result pour connaître le résultat de la demande d'autorisation.
    Pour vous aider à comprendre le motif du refus, voici la liste des codes retournés lors d'un paiement FacilyPay :
    Tableau 3. Valeurs associées au champ vads_auth_result
    Valeur Description
    00

    Dossier accepté (FIOK)

    01 Dossier accepté sous réserve (FASR)
    02 Dossier en attente de réponse (ATTENTE)
    03 Dossier en attente d'enquête (ATEQ)
    04 Dossier refusé (REFU)
    05 Dossier abandonné (ABAN)
    06

    Dossier expiré (CDEX)

    Remarque : Pour connaître la raison précise du refus, l’acheteur doit contacter sa banque.

  9. Récupérez le résultat des contrôles associés à la fraude en identifiant la valeur du champ vads_risk_control. Ce champ est envoyé uniquement si le marchand a:
    • souscrit à l’option « Aide à la décision »
    • activé au moins un contrôle depuis son Back Office Marchand (menu Paramétrage > Contrôle des risques).
    Il prend comme valeur une liste de valeurs séparées par un « ; » dont la syntaxe est: vads_risk_control = control1=result1;control2=result2
    Les différentes valeurs possibles pour control sont :
    Tableau 4. Liste des contrôles associés à la fraude
    Valeur Description
    CARD_FRAUD Contrôle la présence du numéro de carte de l'acheteur dans la liste grise de cartes.
    SUSPECT_COUNTRY Contrôle la présence du pays émetteur de la carte de l'acheteur dans la liste des pays interdits.
    IP_FRAUD Contrôle la présence de l'adresse IP de l'acheteur dans la liste grise d'IP.
    CREDIT_LIMIT Contrôle la fréquence et les montants d'achat d'un même numéro de carte, ou le montant maximum d'une commande.
    BIN_FRAUD Contrôle la présence du code BIN de la carte dans la liste grise des codes BIN.
    ECB Contrôle si la carte de l'acheteur est de type e-carte bleue.
    COMMERCIAL_CARD Contrôle si la carte de l'acheteur est une carte commerciale.
    SYSTEMATIC_AUTO Contrôle si la carte de l'acheteur est une carte à autorisation systématique.
    INCONSISTENT_COUNTRIES Contrôle si le pays de l'adresse IP, le pays émétteur de la carte de paiement, et le pays de l'adresse de l'acheteur sont cohérents entre eux.
    NON_WARRANTY_PAYMENT Contrôle le transfert de responsabilité de la transaction.
    SUSPECT_IP_COUNTRY Contrôle la présence du pays de l'acheteur, identifié par son adresse IP, dans la liste des pays interdits.
    Les différentes valeurs possibles pour result sont :
    Tableau 5. Liste des contrôles associés à la fraude
    Valeur Description
    OK OK.
    WARNING Contrôle informatif échoué.
    ERROR Contrôle bloquant échoué.
  10. Récupérez le type de carte utilisé pour le paiement.
    Deux cas de figures peuvent se présenter:
    • Pour un paiement réalisé avec une seule carte. Les champs à traiter sont les suivants:
    Tableau 6. Analyse de la carte utilisée pour le paiement
    Nom du champ Description
    vads_card_brand Type de carte utilisée pour le paiement.
    vads_card_number Numéro de la carte utilisée pour réaliser le paiement.

    vads_expiry_month Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
    vads_expiry_year Année d’expiration sur 4 chiffres (ex : 2023).
    vads_bank_code Code de la banque émettrice
    vads_bank_product Code produit de la carte
    vads_card_country Code Pays du pays d’émission de la carte (Code alpha ISO 3166-2 ex : France=FR).
    • Pour un paiement fractionné (c'est-à-dire une transaction utilisant plusieurs moyens de paiement), les champs à traiter sont les suivants :
      Nom du champ Valeur Description
      vads_card_brand MULTI Plusieurs types de cartes sont utilisés pour le paiement.
      vads_payment_

      seq

      Au format json, voir détails ci-dessous. Détails des transactions réalisées.
      Le champ vads_payment_seq (format json) décrit la séquence de paiement fractionné. Il contient les éléments :
      1. "trans_id" : identifiant de la transaction global à la séquence de paiement.
      2. "transaction" : tableau des transactions de la séquence. Les éléments qui le composent sont les suivants :
    Tableau 7. Contenu de l'objet JSON
    Nom du paramètre Description
    amount

    Montant de la séquence de paiement.

    operation_type

    Opération de débit.

    auth_number

    Numéro d'autorisation. Exemple : 949478

    auth_result Code retour de la demande d'autorisation.
    capture_delay Délai avant remise (en jours).
    • Pour un paiement par carte bancaire, la valeur de ce paramètre tient compte du délai en nombre de jours avant la remise en banque. Si ce paramètre n'est pas transmis dans le formulaire de paiement, la valeur par défaut définie dans le Back Office Marchand sera utilisée.
    card_brand

    Moyen de paiement utilisé.

    Pour un paiement par carte bancaire (exemple CB ou cartes CB cobadgées Visa ou Mastercard), ce paramètre est valorisé à "CB".

    Se référer au guide d'intégration du formulaire de paiement disponible sur notre site documentaire pour visualiser la liste complète des types de carte.

    card_number

    Numéro du moyen de paiement.

    expiry_month

    Mois d'expiration du moyen de paiement.

    expiry_year

    Année d'expiration du moyen de paiement.

    payment_certificate Certificat de paiement.
    contract_used Contrat utilisé pour le paiement.
    identifier Identifiant unique (token/alias) associé à un moyen de paiement.
    identifier_status Présent uniquement si l’action demandée correspond à la création ou à la mise à jour d'un alias.
    Valeurs possibles:
    Valeur Description
    CREATED

    La demande d’autorisation a été acceptée.

    L'alias (ou RUM pour un paiement SEPA) est créé avec succès.

    NOT_CREATED

    La demande d’autorisation a été refusée.

    L'alias (ou RUM pour un paiement SEPA) n'est pas créé et n'apparaîtra pas dans le Back Office Marchand.

    UPDATED L'alias (ou RUM pour un paiement SEPA) est mis à jour avec succès.
    NOT_UPDATED L'alias (ou RUM pour un paiement SEPA) n'a pas été mis à jour.
    ABANDONED

    Action abandonnée par l'acheteur (débiteur).

    L'alias (ou RUM pour un paiement SEPA) n'est pas créé et n'apparaîtra pas dans le Back Office Marchand.

    presentation_date

    Pour un paiement par carte bancaire, ce paramètre correspond à la date de remise en banque souhaitée (au format ISO 8601).

    trans_id Numéro de transaction.
    ext_trans_id

    Paramètre absent pour le paiement par carte bancaire.

    trans_uuid Référence unique générée par la plateforme de paiement suite à la création d'une transaction de paiement.

    Offre une garantie d'unicité pour chaque transaction

    extra_result Code numérique du résultat des contrôles de risques.
    Code Description
    Vide Pas de contrôle effectué.
    00 Tous les contrôles se sont déroulés avec succès.
    02 La carte a dépassé l’encours autorisé.
    03 La carte appartient à la liste grise du marchand.
    04 Le pays d’émission de la carte appartient à la liste grise du marchand.
    05 L’adresse IP appartient à la liste grise du marchand.
    06 Le code bin appartient à la liste grise du marchand.
    07 Détection d’une e-carte bleue.
    08 Détection d’une carte commerciale nationale.
    09 Détection d’une carte commerciale étrangère.
    14 Détection d’une carte à autorisation systématique.
    20 Contrôle de cohérence : aucun pays ne correspond (pays IP, pays carte, pays de l’acheteur ).
    30 Le pays de l’adresse IP appartient à la liste grise.
    99 Problème technique rencontré par le serveur lors du traitement d’un des contrôles locaux.
    sequence_number Numéro de séquence.
    trans_status Statut de la transaction.
    Remarque : les transactions annulées sont également présentes dans le tableau.
    Exemple d'un paiement réalisé avec une carte prépayée et le complément en carte VISA:
    {"trans_id":"599495",
    "transactions":       
      {"amount":"1000",   
    	"operation_type":"DEBIT",   
    	"capture_delay":"0",   
    	"card_brand":"ILLICADO_SB",      
    	"card_number":"925000XXXXXXXXX1581",      
    	"payment_certificate":"5d49440418b44cf957ee509cccdefeb6ebaa3b23",   
    	"presentation_date":"2015-01-26T14:39:10Z",   
    	"trans_id":"599495",    
    	"ext_trans_id":"123456",   
    	"sequence_number":"1",   
    	"trans_status":"CAPTURED"
      },    
      {"amount":"9000",       
    	"operation_type":"DEBIT",       
    	"auth_number":"3fee2a",       
    	"capture_delay":"0",       
    	"card_brand":"VISA",      
    	"card_number":"497010XXXXXX0000",       
    	"expiry_month":"6",       
    	"expiry_year":"2015",      
    	"payment_certificate":"7696aeeb76444595a6c027fa050aa6657764178c",        
    	"presentation_date":"2015-01-26T14:39:30Z",       
    	"trans_id":"599495",        
    	"sequence_number":"2",       
    	"trans_status":"AUTHORISED"
      }        
    ]}
  11. Récupérez toutes les informations concernant le détail de la commande, le détail de l'acheteur et le détail de la livraison.
    Ces données sont présentes dans la réponse que si elles ont été envoyées dans le formulaire de paiement.
    Leur valeur est identique à celle soumise dans le formulaire.
  12. Procédez à la mise à jour de la commande.