Traiter les données spécifiques à la réponse d'un paiement e-Chèque-Vacances

Spécificités d'un paiement fractionné :

  • Toutes les transactions d’un paiement fractionné sont regroupées au sein d’une séquence de paiement.
  • Toutes les transactions d’une séquence de paiement possèdent le même identifiant de transaction, mais un numéro de séquence différent.
  • La première transaction de la séquence possède le numéro 1, la deuxième le numéro 2 et ainsi de suite.

Contexte :

Lors du paiement, l’acheteur règle une partie de son achat avec des e-Chèque-Vacances, puis le solde au moyen d'une carte bancaire.

Le paiement sera composé de N séquences détaillées par le champ vads_payment_seq.

Remarque : il y a autant de transactions E_CV que de chèques saisis, plus une pour la carte bancaire.

L'URL de notification instantanée contiendra notamment les informations ci-dessous :

Nom du champ Description Valeur
vads_page_action Opération réalisée

PAYMENT

Paiement réalisé sans alias

vads_trans_status Statut du paiement

Le statut retourné est en fonction des modalités du paiement.

  • Si le paiement est exclusivement réalisé avec des e-Chèque-Vacances :

    La valeur est CAPTURED (Présenté).

    En effet, les e-Chèque-Vacances sont validés en temps réel auprès du serveur de titres de l'ANCV .

  • Si le paiement est complété par un autre moyen de paiement, la valeur du statut est celle du complément.
    • Carte bancaire sans délai de remise en banque

      Les valeurs possibles sont :

      AUTHORISED

      Accepté, en attente de remise

      CAPTURED

      Présenté

    • Carte bancaire avec délai de remise en banque supérieur à 0 jour ou nécessitant une action de la part du marchand :

      Les valeurs possibles sont :

      WAITING_AUTHORISATION

      En attente d'autorisation

      WAITING_AUTHORISATION_TO_VALIDATE

      A valider et autoriser

      AUTHORISED_TO_VALIDATE

      À valider et autoriser

  • Si le paiement n'a pas lieu, les valeurs possibles sont :
    • ABANDONED

      Paiement abandonné par l’acheteur.

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

    • REFUSED

      La transaction est refusée.

    • EXPIRED
      Expiré

      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é.

    • CANCELLED
      Paiement annulé par le marchand
vads_card_brand Type de paiement Cas d'un paiement réalisé uniquement avec "e-Chèques-Vacances"
  • "E_CV"

Cas d'un paiement fractionné (une carte "e-Chèques-Vacances" et un moyen de paiement complémentaire):

  • MULTI
    Le tableau des moyens de paiement utilisés par l'acheteur se retrouve dans le JSON du champ vads_payment_seq (élement card_brand).
vads_payment_seq Détails de la séquence de paiements fractionnés Voir explications et tableau ci-après.

Détails du champ vads_payment_seq

Toutes les transactions d’un paiement fractionné sont regroupées au sein d’une séquence de paiement.

Toutes les transactions d’une séquence de paiement possèdent le même identifiant de transaction, mais un numéro de séquence différent. La première transaction de la séquence possède le numéro 1, la deuxième le numéro 2 et ainsi de suite.

Le champ vads_payment_seq (format json) décrit la séquence de paiement fractionné. Il contient les éléments :

  • "trans_id" : identifiant de la transaction reçu dans le champ vads_trans_id du formulaire de paiement.
  • "transaction" : tableau des transactions de la séquence.

Remarque : les transactions annulées sont également présentes dans le tableau.

Chaque transaction de la séquence contient les éléments suivants :

Tableau 1. 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

Ce paramètre est retourné vide pour un paiement par "e-Chèque-Vacances". Le serveur de titres de l'ANCV ne le fournit pas. Numéro d'autorisation retourné par le serveur d'autorisation, si disponible (sinon vide).

auth_result Code retour de la demande d'autorisation.
capture_delay Délai avant remise (en jours).
  • Pour un paiement par "e-Chèques-Vacances", ce paramètre est valorisé à "0". Les "e-Chèques-Vacances" sont validés en temps réel.
  • 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 Expert sera utilisée.
card_brand

Moyen de paiement utilisé.

Pour un paiement par "e-Chèques-Vacances", ce paramètre est valorisé à "E_CV".

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.

  • Pour un paiement par "e-Chèques-Vacances", ce paramètre est valorisé en concaténant le numéro de chèque - numéro organisme - année d'émission en les séparant avec le caractère "-".
  • Pour un paiement par carte bancaire, le numéro est masqué.
expiry_month

Mois d'expiration du moyen de paiement.

Paramètre absent pour le paiement par e-Chèque-Vacances.

expiry_year

Année d'expiration du moyen de paiement.

Paramètre absent pour le paiement par e-Chèque-Vacances.

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 Expert.

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 Expert.

presentation_date

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

Pour un paiement par e-Chèques-Vacances, ce paramètre correspond à la date du jour de la commande. Les e-Chèques-Vacances sont validés en temps réel auprès du serveur de titres de l'ANCV.

trans_id Numéro de transaction.
ext_trans_id

Paramètre absent pour le paiement par carte bancaire.

Pour un paiement par e-Chèques-Vacances, ce paramètre est un identifiant technique généré par la plateforme de paiement (référence de transaction).

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.

Exemple de valeur pour le champ vads_payment_seq

  • Cas 1 : tous les e-Chèques-Vacances saisis sont ajoutés et validés
vads_payment_seq :{
	"trans_id":"913509",
	"transactions": [
	{
		"amount":"6000",
		"operation_type":"DEBIT",
		"auth_number":"",
		"capture_delay":"0",
		"card_brand":"E_CV",
		"card_number":"2002-838861-2015",
		"payment_certificate":"d396a0a9601dc88d23bba2224a41fe8c32676e2f",
		"presentation_date":"2015-02-18T16:12:01Z",
		"trans_id":"913509",
		"ext_trans_id":"87c092a8403747cb9b1486cfa34c3dcc",
		"sequence_number":"1",
		"trans_status":"CAPTURED"		
	},
{
		"amount":"6000",
		"operation_type":"DEBIT",
		"auth_number":"",
		"capture_delay":"0",
		"card_brand":"E_CV",
		"card_number":"2004-838861-2015",
		"payment_certificate":"d396a0a9601dc88d23bba2224a41fe8c32676e2f",
		"presentation_date":"2015-02-18T16:12:01Z",
		"trans_id":"913509",
		"ext_trans_id":"87c092a8403747cb9b1486cfa34c3dcc",
		"sequence_number":"2",
		"trans_status":"CAPTURED"		
	},
{
		"amount":"5800",
		"operation_type":"DEBIT",
		"auth_number":"3fec1e",
		"capture_delay":"0",
		"card_brand":"CB",
		"card_number":"497010XXXXXX0000",
		"expiry_month":"6",
		"expiry_year":"2016",
		"payment_certificate":"010a2db1ef864d6584424c41512dd9ad678c785e",
		"presentation_date":"2015-02-18T16:12:13Z",
		"trans_id":"913509",
		"sequence_number":"3",
		"trans_status":"AUTHORISED"
	}
	]
}

  • Cas 2 : l'acheteur annule un e-Chèque-Vacance saisi
    A la différence du cas n°1, le champ "trans_status" est valorisé à CANCELLED pour refléter l'annulation du e-Chèque-Vacance par l'acheteur.
    vads_payment_seq :"trans_id":"913509",
    	"transactions": [
    	{
    		"amount":"6000",
    		"operation_type":"DEBIT",
    		"auth_number":"",
    		"capture_delay":"0",
    		"card_brand":"E_CV",
    		"card_number":"2002-838861-2015",
    		"payment_certificate":"d396a0a9601dc88d23bba2224a41fe8c32676e2f",
    		"presentation_date":"2015-02-18T16:12:01Z",
    		"trans_id":"913509",
    		"ext_trans_id":"87c092a8403747cb9b1486cfa34c3dcc",
    		"sequence_number":"1",
    		"trans_status":"CANCELLED"		
    	},
    {
    		"amount":"6000",
    		"operation_type":"DEBIT",
    		"auth_number":"",
    		"capture_delay":"0",
    		"card_brand":"E_CV",
    		"card_number":"2004-838861-2015",
    		"payment_certificate":"d396a0a9601dc88d23bba2224a41fe8c32676e2f",
    		"presentation_date":"2015-02-18T16:12:01Z",
    		"trans_id":"913509",
    		"ext_trans_id":"87c092a8403747cb9b1486cfa34c3dcc",
    		"sequence_number":"2",
    		"trans_status":"CAPTURED"		
    	},
    {
    		"amount":"11800",
    		"operation_type":"DEBIT",
    		"auth_number":"3fec1e",
    		"capture_delay":"0",
    		"card_brand":"CB",
    		"card_number":"497010XXXXXX0000",
    		"expiry_month":"6",
    		"expiry_year":"2016",
    		"payment_certificate":"010a2db1ef864d6584424c41512dd9ad678c785e",
    		"presentation_date":"2015-02-18T16:12:13Z",
    		"trans_id":"913509",
    		"sequence_number":"3",
    		"trans_status":"AUTHORISED"
    	}
    	]
    }

Précisions :

  • Si le paiement par carte bancaire est refusé, le champ "trans_status" est valorisé à REFUSED.

    La plateforme de paiement annule la réservation des e-Chèques-Vacances auprès du serveur de titres de l'ANCV et le paiement est annulé dans sa globalité.

  • Si le paiement par carte bancaire est accepté, le champ "trans_status" est valorisé à AUTHORISED.

    La plateforme de paiement valide définitivement la réservation des e-Chèques-Vacances auprès du serveur de titres de l'ANCV. Le paiement par e-Chèques-Vacances et carte bancaire est validé.