- Directives d'intégration
- Commandes et transactions
Commandes et transactions
Une commande désigne le concept utilisé par Mastercard Gateway pour lier toutes les transactions en relation avec l'instance d'une vente entre vous et votre payeur. Elle a pour but de représenter le concept de commande papier classique dans lequel vous vendez des biens à vos clients. À ce titre, elle comporte toutes les données d'une commande classique — les postes des biens achetés, qui a payé et comment, la destination de la livraison et, surtout, la somme payée.
Une commande peut contenir une ou plusieurs transactions. Certaines commandes n'ont qu'une transaction, un « achat » dont les biens sont payés complètement et distribués aussitôt. D'autres comportent deux transactions, une « autorisation » qui vous permet de vérifier si le compte bancaire de l'acheteur est provisionné et de réserver la somme, puis une « capture » qui est une phase de transfert de l'argent du compte de l'acheteur au vôtre. Le modèle authorize/capture (autoriser/capturer) est généralement utilisé lorsque vous ne pouvez pas garantir qu'il soit possible de distribuer les biens au moment de la demande de l'acheteur. Il peut arriver que vous deviez rembourser tout ou partie de la somme de la commande, ou livrer les biens en plusieurs fois. Tous ces mouvements d'argent représentent des transactions d'une commande.
Lorsque vous utilisez Mastercard Gateway, vous fournissez généralement toutes les informations relatives à la commande au cours de la transaction initiale — la facturation, l'expédition, les détails du paiement, le montant total, etc. Ensuite, lors des autres transactions, par exemple, Capture (Capturer), Refund (Rembourser) ou Void (Annuler), vous n'avez pas besoin de répéter ces données, il vous suffit de mentionner la commande initiale. Par exemple, si vous souhaitez effectuer un remboursement, il vous suffit de fournir l'identificateur de la commande et le montant à rembourser, et la passerelle fournira tous les détails nécessaires à la banque pour transférer l'argent.
Mastercard Gateway a un identificateur unique qui identifie une commande particulière que vous avez soumise. Vous devez attribuer cet identificateur au moment de la première transaction de la commande. Cet identificateur est appelé order.id
(fourni comme orderID
dans l'URL pour REST). Il est conseillé de fournir la clé naturelle pour la commande (ID du panier d'achat, numéro de facture) dans votre système vers la passerelle. Le suivi entre le système et la passerelle est ainsi simplifié. La passerelle tente également d'utiliser order.id
dans les messages de l'acquéreur. Ainsi, les trois systèmes — le vôtre, la passerelle et votre banque — seront liés par un identificateur commun. Toutefois, cette situation idéale peut ne pas être possible en raison des limites des différents systèmes.
L'identificateur de la commande peut ne pas pouvoir servir de référence dans votre système. Par exemple, si votre système change les ID de commande ou regroupe plusieurs offres en une seule commande, l'identificateur de la commande ne sera pas approprié. Dans ce cas, vous pouvez fournir une nouvelle valeur, order.reference
, pour assurer le suivi entre votre système et Mastercard Gateway.
La passerelle doit transmettre un identificateur à l'acquéreur. Elle essaiera d'utiliser votre identificateur de commande, si possible en combinaison avec votre identificateur de transaction (voir ci-dessous). Cependant, si cela ne convient pas à votre acquéreur, la passerelle les transforme en une valeur appropriée. Dans tous les cas, la passerelle retourne l'identificateur utilisé, dans le champ transaction.acquirer.transactionId
.
Cependant, si vous souhaitez contrôler la valeur fournie par la passerelle à l'acquéreur, vous pouvez fournir une valeur transaction.acquirer.transactionId
dans la demande.
En outre, si vous souhaitez contrôler la valeur fournie par la passerelle à l'acquéreur, vous pouvez fournir une valeur dans le champ transaction.acquirer.transactionId
.
Référence de l'API Identificateur de commande de l'acquéreur[REST][NVP]
order.id
et pour l'un des champs ou les deux champs order.reference
et transaction.acquirer.transactionId
afin de garder le contrôle sur l'identité dans chaque système.Mastercard Gateway a un identificateur unique qui identifie chaque transaction d'une commande. Cet identificateur est appelé transaction.id
(fourni comme transactionID
dans l'URL pour REST). Généralement, vous n'avez pas de clé naturelle pour cela, mais si vous en possédez une, il est conseillé de fournir l'utiliser. Dans le cas contraire, un nombre séquentiel ou aléatoire convient.