Traiter les données spécifiques à la réponse d'un paiement par carte

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

Lors du paiement, l’acheteur règle une partie de son achat avec un Titre-Restaurant 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 :

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

Cycle de vie d'une transaction Titre-Restaurant réalisée avec succès :

Lorsque la demande d'autorisation a été acceptée, le statut de la transaction Titre-Restaurant est en attente de remise. Cet état se formalise avec la valeur AUTHORISED véhiculée par le champ vads_trans_status. La transaction est acceptée et sera remise à l’émetteur en vue du remboursement à J+1.

Une fois la transaction remise à l'émetteur, le statut de la transaction devient CAPTURED.

Liste des champs spécifiques à la réponse d'un paiement par Titre Restaurant

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

Tableau 1. Liste des champs à analyser
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
  • AUTHORISED
    Accepté, en attente de remise jusqu'à ce que le paiement soit remisé.
  • CAPTURED
    Remisé lorsque le paiement est remisé.
  • REFUSED
    La transaction est refusée.
  • ABANDONNED
    Paiement abandonné par l’acheteur.
  • CANCELLED
    Paiement annulé par le marchand
vads_card_brand Type de paiement Cas d'un paiement réalisé uniquement avec une carte Titre-Restaurant :
  • SODEXO, pour une carte "Pass Restaurant"
  • EDENRED pour une carte "Titre Restaurant Mastercard"
  • CHQ_DEJ pour une carte "Chèque Déjeuner"
  • APETIZ pour une carte "Apetiz"

Cas d'un paiement fractionné (une carte Titre-Restaurant 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 et refusées sont également présentes dans le tableau.

Remarque : l'ordre des champs dans le JSON n'est pas forcément celui restitué par votre langage de programmation.

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

Tableau 2. 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 Titre-Restaurant Dématérialisé, ce paramètre est valorisé à "0".
  • 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 Titre-Restaurant, ce paramètre peut être valorisé à :
  • SODEXO, pour une carte "Pass Restaurant"
  • EDENRED pour une carte "Ticket Restaurant"
  • CHQ_DEJ pour une carte "Chèque Déjeuner"
  • APETIZ pour une carte "Apetiz"

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 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 Titre-Restaurant traité sur le réseau CONECS, ce paramètre est valorisé avec la date du jour de la commande.

trans_id Numéro de transaction.
ext_trans_id Paramètre absent pour le paiement par carte bancaire et par Titre Restaurant.
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 du format JSON pour une transaction réalisée par cartes Titre-Restaurant et CB acceptées :
vads_payment_seq :{
	"trans_id":"011028",
	"transactions":[
		{
		"amount":"1000",
		"operation_type":"DEBIT",
		"auth_number":"3feee9",
		"auth_result":"10",
		"capture_delay":"0",
		"card_brand":"APETIZ",
		"card_number":"507596XXXXXX0028",
		"expiry_month":"6",
		"expiry_year":"2019",
		"payment_certificate":"90c0a80da281a5880675232bc007d19c799bdd01",
		"contract_used":"1999011",		
		"presentation_date":"2018-03-22T11:35:10Z",
		"trans_id":"012224",
		"trans_uuid":"b2a059f4b0164252844ccef94dcd3aa2",
		"sequence_number":"1",
		"trans_status":"AUTHORISED"
		},
		{
		"amount":"3504",
		"operation_type":"DEBIT",
		"auth_number":"3fb881",
		"auth_result":"00",
		"capture_delay":"0",
		"card_brand":"CB",
		"card_number":"497010XXXXXX0014",
		"expiry_month":"6",
		"expiry_year":"2019",
		"payment_certificate":"1395fe45833753c8f206f613a4fa237e41fea7a8",
		"contract_used":"5785350",		
		"presentation_date":"2018-03-22T11:35:14Z",
		"trans_id":"012224",
		"trans_uuid":"294897a937da4d7db48a222b727bb1e5",
		"sequence_number":"2",
		"trans_status":"AUTHORISED"
		}]
}

Exemple du format JSON pour une transaction par carte Titre-Restaurant refusée, annulée puis acceptée suivie d'une CB acceptée :
vads_payment_seq :{
	"trans_id":"011029",
	"transactions":[
		{
		"amount":"1000",
		"operation_type":"DEBIT",
		"auth_number":"3fe235",
		"auth_result":"57"
		"capture_delay":"0",
		"card_brand":"SODEXO",
		"card_number":"507597XXXXXX0020",
		"expiry_month":"12",
		"expiry_year":"2020",
		"payment_certificate":"74db5c03b6cba5c763e520648b0071768f5d806f",
		"contract_used":"1999011",
		"presentation_date":"2018-01-29T14:34:20Z",
		"trans_id":"011028",
		"trans_uuid":"3670c65bb8e040d2996474b809e0c1ac",
		"sequence_number":"1",
		"trans_status":"REFUSED"		
		},
		{
		"amount":"1000",
		"operation_type":"DEBIT",
		"auth_number":"3fe235",
		"auth_result":"10"
		"capture_delay":"0",
		"card_brand":"SODEXO",
		"card_number":"507597XXXXXX0747",
		"expiry_month":"11",
		"expiry_year":"2020",
		"payment_certificate":"d396a0a9601dc88d23bba2224a41fe8c32676e2f",
		"contract_used":"1999011",
		"presentation_date":"2018-01-29T14:34:20Z",
		"trans_id":"011028",
		"trans_uuid":"5f5edf3fe22f4dbfbd53152417275b4c",
		"sequence_number":"2",
		"trans_status":"CANCELLED"	
		},
		{
		"amount":"1000",
		"operation_type":"DEBIT",
		"auth_number":"3fe235",
		"auth_result":"10"
		"capture_delay":"0",
		"card_brand":"APETIZ",
		"card_number":"507596XXXXXX0421",
		"expiry_month":"10",
		"expiry_year":"2020",
		"payment_certificate":"010a2db1ef864d6584424c41512dd9ad678c785e",
		"contract_used":"1999011",
		"presentation_date":"2018-01-29T14:34:20Z",
		"trans_id":"011028",
		"trans_uuid":"2cfee86ecf5e433ab0db82dc7b601db6",
		"sequence_number":"3",
		"trans_status":"AUTHORISED"		
		},
		{
		"amount":"3222",
		"operation_type":"DEBIT",
		"auth_number":"3fc022",
		"auth_result":"00"
		"capture_delay":"0",
		"card_brand":"CB",
		"card_number":"497010XXXXXX0014",
		"expiry_month":"6",
		"expiry_year":"2019",
		"payment_certificate":"d0739983a70cd0267f1b50f6377bada4f1d6857e",
		"contract_used":"5785350",
		"presentation_date":"2018-01-29T14:34:35Z",
		"trans_id":"011028",
		"trans_uuid":"60f3c247d0a842498cfc38421d60b391",
		"sequence_number":"4",
		"trans_status":"AUTHORISED"		
		}]		
}

Exemple du format JSON pour une transaction réalisée par cartes Titre-Restaurant et CB acceptées avec enregistrement des deux cartes :

vads_payment_seq :{
	"trans_id":"012224",
	"transactions":[
		{
		"amount":"1000",
		"operation_type":"DEBIT",
		"auth_number":"3fd375",
		"auth_result":"10",
		"capture_delay":"0",
		"card_brand":"APETIZ",
		"card_number":"507596XXXXXX0028",
		"expiry_month":"6",
		"expiry_year":"2019",
		"payment_certificate":"90c0a80da281a5880675232bc007d19c799bdd01",
		"contract_used":"1999011",
		"identifier":"0b621d0da984414b86193502cfd010ca",
		"identifier_status":"CREATED",
		"presentation_date":"2018-04-19T07:05:03Z",
		"trans_id":"257349",
		"trans_uuid":"d97a7a374e5e41359f3c97649f5777ae",
		"sequence_number":"1",
		"trans_status":"AUTHORISED"
		},
		{
		"amount":"3504",
		"operation_type":"DEBIT",
		"auth_number":"3fd375",
		"auth_result":"00",
		"capture_delay":"0",
		"card_brand":"CB",
		"card_number":"497010XXXXXX0014",
		"expiry_month":"6",
		"expiry_year":"2019",
		"payment_certificate":"db4cff0dce146571d7b2720f2b716a0d7c72b8f4",
		"contract_used":"5785350",
		"identifier":"432870832da94e73b39a6999475d4d27",
		"identifier_status":"CREATED",
		"presentation_date":"2018-04-19T07:05:45Z",
		"trans_id":"257349",
		"trans_uuid":"775769b823ad4cf3a16a41cb4f3401d5",
		"sequence_number":"2",
		"trans_status":"AUTHORISED"
		}]
}
Exemple de réponse pour un paiement simple réalisé avec succès par carte Titre-Restaurant sans tableau JSON
[...]
vads_page_action :PAYMENT
vads_currency :978
vads_payment_src :EC
vads_cust_email :exemple@exemple.com
vads_card_brand:SODEXO
vads_order_id :861-0097
vads_capture_delay :0
vads_auth_number :
vads_currency :978
vads_payment_config :SINGLE
vads_language :fr
vads_risk_control :CARD_FRAUD=OK
vads_operation_type :DEBIT
vads_card_number :507597XXXXXX0033
vads_result :00
vads_trans_uuid :fd7c645cf082466cb635699b70ba690f
vads_trans_date :20180129143412
vads_ctx_mode :TEST
vads_action_mode :INTERACTIVE
vads_amount :1900
vads_version :V2
vads_presentation_date :20180129143435
vads_trans_status :AUTHORISED
vads_pays_ip :FR
vads_trans_id :011028
vads_auth_result :00
vads_site_id :12345678
[...]
signature :d67320df4aaaae5ef1e8381785cddb116d7c6aa3